MySQL基础笔记——条件查询

进阶查询(一):条件查询

语法:使用where关键字
SELECT 查询列表 FROM 表名 WHERE 筛选条件

  1. 按条件表达式筛选:条件运算符 > < = != <> >= <=(SQL语句的不等号一般写为<>而不用!=)

  2. 按逻辑表达式筛选:逻辑运算符 and or not

  3. (3)模糊查询: like 、between and、in、is null

一、 按表达式筛选

  1. 筛选表中工资大于12000的员工信息
    SELECT * FROM employees WHERE salary>12000;

  2. 筛选部门编号不等于90的员工名和部门编号
    SELECT first_name, last_name, department_id FROM employees WHERE department_id <> 90;

二、按逻辑表达式筛选

  1. 查询工资在10000到20000之间的员工名、工资和奖金:
    SELECT last_name, salary, commission_pct FROM employees WHERE salary >= 10000 AND salary <= 20000;

  2. 查询部门编号不是在90到110之间的,或者工资高于15000的员工信息:
    SELECT * FROM employees WHERE salary >= 15000 OR department_id > 110 OR department_id < 90;
    或者使用NOT和AND的组合来筛选部门编号:
    SELECT * FROM employees WHERE NOT (department_id >= 90 AND department_id <= 110) OR salary >= 15000;

三、模糊查询

(1)LIKE,通常与通配符搭配使用
通配符:

  • %:表示0或多个字符
  • _ :表示单个字符

查询员工名中包含字符a的员工信息
SELECT * FROM employees WHERE last_name LIKE '%a%'

查询员工名中第三个字符为n,第五个字符为l的员工名称
SELECT last_name FROM employees WHERE last_name LIKE '__n_l%'

查询员工名第二个字符为_的员工名称(需要用到转义字符\)
SELECT last_name FROM employees WHERE last_name LIKE '_\_%'
转义字符可以自己定义,如这里可以定义KaTeX parse error: Expected group after '_' at position 77: …ast_name LIKE '_̲_%’ ESCAPE $;`

(2)使用 between and进行范围条件查询

查询员工编号在100到200之间的员工信息: between and可对取同一字段某一区间的数值时使用,代码更为简单。
注意:between A and B,A要<=B,且查询出的结果是包含两个临界值的。(如下式查询结果是包含100和120的)
SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120

(3)使用IN判断某一值是否属于in列表中的某一项

注意,in列表中的内容类型应一致,且in列表中不支持使用通配符。

查询员工工种编号是IT_PROG、AD_VP、AD_PRES其中之一的员工名和工种编号:
SELECT last_name,job_id FROM employees WHERE job_id IN ('IT_PROG','AD_VP','AD_PRES')

(4)is null:null值不可直接用=查询,查询null值需要使用IS 或者 IS NOT

查询没有奖金的员工名和奖金率
SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NULL

(5)安全等于 <=>
IS只能和NULL匹配使用,=适合查询非NULL值,而安全等于<=>两者皆可查,但是代码可读性较差。
示例:
SELECT last_name,commission_pct FROM employees WHERE commission_pct <=> NULL
或者
SELECT last_name,salary FROM employees WHERE salary <=> 12000

附练习用sql脚本:
链接:https://pan.baidu.com/s/1UtUhpiStVXKpzFKz6qZjgQ
提取码:yysu

你可能感兴趣的:(数据库相关)