数据库面试题

上传人:豆浆 文档编号:2433587 上传时间:2017-07-24 格式:XLS 页数:265 大小:164KB
返回 下载 相关 举报
数据库面试题_第1页
第1页 / 共265页
数据库面试题_第2页
第2页 / 共265页
数据库面试题_第3页
第3页 / 共265页
数据库面试题_第4页
第4页 / 共265页
数据库面试题_第5页
第5页 / 共265页
点击查看更多>>
资源描述

《数据库面试题》由会员分享,可在线阅读,更多相关《数据库面试题(265页珍藏版)》请在金锄头文库上搜索。

1、为管理岗位业务培训信息,建立3个表:S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄C (C#,CN ) C#,CN 分别代表课程编号、课程名称SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩1. 使用标准SQL嵌套语句查询选修课程名称为税收基础的学员学号和姓名-实现代码:Select SN,SD FROM SWhere S# IN(Select S# FROM C,SCWhere C.C#=SC.C#AND CN=N税收基础) 2. 使用标准SQL嵌套语句查询选修课程编号为C2的学员姓名和所属单位-实现代

2、码:Select S.SN,S.SD FROM S,SCWhere S.S#=SC.S#AND SC.C#=C23. 使用标准SQL嵌套语句查询不选修课程编号为C5的学员姓名和所属单位-实现代码:Select SN,SD FROM SWhere S# NOT IN(Select S# FROM SCWhere C#=C5)4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位http:/ SN,SD FROM SWhere S# IN(Select S# FROM SCRIGHT JOINC ON SC.C#=C.C# GROUP BY S#HAVING COUNT(*)=COUNT

3、(S#)5. 查询选修了课程的学员人数-实现代码:Select 学员人数=COUNT(DISTINCT S#) FROM SC6. 查询选修课程超过5门的学员学号和所属单位-实现代码:Select SN,SD FROM SWhere S# IN(Select S# FROM SCGROUP BY S#HAVING COUNT(DISTINCT C#)5)题目2问题描述:已知关系模式:S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师SC(SNO,CN

4、O,SCGRADE) 选课关系。SCGRADE 为成绩1. 找出没有选修过“李明”老师讲授课程的所有学生姓名-实现代码:Select SNAME FROM SWhere NOT EXISTS(Select * FROM SC,CWhere SC.CNO=C.CNOAND CNAME=李明AND SC.SNO=S.SNO)2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩-实现代码:Select S.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)FROM S,SC,(Select SNOFROM SCWhere SCGRADE=2)A Where S.

5、SNO=A.SNO AND SC.SNO=A.SNOGROUP BY S.SNO,S.SNAME3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名-实现代码:Select S.SNO,S.SNAMEFROM S,(Select SC.SNOFROM SC,CWhere SC.CNO=C.CNOAND C.CNAME IN(1,2)GROUP BY SNOHAVING COUNT(DISTINCT CNO)=2)SC Where S.SNO=SC.SNO4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号-实现代码:Select S.SNO,S.SNAMEFROM S,

6、(Select SC1.SNOFROM SC SC1,C C1,SC SC2,C C2Where SC1.CNO=C1.CNO AND C1.NAME=1AND SC2.CNO=C2.CNO AND C2.NAME=2AND SC1.SCGRADESC2.SCGRADE)SC Where S.SNO=SC.SNO5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩-实现代码:Select S.SNO,S.SNAME,SC.1号课成绩,SC.2号课成绩FROM S,(Select SC1.SNO,1号课成绩=SC1.SCGRADE,2号课成绩=SC2.SCG

7、RADEFROM SC SC1,C C1,SC SC2,C C2Where SC1.CNO=C1.CNO AND C1.NAME=1AND SC2.CNO=C2.CNO AND C2.NAME=2AND SC1.SCGRADESC2.SCGRADE)SC Where S.SNO=SC.SNOC (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩一是关于怎样找出和去除重复数据二是关于找出某一列里最大或最小的前几个,或是大于或小于某一个值(

8、最大值或平均值)的数据。针对这种情况,再此做一个介绍。1:找出公司里收入最高的前三名员工:SQL select rownum, last_name, salary2 from (select last_name, salary3 from s_emp4 order by salary desc)5 where rownum select rownum, last_name, salary2 from s_emp3 where rownum号和其它的比较符号。SQL select * from s_emp2 where rownum=3;no rows selectedSQL select *

9、from s_emp2 where rownum between 3 and 5;no rows selected正确的方法如下:SQL l1 select last_name, salary2 from (select rownum a, b.*3 from s_emp b)4* where a=3SQL /LAST_NAME SALARY- -Nagayama 2660(2):找出第三行到第五行之间的数据:SQL l1 select last_name, salary2 from (select rownum a, b.*3 from s_emp b)4* where a between

10、3 and 5SQL /LAST_NAME SALARY- -Nagayama 2660Quick-To-See 2755Ropeburn 29453:找出那些工资高于他们所在部门的平均工资的员工。(1):第一种方法:SQL select last_name, dept_id, salary2 from s_emp a3 where salary(select avg(salary)4 from s_emp5 where dept_id=a.dept_id);LAST_NAME DEPT_ID SALARY- - -Velasquez 50 4750Urguhart 41 2280Menchu

11、 42 2375Biri 43 2090Catchpole 44 2470Havel 45 2483.3Nguyen 34 2897.5Maduro 41 2660Nozaki 42 2280Schwartz 45 209010 rows selected.(2):第二种方法:SQL l1 select a.last_name, a.salary, a.dept_id, b.avgsal2 from s_emp a, (select dept_id, avg(salary) avgsal3 from s_emp4 group by dept_id) b5 where a.dept_id=b.d

12、ept_id6* and a.salaryb.avgsalSQL /LAST_NAME SALARY DEPT_ID AVGSAL- - - -Velasquez 4750 50 3847.5Urguhart 2280 41 2181.5Menchu 2375 42 2055.16667Biri 2090 43 1710Catchpole 2470 44 1995Havel 2483.3 45 2069.1Nguyen 2897.5 34 2204Maduro 2660 41 2181.5Nozaki 2280 42 2055.16667Schwartz 2090 45 2069.110 rows selected.4:找出那些工资高于他们所在部门的manager的工资的员工。SQL l1 select id, last_name, salary, manager_id2 from

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号