mysql单表查询

单表查询

基础数据查询(重命名,去重,四则运算,拼接)

  • select * from 表名;
    • 查看所有表中所有数据
    • select * from t1;
  • select 字段名 [as] 新的字段名 from 表名;
    • 临时重命名字段名
    • select username name,post_comment as p_desc from t1;
  • select distinct 字段名 from 表名;
    • 对查询的数据去重
    • select distinct id,username from t1;
  • 对查询到的数据进行四则运算(加减乘除)
    • select username,salary*12 ann_salary from t1;
  • select concat( 拼接内容) from 表名;
    • 对查询到的数据进行拼接
    • select concat(id,' : ',name) from t1;
  • select concat_ws( '拼接内容',字段名1,字段名2,….) from 表名;
    • 对查询到的数据进行按拼接内容分隔拼接
    • select concat_ws( ' : ',id,username,salary) from t1;

筛选关键字where

where用于筛选所有符合条件的行

  • 比较运算
    • < > <+ >= <> !=
      • 其中<>等同于!=:不等于
  • 范围
    • between 值1 and 值2:范围为[值1,值2]
      • select * from t1 where age between 18 and 40;
    • in (值1,值2,值3,值4 ):范围为值1或值2或值3或值4
      • select * from t1 where age in (10,20,30,40);
  • 模糊匹配
    • like:模糊匹配like后面接字符
      • %:表示任意字段的任意字符
      • select * from t1 where name like '邓%';
      • __:表示一个字段的任意字符
      • select * from t1 where name like '邓__ __';
    • regexp:正则匹配
      • '^a'
      • 'b$'
  • 逻辑运算
    • not
    • and
    • or
  • 查看数据为null的情况
    • is
    • select * from t1 where post_comment is not null;

分组聚合

分组

  • group by
    • select post from employee group by post;

聚合函数

  • count( ):求个数
  • max( ):求最大值
  • min( ):求最小值
  • sum( ):求总和
  • avg( ):求平均值
    • select post,count(id) from employee group by post;

having

  • 筛选符合条件的组,放在分组group后面,在where中不能使用
  • 一定要先分组再使用having筛选
    • select post,count(id) from employee group by post having count(id)>4;

order by

  • 查询排序,将所查询到的数据按照一定条件进行排序
  • 默认是升序(从小到大)排序 :asc
  • 降序(从大到小)排序:desc
  • order by age,salary; 优先按照age进行从小到大排序,然后在age相同时按salary从大到小排序
    • select * from employee order by age,salary desc;

limit

  • 限制查询
  • limit m,n /limit n offset m
    • 从m+1项开始取n项,如果m不写,默认为0,如limit 1,2表示从第2项开始取后面两项
    • select * from employee order by age limit 2
    • select * from employee order by age limit 2,1

查询数据关键字的优先级

关键字 描述
1 from 从xx表查询
2 where 筛选符合条件的行
3 group by 分组
4 select 查询选择(与having优先级差不多)
5 having 筛选符合条件的组(与select优先级差不多)
6 order by 查询排序
7 limit 限制查询
posted @ 2020-06-03 15:19  yyyzh  阅读(274)  评论(0编辑  收藏  举报