条件查询
-
使用where语句查询筛选
语法:select field_name1,……,field_namen from tab_name where 筛选条件
1. 单条件查询
-
单条件查询
-- 使用运算符进行筛选 =,>,>=,<,<=,<> 单个条件中 -- 注意:如果条件中的值是字符,必须使用单引号括起来 -- 查询所有员工的工资信息、 select empno,ename,sal+comm 薪资 from emp -- 查询SMITH的个人信息 select * from emp where ename = 'SMITH';
-- 查询SMITH的薪资信息,逻辑运算符 = select empno,ename,sal,sal+comm from emp where ename='SMITH';
-- 查询工资大于1000的员工信息,逻辑符 > select * from emp where sal>1000;
-- 查询工资不等于3000的员工信息 select * from emp where sal <> 3000 order by sal;
2. 多条件查询
-
多条件查询(where 子句关键字: and,or,like,is null,is not null,in ,between…… and)
-
and 的使用
-- 查询有津贴的员工信息 -- 多条件使用and关键字进行连接,筛选的是符合所有条件的数据 语法:select * from tab_name where 条件1 and …… and 条件n; select * from emp where comm is not null and comm>0;
-
between……and 的使用
-- 闭区间 select * from emp where sal between 2000 and 3000;
-
-
-
like 的使用
-- 模糊查询 -- 查询姓名中包含S的员工信息 语法:select * from tab_name where 字段名 like '%字符%'; --查询指定字符的数据 -- %号表任意多个的任意字符;字符串中分大小写 select * from emp where ename like '%S%';
-- 以S开头的员工信息 select * from emp where ename like 'S%'; -- 以S结尾的员工信息 select * from emp where ename like '%S';
-- 第二个字母为A的员工信息 -- '_'任意一个字符 select * from emp where ename like '_A%';
-- select * from tab_name where 字段名 like '%字符2字符1' escape '字符2' -- escape 将指定的字符变成转义字符 select * from emp where ename like '%/_%' escape '/';
-
or 的使用
-- 查询工作为SALEMAN,ANALYST,MANAGER的员工信息 -- 可以使用不同的字段 select * from emp where job = 'SALEMAN' or job = 'ANALYST' or job = 'MANAGER';
-
in 的使用
-- 查询工作为SALEMAN,ANALYST,MANAGER的员工信息 -- 只能使用同一字段名 select * from emp where job in ('SALEMAN','ANALYST','MANAGER'); -- 与上一样的结果
-
is null 和 is not null 的使用
-- 字段值是否非空查询 语法:select * from tab_name where 字段名 is null -- 字段值为空: 语法:select * from tab_name where 字段名 is not null -- 字段值非空: select * from emp where comm is null;
-
混合使用
-- 1. 找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料. select * from emp where (deptno = 10 and job = 'MANAGER') or (deptno = 20 and job = 'CLERK');
--2.显示不带有"R"的员工的姓名. select ename from emp where ename not like '%R%';
-- 查询工作为SALEMAN,MANAGER并且工资大于2500的员工信息 -- and关键字优先级高于or -- 通过使用()提升需要执行语句的级别 select * from emp where (job = 'SALEMAN' or job = 'MANAGER') and sal>2500;