语法:select(查询列表) from(表名) where(筛选条件)
例:select last_name,first_name from employees where salary>2000;
筛选条件分类:
1、按关系表达式筛选
关系运算符:>、 < 、>= 、 <=、 = 、 <>(不等于)
如:SELECT * FROM employees WHERE department_id <> 100;查询部门编号不是100的员工信息
SELECT last_name,salary FROM employees WHERE salary<15000;查询工资<15000的姓名、工资
2、按逻辑表达式筛选
and 、or、 not
如:查询部门编号不是 50-100之间员工姓名、部门编号、邮箱
方式一:SELECT last_name,department_id,email FROM employees WHERE department_id <50 OR >100;
方式二:SELECT last_name,department_id,email FROM employees WHERE NOT(department_id >=50 AND department_id <=100);
如:查询奖金率>0.03 或者 员工编号在60-110之间的员工信息
SELECT* FROM employees WHERE commission_pct>0.03 OR (employee_id >=50 AND employee_id <=110) ;
3、模糊查询
1)like:和"_"搭配使用表示对任意单个字符,和“%”搭配使用表示对任意多个字符,进行部分匹配查询)
2)in(常量值1,常量值2,常量值3,...) :查询某字段的值是否属于指定的离散区间之内
3)between and :判断某个字段是不是在一个连续区间内
4)is null/is not null :是否为空。注:= 只能判断普通的内容;IS 只能判断NULL值;<=>安全等于,既能判断普通内容,又能判断NULL值
like如:查询姓名中包含第三个字符为X的员工信息
SELECT* FROM employees WHERE last_name LIKE ‘__X%’;
查询姓名中包含第二个字符为_的员工信息(查询字符和标识符重合,可用 ESCAPE 自定义分隔符 )
SELECT* FROM employees WHERE last_name LIKE ‘_$_%’ ESCAPE ‘$’;
in如:查询部门编号是30/50/90的员工名、部门编号
SELECT last_name,department_id, FROM employees WHERE department_id IN (30,50,90)
查询工种编号不是SH_CLERK或IT_PROG的员工信息
SELECT * FROM employees WHERE job_id NOT IN ('SH_CLERK','IT_PROG');
between and如:查询部门编号是30-90之间的部门编号、员工姓名
SELECT department_id, last_name FROM employees WHERE department_id BETWEEN 30 AND 90;
is null/is not null 如:查询没有奖金的员工信息
SELECT* FROM employees WHERE commission_pct IS NULL;
学习资料来源:李玉婷;链接:https://www.bilibili.com/video/av49181542?p=3