数据库基础(二)
单表查询
(一)简单的查询语句(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?
浙公网安备 33010602011771号