一共分三类:
1.按条件表达式筛选2.按逻辑运算符筛选
3.迷糊查询
#进阶2:条件查询 /* 语法: select 查询列表 from 表名 where 筛选条件; 分类: 一、按条件表达式筛选 条件运算符: > < != <> >= <= 二、按逻辑运算符筛选 逻辑运算符: && || ! and or not 三、模糊查询 like between in is null */ #一、按条件表达式筛选 #案例一:查询工资>12000的员工信息 SELECT * FROM employees WHERE salary>12000; #案例二:查询部门编号不等于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 department_id<90 OR department_id>110 OR salary>150000; #三:模糊查询 /* like 特点: ①一般和通配符搭配 通配符: % 任意多个字符(包含0个字符) _ 任意一个字符 between and 特点: ①使用between and 可以提高语句的简洁度 ②包含临界值 ③两个临界值不能调换顺序 in 含义:判断某字段的值是否属于in列表中的某一项 特点: ①使用in可以提高于都简洁度 ②in列表的值必须一直或兼容 ③在in里面不支持通配符 is null|is not null =或<>不能用来判读null值 is null或is not null可以判读null值 */ #1.like #案例1:查询员工中包含字符a的员工信息 SELECT * FROM employees WHERE last_name LIKE '%a%'; #案例2:查询员工名中第三个字符为n,第五个字符为l的员工名和工资 SELECT * FROM employees WHERE last_name LIKE '__n_l%'; #案例3:查询员工名中第二个字符为_的员工名 SELECT * FROM employees WHERE last_name LIKE '_\_%';# "/"是转义字符 #2.between and #案例1:查询员工编号在100到120之间的员工信息 SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120; #3.in #案例:查询员工的工种编号是IT_PROT、AD_VP、AD_PRES中的一个员工名和工种编号 SELECT last_name, job_id FROM employees WHERE job_id IN('IT_PROT' ,'AD_VP','AD_PRES'); #等价于 job_id = 'IT_PROT' OR job_id = 'AD_VP' OR job_id = 'AD_PRES'; #4.is null #案例1:查询没有奖金的员工名和奖金率 SELECT last_name, commission_pct FROM employees WHERE commission_pct IS NULL;#加上not就是查询没有奖金的 #<=>安全等于 #案例2:查询没有奖金的员工名和奖金率 SELECT last_name, commission_pct FROM employees WHERE commission_pct <=> NULL;#加上not就是查询没有奖金的 #案例3:查询工资为12000的员工信息 SELECT last_name, salary FROM employees WHERE salary <=> 12000; #is null PK <=> IS NULL 仅仅可以判断null值,可读性较高,建议使用 <=> 既可以判断null值,又可以判断普通的数值,可读性较低