4.条件查询

#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;

以上就是条件查询的内容,下一节将介绍排序查询!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值