Mysql学习笔记2
条件查询
语法:
SELECT
查询列表 #第三步
FROM
表名 #第二步
WHERE
筛选条件; #运行时 第一步
分类:
/*
一· 按条件表达式筛选
条件运算符 > < = != >= <=
二· 按逻辑表达式筛选
逻辑运算符:
&& || !
and or not
三·模糊查询
like
between and
in
is null
*/
一· 按条件运算符筛选
#案例1:查询所有薪水大于12000的员工信息
SELECT
*
FROM
employees
WHERE
salary>12000;
#案例2:查询所有部门编号不等于90的员工的名和部门编号
SELECT
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;
三·模糊查询
/*
like
特点:
一般和通配符搭配使用
通配符:
% 任意多个字符
between and
特点:
提高语句整洁度
包含临界值
包含的两个临界值不要调换(值的类型必须一直且满足大小关系)
in
含义:判断某字段的值是否属于in列表中的某一项
特点:
提高语句整洁度
in列表的值类型必须统一(兼容)
is null
=或< >不能用于判断null值
所以用is null或者is not null 来判断null的值
*/
#1.LIKE:
#案例1:查询员工名中包括字符a的员工信息
SELECT
*
FROM
employees
WHERE
last_name LIKE ‘%a%’; # %:通配符
#案例2:查询员工名中第三个字符为n,第五个字符为l的员工名,工资
SELECT
last_name
salary
FROM
employees
WHERE
last_name LIKE ‘__n_l%’;
#案例3:查询员工名中第二个字符为_的员工名
SELECT
last_name
FROM
employees
WHERE
last_name LIKE ‘_\_%’; # \为转义字符java
# last_name LIKE ‘_$_%’ ESCAPE ‘$’;
# ESCAPE ‘’ :将‘’内的字符定义为转义字符
#2.BETWEEN AND:
#案例1:查询员工编号在100到120之间的员工信息
SELECT
*
FROM
employees
WHERE
employee_id BETWEEN 100 AND 120;
#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');
#4·is null:
#案例1:查询没有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NULL;
#案例2:查询有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NOT NULL;
安全等于 <=>
#案例1:查询没有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct <=> NULL;
#案例2:查询奖金为12000的员工名和奖金率
SELECT
last_name,
salary
FROM
employees
WHERE
salary <=> 12000;
is null仅仅可以判断null
<=>可以判断值和null 但可读性较差(毕竟是3个运算符组成) 所以推荐使用前者