资源描述:
《oracle 子查询上机训练》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Oracle子查询上机一、简单的查询语句1、查询表结构sql>descdept;Deptdeptno(部门号),dname(部门名称)Empempno(工号)ename(姓名),sal(岗位工资),deptno(部门),comm(补助),mgr(上级)job(岗位)2、查询所有列sql>select*fromdept;3、查询指定列sql>selectename,sal,job,deptnofromemp;4、如何取消重复行sql>selectdistinctdeptno,jobfromemp;5、使用算术表达式实例:显示每个雇员的年工资sql>
2、selectename,sal*12"年工资"fromemp;6、使用列的别名sql>selectename"姓名",sal*12as"年收入"fromemp;7、如何处理null值说明:对于null值,我们可以使用nvl函数来处理。实例:显示每个雇员的年工资(包括奖金)sql>selectename,sal*12+nvl(comm,0)*12"年收入"fromemp;8、如何连接字符串sql>selectename
3、
4、'isa'
5、
6、jobfromemp;9、使用where子句实例:如何显示工资高于3000的员工sql>selectename,s
7、alfromempwheresal>3000;实例:如何查找1982.1.1后入职的员工实例:如何显示工资在2000到2500的员工情况10、使用like操作符(1)%:表示任意0到多个字符。(2)_:表示任意单个字符。实例:如何显示首个字符为S的员工姓名和工资sql>selectename,salfromempwhereenamelike'S%';实例:如何显示第三个字符为大写O的所有员工的姓名和工资sql>selectename,salfromempwhereenamelike'__O%';11、在where条件中使用in实例:如何显示emp
8、no为123,345,800的雇员情况12、使用isnull的操作符实例:如何显示没有上级的雇员的情况13、使用逻辑操作符号实例:查询工资高于500或是岗位为MANAGER的雇员,同时还要满足他们的姓名首先字母为大写的J14、使用orderby子句实例:如何按照工资中低到高的顺序显示雇员的信息实例:按照部分号升序而雇员的工资降序排列15、使用列的别名排序sql>selectename,sal*12"年薪"fromemporderby"年薪"desc;注:别名需要使用双引号括起来。二、复杂的查询语句说明:在实际应用中经常需要执行复杂的数据统计,经常
9、需要显示多张表的数据,现在我们给大家介绍较为复杂的select语句。1、数据分组——max,min,avg,sum,count实例:如何显示所有员工中最高工资和最低工资selectmax(sal),min(sal)fromemp实例:显示所有员工的平均工资和工资总和selectavg(sal),sum(sal)fromemp实例:计算共有多少员工selectcount(empno)fromemp实例:请显示工资最高的员工的名字,工作岗位selecteanme,dnamefromdept,empwheresal=(selectmax(sal)fro
10、memp)实例:显示工资高于平均工资的员工selectenamefromempwheresal>=(selectavg(sal)fromemp)2、groupby和having子句groupby用于对查询的结果分组统计。having用于限制分组显示结果。实例:如何显示每个部门的平均工资和最高工资selectavg(sal),max(sal)fromempgroupbydeptno实例:显示每个部门的每种岗位的平均工资和最低工资selectavg(sal),min(sal)fromempgroupbydeptno,job实例:显示平均工资低于200
11、0的部门号和他的平均工资selectdeptno,avg(sal)fromempgroupby对数据分组的总结1、分组函数只能出现在选择列表、having、orderby子句中。2、如果在select语句中同时包含groupby、having、orderby,那么他们的顺序是groupby,having,orderby。3、在选择列中如果有列、表达式和分组函数,那么这些列和表达式必须有一个出现在groupby子句中,否则就会出错。如:selectdeptno,avg(sal),max(sal)fromempgroupbydeptnohavinga
12、vg(sal)>2000orderbyavg(sal);这里deptno就一定要出现在groupby中。三、多表查询说明:多表查询是指基