条件查询
语法:SELECT 查询列 FROM 表名 WHERE 筛选条件;
一、按条件表达式:>;<;>=;<=;<>;!=
#一、按条件表达式筛选
#案例1:查询工资>12000的员工信息
SELECT *
FROM
employees
WHERE
salary>12000
#案例2:查询部门编号不等于90号的员工名和部门编号
SELECT
department_id, last_name
FROM
employees
WHERE
department_id <>90;
二、按逻辑表达式筛选
#二、按逻辑表达式筛选
#案例1:查询工资在10000早20000之间的员工名,工资奖金
SELECT
last_name,commission_pct,salary
FROM
employees
WHERE
salary>=10000 AND slary<=20000;
#案例二、查询部门编号不是在100-110之间或者工资高于15000的员工信息
#写法1
SELECT
*
FROM
employees
WHERE
department_id>110 OR department_id<100 or salary > 15000
#写法2
SELECT
*
FROM
employees
WHERE
NOT(department_id>100 AND department_id<110) or salary > 15000
三、模糊查询
like;in;is null;between and;
#三、模糊查询
#案例1:查询员工名中包含字符a的员工信息
SELECT
*
FROM
employees
WHERE
last_name LIKE '%a%';
#%为通配符,代表任何一个字符
#案例二、查询员工名中第三个字符为e,第五个字符为a的员工名和工资
SELECT
last_name,salary
FROM
employees
WHERE
last_name LIKE '__e_a%'
#案例三:查询员工名中第二个字符_的员工名
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '_\_%'
#\为转译字符
#同样可以使用其它字符进行转译
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '_$_%' ESCAPE '$'
#between and
#案例1:查询员工编号在100-120之间的员工信息
#写法一
SELECT
*
FROM
employees
WHERE
employees_id>=100 AND employees_id<=120;
#写法二
SELECT
*
FROM
employees
WHERE
employees_id between 100 AND 120;
#3.in:用于判断某字段的值是否属于in列表中的某一项——提高语句简洁度,in列表的值类型必须兼容或一致,不支持通配符的使用
#案例:查询员工的工种编号 IT_PROG,AD_VP,AD_PRES的一个员工名和工种编号
#写法1
SELECT
last_name,job_id
FROM
employees
WHERE
job_id ='IT_PROG' OR job_id ='AD_VP' OR job_id ='AD_PRES' ;
#写法2
SELECT
last_name,job_id
FROM
employees
WHERE
job_id in('IT_PROG','AD_VP','AD_PRES') ;
#4.is null
#案例1:查询没有奖金的员工名和奖金率
SELECT
last_name,commission_pct
FROM
employees
WHERE
commission_pct is NULL
#案例2 查询工资为12000的员工信息
SELECT
*
FROM
employees
WHERE
salary <=> 120000;
#查询员工号为176的员工姓名和部门号和年薪
SELECT
last_name,department_id,salary*12*(1+ifnull(commission_pct,0)) AS 年薪
FROM
employees
WHERE
employees_id=176