收藏 分享(赏)

常用SQL查询语句.doc

上传人:精品资料 文档编号:10361625 上传时间:2019-11-03 格式:DOC 页数:6 大小:21.87KB
下载 相关 举报
常用SQL查询语句.doc_第1页
第1页 / 共6页
常用SQL查询语句.doc_第2页
第2页 / 共6页
常用SQL查询语句.doc_第3页
第3页 / 共6页
常用SQL查询语句.doc_第4页
第4页 / 共6页
常用SQL查询语句.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、一、简单查询语句1、查看表结构desc emp;2、查询所有列select * from emp;3、查询指定列select empmo, ename, mgr FROM emp;select distinct mgr FROM emp; - 显示非重复的数据4、查询指定行SELECT * FROM emp WHERE job=CLERK;5、使用算术表达式SELECT ename, sal*13+nvl(comm,1) FROM emp; nvl(comm,1)的意思是,如果 comm 中有值,则 nvl(comm,1)=comm; comm 中无值,则 nvl(comm,1)=0。SELE

2、CT ename, sal*13+nvl(comm,0) year_sal FROM emp; (year_sal 为别名,可按别名排序)SELECT * FROM emp WHERE hiredate01-1 月-82;6、使用 like 操作符(%,_)%表示一个或多个字符, _表示一个字符, charlist表示字符列中的任何单一字符,charlist或者!charlist不在字符列中的任何单一字符。SELECT * FROM emp WHERE ename like S_T%;7、在 where 条件中使用 inselect * from emp WHERE job in(clerk,

3、 analyst);8、查询字段内容为空/非空的语句select * from emp where mgr is/is not null;9、使用逻辑操作符号select * from emp where (sal500 or job=MANGE) and ename like j%;10、将查询结果按字段的值进行排序select * from emp order by deptno, sal DESC;(按部门升序,并按薪酬降序)二、复杂查询1、数据分组(max ,min ,avg ,sum ,count)select max(sal), min(age), avg(sal), sum(sa

4、l) from emp;select * from emp where sal = (select max(sal) from emp);select count(*) from emp;2、group by(用于对查询结果的分组统计)和 having 子句(用户限制分组显示结果)select deptno, max(sal), avg(sal), from emp group by deptno;select deptno, job ,avg(sal), min(sal) from emp group by deptno,job having avg(sal)ALL(select sal f

5、rom emp where deptno=30);或 select ename,sal,deptno from emp where sal(select max(sal) from emp where deptnp=30);查询工资比部门号为 30 的所有员工工资都高的员工的姓名、薪水和部门号。以上两个语句在功能上是一样的,但执行效率上,函数会高很多。5.4 使用 ANYselect ename,sal,deptno from emp where sal ANY(select sal from emp where deptno=30);或 select ename,sal,deptno fro

6、m emp where sal(select min(sal) from emp where deptno=30);查询工资比部门号为 30 号的任意一个员工工资高(只要比某一员工工资高即可)的员工的姓名、薪水和部门号。以上两个语句在功能上是一样的,但执行效率上,函数会高得多。5.5 多列子查询select * from emp where (job,deptno)=(select job,deptno from emp where ename=SMITH);5.6 在 from 子句中使用子查询select emp.deptno ,emp.ename ,emp.sal ,t_avgsal.a

7、vgsal from emp, (select emp.deptno ,avg(emp.sal) avgsal from emp group by emp.deptno)t_avgsal where emp.deptno=t_avgsal.deptno AND emp.salt_avgsal.avgsal order by emp.deptno;5.7 分页查询数据库的每行数据都有一个对应的行号,称为 rownumselect a2.* from (select a1.* , ROWNUM rn from (select * from emp Order by sal)a1 where Row

8、num=6;指定查询列、查询结果排序等,都只需要修改最里层的子查询即可5.8 用查询结果创建新表create table mytable(id,name,sal,job,deptno) as select empno,ename,sal,job,deptno from emp;5.9 合并查询(union 并集,intersect 交集,union all 并集+ 交集,minus 差集)select ename,sal,job from emp where sal2500 UNION(INTERSECT/UNION ALL/MINUS) SELECT ename ,sal,job from

9、emp where job=manager;合并查询的执行效率远高于 and,or 等逻辑查询5.10 使用子查询插入数据create table myEMP(empID number(4),name varchar2(20),sal number(6),job varchar2(10),dept number(2);先建一张空表insert into myEMP(empID,name,sal,job,dept) select empno,ename,sal,job,deptno from emp where deptno =10;再将 emp 表中部门号为 10 的数据插入到新表 myEMP 中,实现数据的批量查询。5.11 使用子查询更新表中的数据update emp set (job,sal,comm) = (select job,sal,comm from emp where ename=smith) where ename=scott;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报