SQL测试题(注:最佳答案必须能在MySQL下运行)

来源:百度知道 编辑:UC知道 时间:2024/06/18 17:58:01
本人所使用的数据库是MySQL 6.0,所以需要最佳答案能在MySQL下正确运行!

题目如下:

题目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嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名

2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位

3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位

4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位

5. 查询选修了课程的学员人数

6. 查询选修课程超过5门的学员学号和所属单位

题目2

问题描述:

已知关系模式:

S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名

C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师

SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩

1. 找出没有选修过“李明”老师讲授课程的所有学生姓名

2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名

4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号

5. 列出

/*
闲着没事,瞅瞅百度上的问题,今天天晚了,先解决一个,另一个明儿个再说了!
第二道题也算已经搞定了!
环境 : mysql Ver 14.12 Distrib 5.0.45, for Win32 (ia32)
参考 :
exist与in 的区别
http://blog.csdn.net/change888/archive/2008/03/31/2232778.aspx
*/
/*********************************问题 1 **************************************/

drop table if exists s;
create table if not exists s (s varchar(32), sn varchar(32), sd varchar(32),
sa int);
insert into s values ('s1', '朱', '开发本部', 23);
insert into s values ('s2', '牛', '人事部', 25);
insert into s values ('s3', '杨', '财务部', 26);
insert into s values ('s4', '马', '开发本部', 22);
insert into s values ('s5', '吕', '人事部', 27);
insert into s values ('s6', '于', '开发本部&