条件查询
语法 SELECT <列名1>,<列名2>,...<列明N> FROM <表名> WHERE <筛选条件>
- 按条件表达式筛选
- 按逻辑表达式筛选
- 按模糊条件筛选
按条件表达式筛选
示例:
SELECT
`emp_no` AS `工号`,
`salary` AS `工资`
FROM
salaries
WHERE
salary > 85000;
输出效果
按逻辑表达式筛选
MySQL的逻辑表达式的有 && (且)、|| (或)、!(非) ,也可以标识为 and、 or、 not
- &&和and表示,左右两个条件表达式都为true,即结果为true,否则返回false
- ||和or表示左右两个表达式其中一个为true,即返回true,两个表达式为false,即返回false。
- !和not表示 连接的条件表达式为false,即返回true,否则返回false;
例如:
SELECT
`emp_no` AS `工号`,
`first_name` AS `名字`,
`gender` AS `性别`
FROM
employees
WHERE
gender!='M' AND emp_no <11000
输出效果:
示例2:
SELECT
emp_no AS `工号`,
salary AS '工资',
salary*0.05 AS `职效`
FROM
salaries
WHERE
salary > 45000 AND salary <53000 AND salary*0.05<2500;
输出效果
按模糊条件筛选
模糊查询,有LIKE、BETWEEN AND、IN、IS null、IS NOT null。
LIKE的特点通常和通配符搭配使用
- % 表示任意多个字符,包含0个字符
- _ 表示任意单个字符
SELECT
`emp_no` "工号",
`first_name` "名字",
`gender` "性别"
FROM
employees
WHERE
first_name NOT LIKE 'Barn%' AND gender='M'
输出效果:
示例2
SELECT
`emp_no` "工号",
`first_name` "名字",
`gender` "性别"
FROM
employees
WHERE
first_name LIKE '___e_ar%' AND gender='M'
输出效果:
BETWEEN AND模糊查询
SELECT
`emp_no` "工号",
`first_name` "名字",
`gender` "性别"
FROM
employees
WHERE
emp_no BETWEEN 20000 AND 25000 AND gender='M';
输出效果:
IN 条件查询
MySQL支持IN关键字查询,我们可以将明确的字段值放入IN关键字的括后内部,按照字段值查找对应的记录。
使用IN的注意事项
- 简化查询语句,
- IN列表中的字段值数据类型必须相容。
- IN列表中的字段值不能使用%,_这些通配符。
IN (字段值1,字段值2,.....)
SELECT
emp_no '工号',
first_name '名字',
gender '性别',
hire_date '入职日期'
FROM employees
WHERE
hire_date IN (
'1992-12-1','1985-05-13'
);
输出结果
上面的查询语句和下面的条件OR查询是等价的
SELECT
emp_no '工号',
first_name '名字',
gender '性别',
hire_date '入职日期'
FROM employees
WHERE
hire_date = '1992-12-1' OR hire_date = '1985-05-13'
下一篇有待更新....