版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一次上机练习_习题_结果习题1请根据给出的数据库表结构来回答相应问题:DEPT (DEPTNO INT, DNAME VARCHAR(14),LOC VARCHAR(13);EMP (EMPNO INT,ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT, HIREDATE DATE, SAL FLOAT, COMM FLOAT, DEPTNO INT);BONUS (ENAME VARCHAR(10), JOB VARCHAR(9), SAL INT, COMM INT);SALGRADE ( GRADE INT, LOSAL INT, HISAL INT
2、);其中表中包含如下数据:DEPT表:EMP表:SALGRADE表:BONUS表: 无数据根据上面描述完成下面问题:(注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原)DDL1. 写出上述表的建表语句。此外,在DEPT上创建名为”PK_DEPT”的主键约束,在EMP表上创建名为” PK_EMP”的主键约束以及指向表DEPT的外键约束” FK_DEPTNO”。命令:create table DEPT(DEPTNO int ,DNAME nvarchar,LOC nvarchar,primary key(pk_dept);Create table EMP(EMPNO int ,ENAME
3、 nvarchar, JOB nvarchar, MGR int,HIREDATE datetime,SAL int ,COMM float, DEPTNO int,primary key (pk_emp),foregin key(fk_deptno)references dept);DML2. 给出相应的INSERT语句来完成题中给出数据的插入。命令:insert(“1”,”accounting”,”null”)3. 将所有员工的工资上浮10%.然后查询员工姓名、薪水、补助。(emp.sal为工资,m为补助)命令:select ename,sal*1.1,comm From emp 结果:单
4、表查询4. 查看EMP表中部门号为10的员工的姓名,职位,参加工作时间,工资。命令:select ename,job,hiredate,sal From emp Where emp.depyno=10 结果:5. 查所有已有的职位,要求去除重复项。命令: select distinct job From emp 结果:6. 计算每个员工的年薪,并取列名为Salary of Year(emp.sal为员工的月薪),要求输出员工姓名,年薪。命令:select ename, sal*12 as salary of year From emp结果:7. 查询每个员工每个月拿到的总金额(emp.sal为
5、工资,m为补助)。(提示:isnull(ex1,ex2)表示如果ex1为空则返回ex2)命令:select ename, isnull(sal+comm,sal) as total From emp结果:8. 显示职位是主管(manager)的员工的姓名,工资。命令:select ename,sal From emp Where emp.job=manager结果:9. 显示第3个字符为大写O的所有员工的姓名及工资。命令:select enmae ,sal From emp Where emp.ename like _O%结果:10. 显示职位为销售员(SALESMAN)或主管(MANAGER
6、)的员工的姓名,工资,职位。命令:selecte ename,sal,job From emp Where emp.job=salesman or manager结果:11. 显示所有没有补助的员工的姓名。命令:select ename From emp Where m is null结果:12. 显示有补助的员工的姓名,工资,补助。命令:select ename,sal,comm From emp Where m is not null结果: 13. 排序显示所有员工的姓名,工资(按工资降序方式)。命令:select ename,sal From emp Order by emp.sal d
7、esc结果:14. 显示员工的最高工资和最低工资。命令:select max(sal) as 最高工资,min(sal) as 最低工资 From emp结果:15. 显示所有员工的平均工资和总计工资。命令:select avg(sal) as 平均工资,sum(sal) as 总计工资 From emp结果:16. 显示补助在员工中的发放比例、即有多少比例的员工有补助。(此题需注意两个问题:1.select语句中进行除法如何保留小数点后数据。2.count函数如何处理null型数据。)命令:select cast(cast(count(comm)as float)/cast(count(*)
8、as float)as numeric(13,12) from emp结果:聚合查询17. 显示每种职业的平均工资。命令:select job,avg(sal) as average From emp Group by emp.job结果:18. 显示每个部门每种岗位的平均工资和最高工资。命令:select deptno,job,avg(sal) as average,max(sal) as max From emp Group by deptno,job结果:19. 显示平均工资低于2500的部门号,平均)工资及最高工资。命令:select deptno,avg(sal) as averag
9、e,max(sal) as max From emp Group by deptno having avg(sal)2500 结果:20. 上一条语句以平均工资升序排序。命令:select deptno,avg(sal) as average,max(sal) as max From emp Group by deptno having avg(sal)2500 or emp.job=manager结果: 22. 排序显示所有员工的姓名,部门号,工资(以部门号升序,工资降序,雇用日期升序显示)。命令:select ename,deptno,sal,hiredate From emp Order
10、 by deptno asc,sal desc,hiredate asc 结果:23. 采用自然连接原理显示部门名以及相应的员工姓名。(Sql server不支持NATURAL JOIN语法。)命令:select dname,ename From emp,dept where dept.deptno=emp.no order by dname / select dname,ename From emp join dept on emp.deptno=dept.deptno结果:24. 查询SCOTT的上级领导的姓名。命令:select ename From emp where empno=(s
11、elect mrg from emp where ename=scott)/select a.ename from emp a join emp b on a.empno=b.mrg and b.ename=scott/select b.ename from emp a join emp b on a.deptno=b.deptno where a.ename=scott and b.job=manager结果:25. 显示部门的部门名称,员工名即使部门没有员工也显示部门名称。命令:select dname,ename From emp right join dept on emp.deptn
12、o=dept.deptno 结果:子查询26. 显示所有员工的名称、工资以及工资级别。命令:select ename,sal,grade from emp join salgrade on sal between losal and hisalOrder by grade 结果:27. 显示ACCOUNTING部门所有员工的名称,工资。命令:select ename ,sal From emp join dept on emp.deptno=dept.dpetno where dept.dname=accounting结果:28. 显示职位属于10号部门所提供职位范围的员工的姓名,职位,工资,
13、部门号。命令:select ename,job,sal,deptno From emp Where job in(select job from emp where deptno=10)Order by job结果:29. 显示在所有员工用中高于30号部门中任一个员工工资的员工的姓名,工资和部门号。命令:select ename,sal,deptno From emp Where sal( select max(sal) from emp where deptno=30)结果:集合查询30. 显示工资高于2500或职位为MANAGER的员工的姓名,工资和职位(采用UNION语法实现)。命令:select ename,sal,job from emp where sal2500 union select ename,sal,job from emp where job=manager结果:31. 显示工资高于2500且职位为MANAGER的员工的姓名,工资和职位(采用INTERSECT语法实现)。命令:select ename,sal,job from emp where sal2500 intersect selec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工地建设三方责任制度
- 市场营销中心责任制度
- 干部脱贫责任制度
- 幼儿园后勤责任制度
- 幼儿园教学部责任制度
- 幼儿园预防侵害责任制度
- 废水管理责任制度
- 建筑企业安全责任制度
- 建设处安全生产责任制度
- 建筑施工安全技术交底范本模板
- 医院7S病房管理标准化实践与成效分析
- 2025安徽单招会计试题及答案
- 2024河南水利与环境职业学院教师招聘考试真题及答案
- 医院环境卫生监测课件
- 吞咽障碍康复护理专家共识
- 2026年中考数学压轴题专项练习-海盗埋宝模型(学生版+名师详解版)
- 江苏镇江2019-2024年中考满分作文46篇
- 2024年课程设计混凝土结构电大
- 2025年高级(三级)中式烹调师(中式烹调)《理论知识》真题卷(答案和解析附后)
- 人工智能训练师培训课件
- 铝电解工(铝电解操作工)职业资格(技师)考试题库-上(单选题)
评论
0/150
提交评论