5 IN 运算符
5.1 查找列表中的值
- 查询姓名为“刘备”、“关羽”或者“张飞”的员工:
- 只要匹配列表中的任何一个值,都会返回结果
5.2 子查询的结果匹配
6 空值判断
代表缺失或者未知的数据.
判断一个值是否为空不能使用等于或者不等于.
例如,以下查询尝试找出没有上级领导(manager 字段为空)的员工:
- 空值判断的错误示例
- 该语句没有返回任何结果
但确实存在这样的数据。错因在于将一个值与一个未知的值进行数学比较,结果仍然未知;即使是将两个空值进行比较,结果也是未知。
以下运算均是非法的,在 MySQL8.0 版本下,会报错
[42000][1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘NULL != NULL’ at line 1
6.1 空值判断
- expression 的值为空,IS NULL 返回真,IS NOT NULL 返回假
- 表达式的值不为空,IS NULL 返回假,IS NOT NULL 返回真
- 查找没有上级领导的员工
如果仅仅能够指定单个过滤条件,就无法满足复杂的查询需求;为此,SQL 引入了用于构建复杂条件的逻辑运算符。