附上myemployees.sql下载
链接:https://pan.baidu.com/s/14elpKyAbOFKAtQNRSvj-JQ
提取码:tt66
条件查询
USE `myemployees`;
#条件查询
/*
语法:
select
查询列表
from
表名
where
筛选条件;
*/
#按条件表达式
SELECT
*
FROM
`employees`
WHERE
`salary`>12000; #薪水大于12000
SELECT
`last_name`,`department_id`
FROM
`employees`
WHERE
`department_id`!=90; #查询部门编号不等于90的员工名和部门编号
#按逻辑表达式
/*
&&和and:两个条件都为true,结果为true,反之为false
||或or:有一个条件为true,结果为true,反之为false
!或not:连接的条件本身为false,结果为true,反之为false
*/
SELECT
`last_name`,`salary`,`commission_pct`
FROM
`employees`
WHERE
`salary`>=10000
AND
`salary`<=20000; #工资在一万到两万之间的员工名、工资、奖金
SELECT
*
FROM
`employees`
WHERE
NOT(`department_id`>=90 AND `department_id`<=110) OR `salary`>15000; #查询部门编号不是在90~110之间或薪水大于15000的员工信息
#模糊查询
#like 查询员工名中包含字符a的员工信息
SELECT
*
FROM
`employees`
WHERE
`last_name` LIKE '%a%';
#查询员工名中第三字符为n,第五个字符为l的员工名和薪水
SELECT
`last_name`,`salary`
FROM
`employees`
WHERE
`last_name` LIKE '__n_l%';
#查询员工名中第二个字符为_或第三个字符为 的员工名
SELECT
`last_name`
FROM
employees
WHERE
`last_name` LIKE '_\_%' OR `last_name` LIKE '__$ %' ESCAPE '$'; #转义字符\,也可以用escape表明转义字符
#in 查询工种编号为IT_PROG、AD_VP的员工名和工种编号
/*
含义:判断某字段的值是否属于in列表中的某一项
*/
SELECT
`last_name`,`job_id`
FROM
`employees`
WHERE
`job_id`IN('IT_PROG','AD_VP');
#is null 查询没有奖金的员工名和奖金率
SELECT
`last_name`,`commission_pct`
FROM
`employees`
WHERE
`commission_pct` IS NULL; #值为null时不能使用=或<>
SELECT
`last_name`,`commission_pct`
FROM
`employees`
WHERE
`commission_pct` IS NOT NULL; #查询有奖金
#安全等于 <=>
#查询没有奖金的员工名和奖金率
SELECT
`last_name`,`commission_pct`
FROM
`employees`
WHERE
`commission_pct`<=>NULL;
#工资为12000的员工信息
SELECT
*
FROM
`employees`
WHERE
`salary`<=>12000;
#查询员工号为176的员工的姓名和部门号和年薪
SELECT
`last_name`,`department_id`,
`salary`*12*(1+IFNULL(`commission_pct`,0)) AS 年薪
FROM
`employees`;