数据库sql查询语句上机练习1习题结果单世民.pdf_第1页
数据库sql查询语句上机练习1习题结果单世民.pdf_第2页
数据库sql查询语句上机练习1习题结果单世民.pdf_第3页
数据库sql查询语句上机练习1习题结果单世民.pdf_第4页
数据库sql查询语句上机练习1习题结果单世民.pdf_第5页
已阅读5页,还剩12页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题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); 其中表中包含如下数据: DEPT表: EMP表: SALGRADE表: BONUS表: 无数据 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进 行数据还原) DDL 1. 写出上述表的建表语句。此外,在DEPT上创 建名为”PK_DEPT”的主键约束,在EMP表上 创建名为” PK_EMP”的主键约束以及指向表 DEPT的外键约束” FK_DEPTNO”。 命令: Create table DEPT (DEPTNO INT NOT NULL, DNAME VARCHAR(14),LOC VARCHAR(13); Alter table DEPT add constraint PK_DEPT PRIMARY KEY (DEPTNO); create table EMP (EMPNO INT NOT NULL,ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT, HIREDATE DATE, SAL FLOAT, COMM FLOAT, DEPTNO INT); alter table EMP add constraint PK_EMP PRIMARY KEY (EMPNO); alter table EMP add constraint FK_DEPTNO foreign key(DEPTNO) references DEPT(DEPTNO); DML 2. 给出相应的INSERT语句来完成题中给出数据 的插入。 命令: insert into DEPT values(10,ACCOUNTING,NEW YORK); insert into DEPT values(20,PESEARCH,DALLAS); insert into DEPT values(30,SALES,CHICAGO); insert into DEPT values(40,OPERATIONS,BOSTON); insert into EMP values(7369,SMITH,CLERK,7566,1980-12- 17,800,NULL,20); insert into EMP values(7499,ALLEN,SALESMAN,7698,1981-02- 20,1600,300,30); insert into EMP values(7521,WARD,SALESMAN,7698,1981-02- 21,1250,500,30); insert into EMP values(7566,JONES,MANAGER,7839,1981-04- 02,2975,NULL,20); insert into EMP values(7654,MARTIN,SALESMAN,7698,1981-09- 28,1250,1400,30); insert into EMP values(7698,BLAKE,MANAGER,7839,1981-05- 01,2850,NULL,30); insert into EMP values(7782,CLARK,MANAGER,7839,1981-06- 09,2450,NULL,10); insert into EMP values(7788,SCOTT,ANALYST,7566,1987-06- 13,3000,NULL,20); insert into EMP values(7839,KING,PRESIDENT,NULL,1981-11- 17,5000,NULL,10); insert into EMP values(7844,TURN,SALESMAN,7698,1981-09- 08,1500,0,30); insert into EMP values(7876,ADMAS,CLERK,7788,1987-06- 13,1100,NULL,20); insert into EMP values(7900,JAMES,CLERK,7698,1981-12- 03,950,NULL,30); insert into EMP values(7934,MILLER,CLERK,7782,1982-01- 23,1300,NULL,10); 3. 将所有员工的工资上浮10%.然后查询员工姓 名、薪水、补助。(emp.sal为工资, m为补助) 命令:update EMP set sal=sal+0.1*sal; select ename,sal,comm from EMP; 结果: 单表查询 4. 查看EMP表中部门号为10的员工的姓名,职 位,参加工作时间,工资。 命令:select ename,job,hiredate,sal from EMP where DEPTNO=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 为工资, m为补助)。(提示: isnull(ex1,ex2)表示如果ex1为空则返回 ex2) 命令:select ename,sal+isnull(COMM,0) total from EMP 结果: 8. 显示职位是主管(manager)的员工的姓名, 工资。 命令:select ename,sal from EMP where JOB=manager; 结果: 9. 显示第3个字符为大写O的所有员工的姓名及 工资。 命令:select ename,sal from EMP where ename like _O%; 结果: 10. 显示职位为销售员(SALESMAN)或主管 (MANAGER)的员工的姓名,工资,职位。 命令:select ename,SAL,job from EMP where JOB=SALESMAN or JOB=MANAGER; 结果: 11. 显示所有没有补助的员工的姓名。 命令:select ename from EMP where COMM is null; 结果: 12. 显示有补助的员工的姓名,工资,补助。 命令:select ename,SAL,COMM from EMP where COMM is not null; 结果: 13. 排序显示所有员工的姓名,工资(按工资降 序方式)。 命令:select ENAME,SAL from EMP order by SAL desc; 结果: 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(*) as float) as numeric(13,12)from EMP; 结果: 聚合查询 17. 显示每种职业的平均工资。 命令:select job,avg(SAL) as average from EMP group by 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 average,MAX(sal) as max from EMP group by deptno having AVG(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 intersec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论