数据库常用查询操作
select * from emp where deptno=20;
-- > < >= 1000
select ename,job,sal,deptno from emp where sal=1000;
-- 查询不在20部门工作的员工信息
select * from emp wher
--条件: deptno=20 select * from emp where deptno=20; -- > < >= 1000 select ename,job,sal,deptno from emp where sal=1000; -- 查询不在20部门工作的员工信息 select * from emp where deptno != 20; select * from emp where deptno 20; --where 中不能使用字段的别名 -- 查询员工的年薪大于20000的 员工名称、岗位 年薪 select ename 姓名,job 岗位,(sal+nvl(comm,0))*12 sum from emp where ((sal+nvl(comm,0))*12)>20000; select ename 姓名,job 岗位,(sal+nvl(comm,0))*12 sum from emp; select 岗位, sum from (select ename 姓名, job 岗位, (sal + nvl(comm, 0)) * 12 sum from emp) where sum > 20000; -- 查询 any(任意一个) some(任意一个) all(所有) select * from emp where deptno = any(10,20); select * from emp where deptno = some(10,20); --大于最小的 select * from emp where sal> any(1500,2000); --薪资>1500的就可以 --大于最大的 select * from emp where sal> all(1500,2000); --薪资>2000的就可以 -- 查询 工种不为’SALESMAN’的员工信息 (注意 内容区分大小写) select * from emp where not job ='SALESMAN'; --or或 and并且|都 not取反 -- -检索 工资 1600, 3000员工名称 岗位 工资 select ename,job,sal from emp where sal=1600 or sal=3000; select ename,job,sal from emp where not (sal=1600 or sal=3000); -- 工资在2000到3000之间的员工信息 select * from emp where sal>2000 and sal --between 小范围值 and 大范围的值 两者之间 = select * from emp where sal between 1600 and 3000; ---查询 岗位 为 CLERK 且部门编号为 20的员工名称 部门编号,工资 select ename ,deptno ,sal from emp where job='CLERK' and deptno=20; -- 查询 岗位 为 CLERK 或部门编号为 20的员工名称 部门编号,工资 select ename ,deptno ,sal,job from emp where job='CLERK' or deptno=20; --查询 岗位 不是 CLERK 员工名称 部门编号,工资 select ename ,deptno ,sal,job from emp where job!='CLERK'; select ename ,deptno ,sal,job from emp where not job='CLERK'; select ename ,deptno ,sal,job from emp where job'CLERK'; -- 查询 岗位 不为 CLERK 并且部门编号不为 20的员工名称 部门编号,工资 select ename ,deptno ,sal,job from emp where job!='CLERK' and deptno!=20; select ename ,deptno ,sal,job from emp where not (job='CLERK' or deptno=20); --存在佣奖金的员工名称 select ename,comm from emp where not comm is null; select ename,comm from emp where comm is not null; --不存在奖金的员工名称 select ename,comm from emp where comm is null; --集合 --Union,并集(去重) 对两个结果集进行并集操作,不包括重复行同时进行默认规则的排序; --Union All,全集(不去重) 对两个结果集进行并集操作,包括重复行,不进行排序 ; --Intersect,交集(找出重复) 对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序; --Minus,差集( 减去重复 ) 对两个结果集进行差操作数据库查询操作,不包括重复行,同时进行默认规则的排序 --查询工资大于1500 或 含有佣金的人员姓名 select ename,sal,comm from emp where sal>1500 or comm is not null; select ename,sal,comm from emp where sal>1500; select ename,sal,comm from emp where comm is not null; --并集 select ename,sal,comm from emp where sal>1500 Union select ename,sal,comm from emp where comm is not null; select ename,sal,comm from emp where sal>1500 Union all select ename,sal,comm from emp where comm is not null; --查询显示不存在雇员的所有部门号。 --求出所有的部门号 select deptno from dept; --有员工的部门号 select distinct deptno from emp; select deptno from dept Minus select distinct deptno from emp; -- 查询显示存在雇员的所有部门号。 select deptno from dept Intersect select distinct deptno from emp; --模糊匹配 like %任意任意字符 _一个任意字符 一起使用 --查询员工姓名中包含字符A的员工信息 select * from emp where ename like '%A%'; --完全匹配 select * from emp where ename like 'SMITH'; --查询员工姓名以'A'结尾的员工信息 select * from emp where ename like 'A%'; --查询员工姓名中第二个字母为A的员工信息 select * from emp where ename like '_A%'; insert into emp(empno,ename,sal) values(1000,'t_%test',8989); insert into emp(empno,ename,sal) values(1200,'t_tes%t',8000); --escape('单个字符')指定转义符 --查询员工姓名中包含字符%的员工信息 select * from emp where ename like '%B%%' escape('B'); --当执行插入数据,删除数据,修改的时候,默认开启事务 --可提交 commit --可回滚 rollback --多个人中任意一个值就可以 select * from emp where sal=1600 or sal=3000 or sal=1500; select * from emp where sal in(1500,1600,3000); --select 字段.. from 结果集 where 行过滤条件 order by 排序字段 desc降序|asc升序(默认)..; --执行流程: from--> where-->select-->排序 select empno,ename,sal from emp order by sal desc,empno asc; --按照奖金升序排序,如果存在null值,所有的奖金null值的数据最先显示 select empno,ename,sal,comm from emp where deptno in (10,30) order by comm asc nulls first; (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |