数据库sql查询语句上机练习1习题结果单世民Word文档下载推荐.docx
- 文档编号:6517028
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:14
- 大小:123.21KB
数据库sql查询语句上机练习1习题结果单世民Word文档下载推荐.docx
《数据库sql查询语句上机练习1习题结果单世民Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库sql查询语句上机练习1习题结果单世民Word文档下载推荐.docx(14页珍藏版)》请在冰点文库上搜索。
CreatetableDEPT
(DEPTNOINTNOTNULL,DNAMEVARCHAR(14),LOCVARCHAR(13));
AltertableDEPT
addconstraintPK_DEPTPRIMARYKEY(DEPTNO);
createtableEMP(EMPNOINTNOTNULL,ENAMEVARCHAR(10),JOBVARCHAR(9),MGRINT,HIREDATEDATE,
altertableEMP
addconstraintPK_EMPPRIMARYKEY(EMPNO);
addconstraintFK_DEPTNOforeignkey(DEPTNO)referencesDEPT(DEPTNO);
DML
2.给出相应的INSERT语句来完成题中给出数据的插入。
insertintoDEPTvalues(10,'
ACCOUNTING'
'
NEWYORK'
);
insertintoDEPTvalues(20,'
PESEARCH'
DALLAS'
insertintoDEPTvalues(30,'
SALES'
CHICAGO'
insertintoDEPTvalues(40,'
OPERATIONS'
BOSTON'
insertintoEMPvalues(7369,'
SMITH'
CLERK'
7566,'
1980-12-17'
800,NULL,20);
insertintoEMPvalues(7499,'
ALLEN'
SALESMAN'
7698,'
1981-02-20'
1600,300,30);
insertintoEMPvalues(7521,'
WARD'
1981-02-21'
1250,500,30);
insertintoEMPvalues(7566,'
JONES'
MANAGER'
7839,'
1981-04-02'
2975,NULL,20);
insertintoEMPvalues(7654,'
MARTIN'
1981-09-28'
1250,1400,30);
insertintoEMPvalues(7698,'
BLAKE'
1981-05-01'
2850,NULL,30);
insertintoEMPvalues(7782,'
CLARK'
1981-06-09'
2450,NULL,10);
insertintoEMPvalues(7788,'
SCOTT'
ANALYST'
1987-06-13'
3000,NULL,20);
insertintoEMPvalues(7839,'
KING'
PRESIDENT'
NULL,'
1981-11-17'
5000,NULL,10);
insertintoEMPvalues(7844,'
TURN'
1981-09-08'
1500,0,30);
insertintoEMPvalues(7876,'
ADMAS'
7788,'
1100,NULL,20);
insertintoEMPvalues(7900,'
JAMES'
1981-12-03'
950,NULL,30);
insertintoEMPvalues(7934,'
MILLER'
7782,'
1982-01-23'
1300,NULL,10);
3.将所有员工的工资上浮10%.然后查询员工姓名、薪水、补助。
(emp.sal为工资,m为补助)
updateEMPsetsal=sal+0.1*sal;
selectename,sal,commfromEMP;
结果:
单表查询
4.查看EMP表中部门号为10的员工的姓名,职位,参加工作时间,工资。
selectename,job,hiredate,salfromEMPwhereDEPTNO='
10'
;
5.查所有已有的职位,要求去除重复项。
selectdistinctjobfromEMP
6.计算每个员工的年薪,并取列名为SalaryofYear(emp.sal为员工的月薪),要求输出员工姓名,年薪。
selectename,sal*12as'
SalaryofYear'
fromEMP;
7.查询每个员工每个月拿到的总金额(emp.sal为工资,m为补助)。
(提示:
isnull(ex1,ex2)表示如果ex1为空则返回ex2)
selectename,sal+isnull(COMM,0)totalfromEMP
8.显示职位是主管(manager)的员工的姓名,工资。
selectename,salfromEMPwhereJOB='
manager'
9.显示第3个字符为大写O的所有员工的姓名及工资。
selectename,salfromEMPwhereenamelike'
__O%'
10.显示职位为销售员(SALESMAN)或主管(MANAGER)的员工的姓名,工资,职位。
selectename,SAL,jobfromEMPwhereJOB='
orJOB='
11.显示所有没有补助的员工的姓名。
selectenamefromEMPwhereCOMMisnull;
12.显示有补助的员工的姓名,工资,补助。
selectename,SAL,COMMfromEMPwhereCOMMisnotnull;
13.排序显示所有员工的姓名,工资(按工资降序方式)。
selectENAME,SALfromEMPorderbySALdesc;
14.显示员工的最高工资和最低工资。
selectMAX(sal)as'
最高工资'
MIN(sal)as'
最低工资'
15.显示所有员工的平均工资和总计工资。
selectavg(sal)as'
平均工资'
SUM(sal)as'
总计工资'
fromEMP;
16.显示补助在员工中的发放比例、即有多少比例的员工有补助。
(此题需注意两个问题:
1.select语句中进行除法如何保留小数点后数据。
2.count函数如何处理null型数据。
)
selectcast(CAST(COUNT(COMM)asfloat)/cast(COUNT(*)asfloat)asnumeric(13,12))fromEMP;
聚合查询
17.显示每种职业的平均工资。
selectjob,avg(SAL)as'
average'
fromEMPgroupbyJOB;
18.显示每个部门每种岗位的平均工资和最高工资。
selectdeptno,job,AVG(sal)as'
MAX(sal)as'
max'
fromEMPgroupbyDEPTNO,JOB;
19.显示平均工资低于2500的部门号,平均工资及最高工资。
selectdeptno,AVG(sal)as'
fromEMPgroupbydeptnohavingAVG(SAL)<
2500;
20.上一条语句以平均工资升序排序。
2500orderbyAVG(SAL)asc;
多表查询
21.显示工资高于2500或岗位为MANAGER的所有员工的姓名,工资,职位,和部门号。
selectename,SAL,job,DEPTNOfromEMPwhereSAL>
2500orJOB='
22.排序显示所有员工的姓名,部门号,工资(以部门号升序,工资降序,雇用日期升序显示)。
selectename,deptno,SALfromEMPorderbyDEPTNOasc,SALdesc,HIREDATEasc;
23.采用自然连接原理显示部门名以及相应的员工姓名。
(Sqlserver不支持NATURALJOIN语法。
selectdname,enamefromEMP,DEPTwhereEMP.DEPTNO=DEPT.DEPTNO;
或
selectdname,enamefromEMPjoinDEPTonEMP.DEPTNO=DEPT.DEPTNO;
24.查询SCOTT的上级领导的姓名。
selectb.enamefromEMPajoinEMPbona.DEPTNO=b.DEPTNOwherea.ENAME='
andb.JOB='
25.显示部门的部门名称,员工名即使部门没有员工也显示部门名称。
selectdname,enamefromEMPrightjoinDEPTonEMP.DEPTNO=DEPT.DEPTNO;
子查询
26.显示所有员工的名称、工资以及工资级别。
selectename,SAL,gradefromEMPjoinSALGRADEonEMP.SALbetweenSALGRADE.LOSALandSALGRADE.HISAL;
27.显示ACCOUNTING部门所有员工的名称,工资。
selectename,SALfromEMPwhereEMP.DEPTNO=(selectdeptnofromDEPTwhereDNAME='
28.显示职位属于10号部门所提供职位范围的员工的姓名,职位,工资,部门号。
selectename,job,SAL,DEPTNOfromEMPwhereJOBin(selectJOBfromEMPwhereDEPTNO='
29.显示在所有员工中高于30号部门中任一个员工工资的员工的姓名,工资和部门号。
selectename,SAL,deptnofromEMPwhereSAL>
(selectMAX(SAL)fromEMPwhereDEPTNO='
30'
集合查询
30.显示工资高于2500或职位为MANAGER的员工的姓名,工资和职位(采用UNION语法实现)。
selectename,SAL,jobfromEMPwhereSAL>
2500unionselectename,SAL,jobfromEMPwhereJOB='
31.显示工资高于2500且职位为MANAGER的员工的姓名,工资和职位(采用INTERSECT语法实现)。
2500intersectselectename,SAL,jobfromEMPwhereJOB='
32.显示工资高于2500但职位不是MANAGER的员工的姓名,工资和职位(采用EXCEPT语法实现)。
2500exceptselectename,SAL,jobfromEMPwhereJOB='
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 sql 查询 语句 上机 练习 习题 结果 单世民