网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

02_【基本SQL语句】SQL语法练习(二)

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

【网学网提醒】:网学会员为您提供02_【基本SQL语句】SQL语法练习(二)参考,解决您在02_【基本SQL语句】SQL语法练习(二)学习中工作中的难题,参考学习。


    SQL语法练习(二)语法练习(
    使用scott/tiger用户下的emp表和dept表完成下列练习,表的结构说明如下
    部门表部门表(dept))
    DEPTDEPTNONUMBER(2)DNAMEVARCHAR2(14)VARCHAR2(13)LOC
    DEPTNODNAMELOC
    部门编号部门名称部门地点
    雇员表雇员表(emp))
    EMPEMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNONUMBER(4)VARCHAR2(10)VARCHAR2(9)NUMBER(4)DATENUMBER(7,2)NUMBER(7,2)NUMBER(2)
    EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO
    雇员编号雇员职务领导编号受雇日期工资奖金所属部门
    工资=薪金+佣金1、列出至少有一个员工的所有部门。SQL>selectdeptno,count(empno)fromempgroupbydeptnohavingcount(empno)>=1;
    DEPTNOCOUNT(EMPNO)---------------------1032053062、列出薪金比“SMITH”多的所有员工。思路:1、先查出SMITH的工资2、所有的员工要与此工资比较,。大的满足条件select*fromempwheresal>(selectsalfromempwhereename=upper('smith'));
     3、列出所有员工的及其直接上级的。selectw.ename,m.enamefromempw,empmwherew.mgr=m.empno;
    4、列出受雇日期早于其直接上级的所有员工。selectw.ename,m.ename,w.hiredate"受雇日期"fromempw,empmwherew.hiredate    7、列出最低薪金大于1500的各种工作。MIN分组函数GROUPBYselectjob,min(sal)fromempgroupbyjobhavingmin(sal)>1500;8、列出在部门“SALES”(销售部)工作的员工的,假定不知道销售部的部门编号。Empdept思路:1、取出销售部门的部门编号selectenamefromempwheredeptno=(selectdeptnofromdeptwheredname='SALES');
    selectenamefromempe,deptdwheree.deptno=d.deptnoandd.dname='SALES';9、列出薪金高于公司平均薪金的所有员工。
     Avg求出平均值分组函数肯定做为条件出现selectename,salfromempwheresal>(selectavg(sal)fromemp);
    GROUPBY中出现
    10、列出与“SCOTT”从事相同工作的所有员工。selecte.empno,e.enamefromempewheree.job=(selectjobfromempwhereename='SCOTT')ANDe.ename<>'SCOTT';
    11、列出薪金等于部门30中员工的薪金的所有员工的和薪金。selectename,sal,deptnofromempwheresal>ANY(selectsalfromempwheredeptno=30)ANDdeptno<>30;selectename,sal,deptnofromcempwheresal=ANY(selectsalfromcempwheredeptno=30)ANDdeptno<>30;12、列
    出薪金高于在部门30工作的所有员工的薪金的员工和薪金。select*fromempwheresal>all(selectsalfromempwheredeptno=30);13、列出在每个部门工作的员工数量、平均工资和平均服务期限。、列出在每个部门工作的员工数量、平均工资和平均服务期限。
     14、列出所有员工的、部门名称和工资。selecte.ename,d.dname,e.salfromempe,deptdwheree.deptno=d.deptno;15、列出所有部门的详细信息和部门人数。、列出所有部门的详细信息和部门人数。Deptnodname人数selectd.deptno,d.dname,d1.counfromdeptd,(selectd.deptno,count(e.empno)counfromempe,deptdwheree.deptno(+)=d.deptnogroupbyd.deptno)d1whered.deptno(+)=d1.deptno;先看子查询:先看子查询:selectd.deptno,count(e.empno)counfromempe,deptdwheree.deptno(+)=d.deptnogroupbyd.deptno
    16、列出各种工作的最低工资。按工作分组selectjob,min(sal)fromempgroupbyjob17、列出各个部门的MANAGER(经理)的最低薪金。18、列出所有员工的年工资,按年薪从低到高排序。19、创建一个用户test,要求拥有scott用户表emp的查询与修改权限,dept的查询权限。20、查出某个员工的所有上级主管,并要求出这些主管中的薪水超过3000(用一条sql语句解决)selectename,job,salfromempwhereempnoin(selectmgrfromemp
     )ANDsal>=3000;21、求出部门名称中,带‘S’字符的部门员工的、工资合计、部门人数要求:部门工资合计要大于5000,并且按照部门的人数排序。22、给任职日期超过10年的人加薪10%、任职日期超过10年updateempsetsal=sal*1.1where(to_char(sysdate,'yyyy')-to_char(hiredate,'yyyy'))>26;23、列出员工任职的年、月、日24、列出员工中薪水最低,任职日期最长的员工。select*fromempe,(selectmin(sal)ms,min(hiredate)mhfromemp)e1wheree.sal=e1.msANDe.hiredate=e1.mh;
    25、求出职工的周薪,保留两位小数。
    附录:附录:--orcle的等连接SELECT*FROMEMPE,DEPTDWHEREE.DEPTNO=D.DEPTNO;--orcla的外连接SELECT*FROMEMPE,DEPTDWHEREE.DEPTNO(+)=D.DEPTNO;--+放在没有匹配行的表一侧,所以dept表的记录完全显示
    
    
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师