MySQL——条件查询(条件表达式、逻辑表达式和模糊查询)

参考链接

  1. https://www.bilibili.com/video/BV12b411K7Zu?p=31

条件查询

语法

SELECT
	查询列表
FROM
	表名
WHERE
	筛选条件;

分类

按条件表达式筛选

简单条件运算符:>、<、=、!=、<>、>=、<=
例如,“查询工资>12000的员工信息”

SELECT
	*
FROM
	employees
WHERE
	salary>12000

又如,“查询部门编号不等于90号的员工名和部门编号”

SELECT
	last_name,
	department_id
FROM
	employees
WHERE
	department_id<>90;

按逻辑表达式筛选

逻辑运算符:&&、||、!、and、or、not,用于连接条件表达式

例如,“查询工资在10000到20000之间的员工名、工资以及奖金”

SELECT
	last_name,
	salary,
	commission_pct
FROM
	employees
WHERE
	salary>=10000 AND salary<=20000

又如,“查询部门编号不是在90到110之间的,或者工资高于15000的员工信息”

SELECT
	*
FROM
	employees
WHERE
	department_id<90 OR department_id>110 OR salary>15000;

模糊查询

like、between and 、in、is null

like

特点:一般和通配符搭配使用。

通配符:

  1. %:任意多个字符,包含0个字符
  2. _:任意单个字符
    比如,“查询员工名中包含字符a的员工信息”
SELECT
	*
FROM
	employees
WHERE
	last_name LIKE '%a%';

又如,“查询员工名中第三个字符为e,第五个字符为a的员工名和工资”

SELECT
	last_name,
	salary
FROM
	employees
WHERE
	last_name LIKE '__e_a%';

再如,“查询员工名中第二个字符为_的员工名”
可以使用许多语言通用的转义字符“\”:

SELECT
	last_name
FROM
	employees
WHERE
	last_name LIKE '_\_%';

也可以使用MySQL中的ESCAPE将任意字符声明为转义字符:

SELECT
	last_name
FROM
	employees
WHERE
	last_name LIKE '_$_%' ESCAPE '$';
between and
  1. 可以提高语句的简洁度
  2. 包含临界值
  3. 两个临界值不要调换顺序

比如,“查询员工编号在100到120之间的员工信息”

SELECT
	*
FROM
	employees
WHERE
	employee_id BETWEEN 100 AND 120;
in

判断某字段的值是否属于in列表中的某一项

  1. 提高语句简洁度
  2. in列表的值类型必须一致或兼容
  3. in列表里的值不支持通配符

比如,“查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号”

SELECT
	last_name,
	job_id
FROM
	employees
WHERE
	job_id IN('IT_PROT','AD_VP','AD_PRES');
is null
  1. =或<>不能用于判断null值
  2. is null或is not null可以判断null值

比如,“查询没有奖金的员工名和奖金率”

SELECT
	last_name,
	commission_pct
FROM
	employees
WHERE
	commission_pct IS NULL;
上一篇:数据库03


下一篇:SQL Server 遍历结果集的数据 - 使用游标