什么是DQL?
答:
DQL:Date Query Language数据查询语言,即查询数据库中的数据
本篇内容
-
条件查询语法
-
条件查询运算符详解(=、<、>、>=、<=、<>、!=)
-
逻辑查询运算符详解(and、or)
-
like模糊查询介绍
-
between and查询
-
in、not in查询
-
NULL值注意事项
-
is null/is not null(NULL值专用查询)
-
<=>(安全等于)运算符
-
经典面试题
条件查询语法
select 列名 from 表名 where条件
条件查询运算符
操作符 | 描述 |
---|---|
= | 等于 |
<> 或者 != | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
说明:
不等于推荐使用<>
< 或 >对字符而言,按照ASCII码对应的值进行比较,比较时按照字符对应的位置一个字符一个字符的比较。
逻辑查询运算符
逻辑运算符 | 描述 |
---|---|
AND | 多个条件都成立 |
OR | 多个条件中满足一个 |
like(模糊查询)
通配符:
%:表示匹配任意一个或多个字符
_:表示匹配任意一个字符。
BETWEEN AND(区间查询)
select 列名 from 表名 where between 值1 and 值2
注意:
值1要小于值2
IN查询
select 列名 from 表名 in(值1,值2,值3)
说明:
in 后面括号中可以包含多个值,对应记录的字段满足in中任意一个都会被返回
in列表的值类型必须一致或兼容
in列表中不支持通配符。
相当于or的简单写法
NOT IN查询
与IN相反
NULL值注意事项
查询运算符、like、between and、in、not in对NULL值查询不起效。
IS NULL(返回值为空的记录)
select 列名 from 表名 is null
IS NULL(返回值不为空的记录)
select 列名 from 表名 is not null
<=>(安全等于)
既可以对数值进行判断,也可以对null进行判断,可读性差,不建议使用。
经典面试题
select * from students;
select * from students where name like '%';
有什么区别?
答:
当name没有NULL值时,返回的结果一样。
当name有NULL值时,第2个sql查询不出name为NULL的记录。