Fork me on GitHub

MySQL所有语句集合

mysql对库的基本操作

net start mysql 启动数据库服务
mysql -h localhost -a root -p 使用命令登陆
net stop mysql 关闭数据库服务
show databases 查看mysql中以存在的数据库
create database 数据库名 创建数据库
create database(if not exists) 库名 检查数据库名称是否存在,不存在创建该数据库,存在则不创建
use 数据库名 使用数据库

select database()

select sohema()

获取当前使用的数据库

drop database 数据库名 删除数据库
drop database if exists 库名 判断数据库存在删除

mysql对表的操作

create table 表名 (字段名 数据类型 约束条件,....) 创建表
PRIMARY KEY 定义主键约束
AUTO_increment 定义自增属性
NOT NULL

不为空约束

unique 唯一约束

mysql对表中数据的基本操作

  1. 使用in关键字查询指定记录

    select  *  from  表名    where    字段名    in    (条件);可以有多个用逗号隔开

    2018-04-28_131941.png

  2. 使用NOT in 查询指定记录

    select     *     from    表名    where    字段名    not    in    (条件查询所不能满足的数据多个条件用逗号隔开)

    2018-04-28_132548.png

  3. 带between     and 的范围查询

    select     *    |字段名    from    表名    where    指定字段的名字    between    值    and    值

    2018-04-28_133535.png

  4. 带like的字符匹配查询

    select     *    from    表名    where    指定字段    like    想要匹配的值

    2018-04-28_133828.png

  5. 带有%和_结合like查询

    select    *    字段名    from    表面    where    字段名    like    “_值”    |    "%值"    (_代表单个字符,%代表多个字符)

    2018-04-28_134304.png

  6. 查询空值

    select    *    from    表名    where    字段    is    null

    2018-04-28_134452.png

  7. 查询非空值

    select    *    from    表名    where    字段    is    not    null

    2018-04-28_134634.png

  8. 使用and实现多条件查询

    select    *    from    表名      where     字段名=值1    and    字段名=值2

    2018-04-28_134915.png

  9. 使用or实现多条件查询

    select    *    from    表名    where    字段名 =值1    or    字段名 =值2

    2018-04-28_135208.png

  10. 筛选重复的记录

    select    distinct    字段名    from    表名

对表中数据深入查询

    1.对表中数据深入查询

        select    *    |    字段名    from    表名    order    by    排序字段

2018-04-28_135702.png

    select    *    |字段名    from    表名    order    by    排序字段1    排序字段2(选排序第一个,然后排序后面的,

从大到小,每个字段后面都要加上desc)

        

    2.指定排序的顺序

        select    *    |字段名    from    表名    order    by    排序字段     desc/asc(asc从小到大,desc从大到小)

2018-04-28_140227.png

    3.分组查询(将相同的数据放入一组)

    (1)select    字段名    | *    ,group_concat(    *   |    字段名)  from     表名    group    by    分组字段    

2018-04-28_142659.png

 

     4.使用having过滤分组

            select     字段名    ,    group_concat(字段名2) as    别名    from    表名    group    by    字段名    having    count(*|字段名2)>指定数    (having是二次分组,判断大于指定数的记录)

2018-04-28_143911.png

    5.分组后统计

            select     字段名,    count(*) as    别名    from    表名    group    by    分组字段    with    rollup

        2018-04-28_181935.png

    6.使用limit限制查询数量

            select     *    from    表名    limit    n,m(显示从n(n从0开始)+1行开始)总共显示m条数据

2018-04-28_182259.png

    7.使用集合函数查询

        (1)sum()    求和函数的使用

                select    sum(字段名)    as    别名    from    表名

                    2018-04-28_182514.png

        (2)avg()    求平均值

                select    avg(字段名)    from    表名

2018-04-28_182807.png

        (3)avg函数和group by一起使用求每个分组的平均值

                select    分组字段    ,    avg(字段名)    from    表名    group    by    分组字段

2018-04-28_183054.png

        (4)max()函数求指定列的最大值

                select    max(指定列) from    表名    

2018-04-28_183248.png

        (5)min()函数指定列最小值

                select    min    (指定列)    from    表名

2018-04-28_202933.png

连接查询

    1.连接是关系型数据库模型的主要特点连接查询是关系型数据库中最主要的查询,主要包括内链接和外连接。以及复合条件查询,通过连接运算符可以实现多表查询

        (1)内链接语法

                    连接查询是查询多个表中相关联的数据行,内链接返回查询结果集合中的仅是符合查询条件和连接条件的数据

                    A.    select    表名1.字段名1,    表名1,字段名2,表名2.    字段名1,表名2.字段名2    from    表名1,表名2    where    表明1.字段?=表名2.字段?(字段名?代表两张表共有的字段名)

                    B.    select    表名1.字段名,    表名2.字段名2    from    表名1    inner    join    表名2    on    表名1.字段?=表名2.字段?(字段名?代表两张表共有的字段名)

        (2)外联接查询

                在内链接中我们知道内连接查询仅是符合查询条件和连接条件的数据,但有时候需要包含没有关联的行中数据即返回查询结果集合中的不仅包含符合连接条件的行,而且还包括左表,右表中的所有数据行

                外联接分为:左连接    右连接

                (主表)左连接的结果包括left    outer关键字语句中指定的左表的所有行。而不仅仅是连接列所匹配的行,如果左表的某行在右表中没有匹配的行。右表的所有选择列均为空值

                语法:(左)

                        select    表1    .字段名,    表名2.字段名    from    表1    left    outer    join    表2    on    表1.字段名?=表2.字段名?

                    (右)

                        select                                                                               right    outer    join

外键约束

        foreign    key    外键约束,外键作用保证数据的唯一一致性和完整性

        子表外键字段必须和主表中主键字段数据类型保持一致

    (1)建表时,设置外键

                constraint 外键名称    foreign key (外键字段) references 主表名(主键字段名称)        (constraint    外键名称    可选默认mysql会自动创建)

    (2)删除外键

                alter    table    表名    drop    foreign    key    外键名

    (3)动态添加外键

                alter    table    表名    add    foreign    key(外键字段)    references    主表名 (主键字段)        (在添加外键时必须确认表中数据合法)

 

子查询

        (1)带exists的子查询

                    select    *    from    表名    where    exists(子查询语句);        (子查询只要查询出的记录>=1,则执行外部查询)

2018-04-29_161534.png

        (2)带in关键字的子查询

                    select    *    from    表名    where    字段名    in(子查询语句)        (相同数值匹配——》显示相同的数值)

        2018-04-29_163435.png

        (3)带比较运算符的子查询

                    select    字段名    from    子表名    where    字段名    >    |     =    |    <(子查询语句)        (子查询语句里面得出的结果只能是一条,否则无法比较)

        (4)带any    some    all关键字的子查询

                    select    字段名1    from    表名1    where    字段名1    >any(select    字段名    from    表名2)

2018-04-29_164432.png

运算符 any some all
>   >= 最小值 最小值 最大值
<   <= 最大值 最大值 最小值
= 任意值 任意值  
!=     任意值

与any    some不同的是all需要用时满足所有内层的查询条件

 

联合查询

        联合查询结果(查询两个表指定字段合并起来的数据)(合并时两个表对应的列数和数据类型必须要相同)

            select    字段名    from    表名1    union    all    select    字段名    from    表2    (加了all显示重复的数据,不加则不显示重复的数据)

2018-04-29_165237.png

索引

    索引的功能就是加快对表中的数据的查询速度

    (1)创建索引

                a.    创建表时创建索引    index    索引名(指定字段)

                b.    添加索引    create    index    索引名    on    表名(指定字段)

2018-04-29_170224.png

                c.    删除索引    drop    index    索引名    on    表名

2018-04-29_170457.png

                b.    查看索引    show    index    from    表名

 

mysql存储过程概念

        存储过程就是在数据库中定义一些sql语句的集合,然后之间调用这些存储过程来执行sql语句,功能就是避免开发人员重复编写sql语句。从而可以减少客户端和服务器端的数据传输

        (1)创建存储过程的语法

                    create    procedure    存储过程(参数列表)

                                begin    //开始

                                            存储过程体(一种合法有效的sql语句)

                                end    //代表结束

posted @ 2018-12-26 08:43  云源  阅读(1613)  评论(0编辑  收藏  举报
湖南云源网络科技有限公司 www. ysource.cn 版权所有   ICP证:湘ICP备18004366号
  邮箱:2536201485@qq.com   CSDN博客地址:https://blog.csdn.net/qq_32885621 有事您Q我