MySQL学习之路5-数据表的常用操作

  • 排序 :order by  desc

      select * from <tablename> order by <字段名> desc;order by默认升序 desc 降序

  • 分组 :group by 按照字段进行分组

      select  <查询内容> from <tablename> group by <字段名> ; 

  • 空值 and 非空值 :null ,not null 查询字段为空或者非空的记录

      select <查询内容> from <tablename> where <字段名> is null not null  ;

 

常用的聚合汇总函数

  • max and min :返回某列最大最小值

      select max(字段名) , min(字段名) from <tablename>;

  • count :返回某列记录数

      select count(*) from <tablename>;

  • sum :返回某列之和

      select sum(字段名) from <tablename>;

  • avg :返回某列平均值

      select avg(字段名) from <tablename>;

 

 

其他操作

  • and or : 在where子语句中将多个条件结合起来 and 优先级高于or 

      select * from <tablename> where 条件1 and 条件2 or 条件3;

 

  • like : 在where子语句中,搜索匹配字段的指定内容,通常与%通配符连用

      select * from <tablename> where <字段名> like "%匹配内容%" ;

      Tips:匹配内容MySQL不区分大小写,若想严格区分大小写,利用binary关键字

      select * from <tablename> where <字段名> like binary "%匹配内容%" ;

 

  • in not in :类似于python中的成员运算符,用于查找在范围内的记录

      select * from <tablename> where <字段名> in not in(" 属性值1 "," 属性值2 ") ;

 

  • date_format : 按照指定日期格式输出

      select date_format(birthdate,'%Y-%m') from <tablename> ; 日期按照年-月输出

 

  • distinct :去除重复值

      select count(distinct 字段名) from <tablename>;

 

  • between :where子语句后,规定某字段查询区间

      select * from <tablename> where <字段名> between ' 范围1' and '范围2 ';

 

  • having :与where类似,同为条件筛选语句。

      select count(*) from <tablename> where '条件1' group by <字段名> having '条件2' ;

      having 与 where区别:执行优先级 where > 聚合函数(count sum max)>having 

                 where子句是在分组之前过滤数据,条件中不能包含聚合函数。

                 having子句是对分组之后过滤数据,条件中经常包含聚合函数。

  • union:多个查询结果做并集  

      select <字段名> from <tablename>

      union

      select <字段名> from <tablename>

 

MySQL条件分支

  CASE column

    WHEN 条件1 THEN 表达式1

    WHEN 条件2 THEN 表达式2

    ...

  ELSE 表达式

  END AS column_alias ;

 

2020-03-12 15:35 

 

posted @ 2020-03-12 15:36  傅余生  阅读(115)  评论(0编辑  收藏  举报