mysql语句条件筛选_MySQL:条件查询

语法:

--执行顺序:312

SELECT

查询列表

FROM

表名

WHERE 筛选条件 ;

分类:

按条件表达式筛选

条件运算符:> < = != <> >= <=

按逻辑表达式筛选

逻辑运算符:用于连接条件表达式

&&和and:两个条件都为true,结果为true,反之为false

||和or:只要有一个条件为true,结果为true,反之为false

!和not:如果连接的条件本身为false,结果为true,反之为false

模糊查询

like

between and

in

is null | is not 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 ;

案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息

SELECT

*

FROM

employees

WHERE NOT (

department_id >= 90

AND department_id <= 110

)

OR salary >= 15000 ;

模糊查询

1. like

一般和通配符搭配使用

通配符:

% 任意多个字符

_ 任意单个字符

案例1:查询员工名中包含字符a的员工信息

SELECT

*

FROM

employees

WHERE last_name LIKE '%a%' ;

案例2:查询员工名中第三个字符为e,第五个字符为a的员工名和工资

SELECT

last_name,

salary

FROM

employees

WHERE last_name LIKE '__a_e%' ;

案例3:查询员工名中第二个字符为_的员工名

--方式一:

SELECT

last_name

FROM

employees

WHERE last_name LIKE '_$_%' ESCAPE '$';

--方式二:

SELECT

last_name

FROM

employees

WHERE last_name LIKE '_\_%';

2. between and

提高语句简介度

包含临界值,两个临界值不可以调换顺序

案例:查询员工编号在100到120之间的员工信息

SELECT

*

FROM

employees

WHERE employee_id BETWEEN 100

AND 120 ;

3. in

含义:判断某字段的值是否属于in列表中的某一项

特点:

1.使用in提高语句简洁度

2.in列表的值类型必须一致或兼容

3.in列表的值不支持通配符

案例:查询员工的工种编号是AD_VP、IT_PROG、AD_PRES中的一个的员工名和工种编号

SELECT

last_name,

job_id

FROM

employees

WHERE job_id IN ('AD_VP', 'IT_PROG', 'AD_PRES') ;

4. is null

=或者<>不能用于判断null值

is null和is not null可以判断null值

案例1:查询没有/有奖金的员工名和奖金率

SELECT

last_name,

commission_pct

FROM

employees

WHERE commission_pct IS NULL/IS NOT NULL ;

安全等于<=>

案例2:查询没有奖金的员工名和奖金率

SELECT

last_name,

commission_pct

FROM

employees

WHERE commission_pct <=> NULL ;

案例3:查询工资为12000的员工名和工资

SELECT

last_name,

salary

FROM

employees

WHERE salary <=> 12000 ;

案例4:查询员工号为176的员工的姓名、部门号和年薪

SELECT

last_name,

department_id,

salary 12*(1+ IFNULL(commission_pct, 0)) AS 年薪

FROM

employees

WHERE employee_id = 176 ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值