数据库基础(二)

单表查询

(一)简单的查询语句(DQL)

 

  别名有空格或者中文要加单引号括起来(as可以省略,用一个空格代替)

 

(2)条件查询

 

(1)between and 举例:(注意:使用在字符串方面时是左闭右开)

     

(2) is null 和 is not null:

 (3)and 和 or 的优先级问题:

   and 优先级高于 or。注意:为了防止出错,当运算符的优先级不确定的时候加小括号( )。

 (4)in 等同于 or:  (not in 表示不在这几个值之中)

(5)模糊查询like:(若要查找的字符中含有_或%,需要用转义字符 \ 进行转义)

 

 (三)数据排序(order by)

 

(四)单行处理函数 (有null值做运算要用ifnull()函数进行处理)

 

(五)分组函数(又叫聚合函数,多行处理函数)

 

 

(1)重点:分组函数是自动忽略NULL的,所以在查询的时候不要在末尾添加where xxx  is not null  这个过滤条件。虽然不会出错,但是面试时添加的话说明你没掌握这个知识点,会挂的!!!另外这五个分组函数不能用在where子句中。

 怎么解释:因为分组函数是在group by执行之后才会 执行,而group by是在where执行之后才会执行。一条语句中如果没有显示group by,其实是缺省,默认将整张表分为一组。故分组函数一定不能在where子句中执行(因为这时还没有分组)!!!可以用如下子查询方式解决:

  

(2)重点

 单行处理函数与多行处理函数的区别:前者输入一行,输出一行,后者输入多行,输出一行。

 

 (六)分组查询(group by 和 having)

 (1)重点:当一条语句中显式有group by的话,select后面只能跟 分组函数参与分组的字段!!!

 (2)多个字段联合分组:

 

 (3)having只有使用group by 分组后才能用,且能用where尽量别用having!!

 

 

 

 (七)总结:一个完整的DQL语句该怎么写(及其执行顺序)

     

 

 

 

参考:https://www.bilibili.com/video/BV1fx411X7BD?

posted @ 2021-03-30 15:52  Only、  阅读(131)  评论(0)    收藏  举报