#DQL语言
##二、条件查询
###1.基本语法:
select
查询列表
from
表名
where
筛选条件;
执行步骤依次是:
①:先"from 表名";
②:再"where 筛选条件"
③:最后"select 查询列表"去显示符合条件的字段列表.
###2.筛选条件的分类
一、按条件表达式筛选:
基础条件运算符: > < = != <> >= <= <=> (PS:==<>==也是表示"不等于",和!=一样的用法)
二、按逻辑表达式筛选:
逻辑运算符:
and or not
三、模糊查询(也属于条件运算符,但属于复杂条件运算符):
like
between and
in
is null|is not null
###3.示例介绍
一、按条件表达式筛选:
案例:查询部门编号不等于90号的员工名和部门编号
select
last_name,
department_id
from
employees
where
department_id<>90; //或是用!=也行
二、按逻辑表达式筛选:
案例:查询部门编号不是在90到110之间,或者工资高于15000的员工信息
SELECT
*
FROM
employees
WHERE
department_id<90 OR department_id>110 OR salary>15000; //或者NOT(department_id>=90 AND department_id<=110) OR salary>15000;也行
三、模糊查询:
·关于like
案例一:查询员工名中包含字符a的员工信息
SELECT
*
FROM
employees
WHERE
last_name LIKE '%a%';
注意:’%'代表一种通配符,下面借此例来讲一讲
MySQL中的常用统配符有三个:
% :用来表示任意多个字符,**包含0个字符**
_ : 用来表示任意单个字符
escape :用来转义特定字符
在MySQL中统配符一般和模糊查询 like 关键字结合使用!
了解了通配符,下面给出几个案例进行巩固.
案例二:查询员工名中第三个字符为e,第五个字符为a的员工名和工资
SELECT
last_name,
salary
FROM
employees
WHERE
last_name LIKE '__e_a%';
案例三:查询员工名中第二个字符为_的员工名
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '_\_%'; //PS:'\'这里为转义符!!!
当然,转义符号不一定非要是’’,MySQL允许我们用关键字ESCAPE去指代指定的符号当做转义符,可以用语句:
last_name LIKE '_$_%' ESCAPE '$';
<<当然,除了匹配字符型,LIKE也同样可以用来模糊匹配数值型字段
·关于between and
可以用
employee_id between 100 AND 120;
去代替
employee_id >=100 ADN employee_id <=120;
关于between and有以下几点需要说明:
①使用between and可以提高语句的简洁度;
②包含临界值(即是>=或<=);
③两个临界值不能调换顺序。(即不能是employee_id between 120 AND 100;
)
·关于in
案例:查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
使用语句:
SELECT
last_name,
job_id
FROM
employees
WHERE
job_id = 'IT_PROG' OR job_id = 'AD_VP' OR job_id = 'AD_PRES';
其中
job_id = 'IT_PROG' OR job_id = 'AD_VP' OR job_id = 'AD_PRES';
可以用下面这个in语句代替
job_id IN('IT_PROG','AD_VP','AD_PRES');
关于IN需要作一下几点说明:
IN含义:判断某字段的值是否属于in列表中的某一项;
IN特点:
①使用IN提高语句简洁渡;
②IN列表的字段值类型必须一致或兼容;
③IN列表的字段值==不能含通配符==,即不能是像'VD_%'这样的。
·关于is null
别的不提,只需要记住:= 或者 <>不能判断null值,可以用is null|is not null去判断。
如判断是否有奖金率:
SELECT COMMISSION_PCT IS NULL;
·关于安全等于<=>
这个也简短地说,<=>既可以判断数值型,又可以判断字符型,刚刚那条语句可以写为:SELECT COMMISSION_PCT <=> NULL;
以上就是条件查询的内容,下一节将介绍排序查询!