1. Xs:学生基本情况表
学号
姓名
专业名
性别
出生时间
总学分
照片
备注
081101
王林
计算机
1
1990-02-10
50
NULL
NULL
081102
程明
计算机
1
1991-02-01
50
NULL
NULL
081103
王燕
计算机
0
1989-10-06
50
NULL
NULL
081104
韦严平
计算机
1
1990-08-26
50
NULL
NULL
081106
李方方
计算机
1
1990-11-20
50
NULL
NULL
081107
李明
计算机
1
1990-05-01
54
NULL
提前修完《数据结构》,并获学分
081108
林一帆
计算机
1
1989-08-05
52
NULL
已提前修完一门课
081109
张强民
计算机
1
1989-08-11
50
NULL
NULL
081110
张蔚
计算机
0
1991-07-22
50
NULL
三好生
081111
赵琳
计算机
0
1990-03-18
50
NULL
NULL
081113
严红
计算机
0
1989-08-11
48
NULL
有一门功课不及格,待补考
081201
王敏
通信工程
1
1989-06-10
42
NULL
NULL
081202
王林
通信工程
1
1989-01-29
40
NULL
有一门课不及格,待补考
2. KC: 课程表
课程号
课程名
开课学期
学时
学分
101
计算机基础
1
80
5
102
程序设计与语言
2
68
4
206
离散数学
4
68
4
208
数据结构
5
68
4
209
操作系统
6
68
4
210
计算机原理
5
85
5
212
数据库原理
7
68
4
301
计算机网络
7
51
3
302
软件工程
7
51
3
3. XS_KC: 成绩表
学号
课程号
成绩
学分
081101
101
80
5
081101
102
78
4
081101
206
76
4
081102
102
78
4
081102
206
78
4
081103
101
62
5
081103
102
70
4
081103
206
81
4
对xscj数据库完成以下查询:
1. 查找选修了离散数学的学生学号
2. 查找未选修离散数学的学生的姓名、学号和专业名
3. 查找xs表中比所有计算机系的学生年龄都大的学生的学号,姓名,专业名和出生日期
4. 查找xs_kc表中课程号206的成绩不低于课程号101的最低成绩的学生的学号
5. 查找选修206号课程的学生姓名
6. 查找选修了离散数学最高分,最低分的学生姓名,成绩
7. 查找自己选修的课程,课程不同,成绩相同的情况。显示学号,课程号,成绩
8。将xs中各专业名输出
9。求被选修的各门课程的平均成绩和选修该课程的人数,显示课程号,平均成绩,选课人数
10。在xscj数据库上产生一个结果集,包括每个专业的男生人数,女生人数,总人数,以及学生总人数
11。查找平均成绩在85分以上的学生的学号和平均成绩
12。查找平均成绩在85分以上的学生的学号、姓名和平均成绩
13。查找选修课程超过2门且成绩都在80分以上的学生的学号
14。将通信工程专业的学生按出生日期先后排序
15。将计算机专业学生的“计算机基础”课程成绩按降序排列
16。将计算机专业学生按其平均成绩排列
17。查找xs表中学号最靠前的5位学生的信息
18。查找xs表中从第4位同学开始的5位学生的信息
1. Xs:学生基本情况表学号
姓名专业名
性别出生时间
总学分照片
备注081101
王林计算机
11990-02-10
50NULL
NULL081102
程明计算机
11991-02-01
50NULL
NULL081103
王燕计算机
01989-10-06
50NULL
NULL081104
韦严平计算机
11990-08-26
50NULL
NULL081106
李方方计算机
11990-11-20
50NULL
NULL081107
李明计算机
11990-05-01
54NULL
提前修完《数据结构》,并获学分081108
林一帆计算机
11989-08-05
52NULL
已提前修完一门课081109
张强民计算机
11989-08-11
50NULL
NULL081110
张蔚计算机
01991-07-22
50NULL
三好生081111
赵琳计算机
01990-03-18
50NULL
NULL081113
严红计算机
01989-08-11
48NULL
有一门功课不及格,待补考081201
王敏通信工程
11989-06-10
42NULL
NULL081202
王林通信工程
11989-01-29
40NULL
有一门课不及格,待补考2. KC: 课程表
课程号课程名
开课学期学时
学分101
计算机基础1
805
102程序设计与语言
268
4206
离散数学4
684
208数据结构
568
4209
操作系统6
684
210计算机原理
585
5212
数据库原理7
684
301计算机网络
751
3302
软件工程7
513
3. XS_KC: 成绩表学号
课程号成绩
学分081101
10180
5081101
10278
4081101
20676
4081102
10278
4081102
20678
4081103
10162
5081103
10270
4081103
20681
4对xscj数据库完成以下查询:
1. 查找选修了离散数学的学生学号SELECT `学号` FROM `xs_kc`
WHERE `课程号`=(SELECT `课程号` FROM `kc` WHERE `课程名`='离散数学')
2. 查找未选修离散数学的学生的姓名、学号和专业名SELECT 学号,姓名,专业名
FROM `xs`WHERE NOT EXISTS( SELECT * FROM xs_kc WHERE `xs_kc`.学号=`xs`.学号
AND 课程号=(SELECT 课程号 FROM `kc` WHERE `课程名`='离散数学' ))3. 查找xs表中比所有计算机系的学生年龄都大的学生的学号,姓名,专业名和出生日期
SELECT * FROM xs WHERE `出生时间` < ALL(SELECT `出生时间` FROM xs WHERE 专业名='计算机')
4. 查找xs_kc表中课程号206的成绩不低于课程号101的最低成绩的学生的学号SELECT `学号`,成绩 FROM xs_kc WHERE `课程号`='206' AND `成绩` >=
(SELECT MIN(`成绩`) FROM xs_kc WHERE `课程号`='101')5. 查找选修206号课程的学生姓名
SELECT * FROM xs WHERE 学号 IN (SELECT 学号 FROM xs_kc WHERE 课程号='206')6. 查找选修了离散数学最高分,最低分的学生姓名,成绩
SELECT `xs`.`学号`,`姓名`,`成绩`FROM xs_kc JOIN `xs`
ON `xs_kc`.`学号`=`xs`.`学号`WHERE 成绩 IN ((SELECT MAX(`成绩`) FROM xs_kc
WHERE 课程号=(SELECT `课程号` FROM `kc` WHERE `课程名`='离散数学')),(SELECT MIN(`成绩`) FROM xs_kc
WHERE 课程号=(SELECT `课程号` FROM `kc` WHERE `课程名`='离散数学')) )7. 查找自己选修的课程,课程不同,成绩相同的情况。显示学号,课程号,成绩
SELECT a.学号,a.课程号,a.成绩FROM XS_KC AS a
WHERE EXISTS( SELECT * FROM XS_KC AS bWHERE a.成绩=b.成绩 AND a.学号=b.学号 AND a.课程号!=b.课程号);
8。将xs中各专业名输出SELECT `专业名` FROM xs GROUP BY `专业名`
或者SELECT distinct `专业名` FROM xs
求xs中各专业的学生数SELECT `专业名`,count(*) 学生数 FROM xs GROUP BY `专业名`
9。求被选修的各门课程的平均成绩和选修该课程的人数,显示课程号,平均成绩,选课人数SELECT `课程号`,AVG(`成绩`) 平均成绩,COUNT(*) 选课人数
FROM xs_kc GROUP BY `课程号`10。在xscj数据库上产生一个结果集,包括每个专业的男生人数,女生人数,总人数,以及学生总人数
SELECT 专业名,性别,COUNT(*) 人数FROM xs
GROUP BY 专业名,性别WITH ROLLUP
11。查找平均成绩在85分以上的学生的学号和平均成绩SELECT `学号`,AVG(`成绩`)
FROM xs_kcGROUP BY `学号`
HAVING AVG(`成绩`)>=8512。查找平均成绩在85分以上的学生的学号、姓名和平均成绩
SELECT `xs_kc`.`学号`,AVG(`成绩`) ,姓名FROM xs_kc JOIN xs ON xs_kc.学号=xs.学号
GROUP BY `学号`HAVING AVG(`成绩`)>=85
13。查找选修课程超过2门且成绩都在80分以上的学生的学号SELECT `学号`
FROM xs_kcWHERE `成绩`>=80
GROUP BY `学号`HAVING (COUNT(*)>2)
14。将通信工程专业的学生按出生日期先后排序SELECT *
FROM xsWHERE `专业名`='通信工程'
ORDER BY `出生时间`15。将计算机专业学生的“计算机基础”课程成绩按降序排列
SELECT xs.*,`xs_kc`.`成绩`FROM `xs` JOIN `xs_kc` ON `xs`.`学号`=`xs_kc`.`学号`
JOIN `kc` ON `kc`.`课程号`=`xs_kc`.`课程号`WHERE `专业名`='计算机' AND `课程名`='计算机基础'
ORDER BY `成绩` DESC16。将计算机专业学生按其平均成绩排列
SELECT `xs_kc`.`学号`,AVG(`成绩`)FROM `xs` JOIN `xs_kc` ON `xs`.`学号`=`xs_kc`.`学号`
WHERE `专业名`='计算机'GROUP BY `xs_kc`.`学号`
ORDER BY 2 DESC17。查找xs表中学号最靠前的5位学生的信息
SELECT *FROM xs
ORDER BY `学号`LIMIT 5
18。查找xs表中从第4位同学开始的5位学生的信息SELECT *
FROM xsLIMIT 3,5
举一反三
- XSCJ数据库中数据库表的数据如下。 XS-学生基本情况表 学号 姓名 专业名 性别 出生时间 总学分 照片 备注 81101 王林 计算机 1 1990/2/10 50 Null Null 81102 程明 计算机 1 1991/2/1 50 Null Null 81103 王燕 计算机 0 1989/10/6 50 Null Null 81104 韦严平 计算机 1 1990/8/26 50 Null Null 81106 李方方 计算机 1 1990/11/20 50 Null Null 81107 李明 计算机 1 1990/5/1 54 Null 提前修完《数据结构》,并获学分 81108 林一帆 计算机 1 1989/8/5 52 Null 已提前修完一门课 81109 张强民 计算机 1 1989/8/11 50 Null Null 81110 张蔚 计算机 0 1991/7/22 50 Null 三好生 81111 赵琳 计算机 0 1990/3/18 50 Null Null 81113 严红 计算机 0 1989/8/11 48 Null 有一门功课不及格,待补考 81201 王敏 通信工程 1 1989/6/10 42 Null Null 81202 王林 通信工程 1 1989/1/29 40 Null 有一门课不及格,待补考 KC-课程表 课程号 课程名 开课学期 学时 学分 101 计算机基础 1 80 5 102 程序设计与语言 2 68 4 206 离散数学 4 68 4 208 数据结构 5 68 4 209 操作系统 6 68 4 210 计算机原理 5 85 5 212 数据库原理 7 68 4 301 计算机网络 7 51 3 302 软件工程 7 51 3 XS_KC-成绩表 学号 课程号 成绩 学分 81101 101 80 5 81101 102 78 4 81101 206 76 4 81102 102 78 4 81102 206 78 4 81103 101 62 5 查找XSCJ数据库中所有学生选过的课程名和课程号。查询正确的是
- Xscj数据库中数据库表的数据如下。 1. Xs:学生基本情况表 学号 姓名 专业名 性别 出生时间 总学分 照片 备注 081101 王林 计算机 1 1990-02-10 50 NULL NULL 081102 程明 计算机 1 1991-02-01 50 NULL NULL 081103 王燕 计算机 0 1989-10-06 50 NULL NULL 081104 韦严平 计算机 1 1990-08-26 50 NULL NULL 081106 李方方 计算机 1 1990-11-20 50 NULL NULL 081107 李明 计算机 1 1990-05-01 54 NULL 提前修完《数据结构》,并获学分 081108 林一帆 计算机 1 1989-08-05 52 NULL 已提前修完一门课 081109 张强民 计算机 1 1989-08-11 50 NULL NULL 081110 张蔚 计算机 0 1991-07-22 50 NULL 三好生 081111 赵琳 计算机 0 1990-03-18 50 NULL NULL 081113 严红 计算机 0 1989-08-11 48 NULL 有一门功课不及格,待补考 081201 王敏 通信工程 1 1989-06-10 42 NULL NULL 081202 王林 通信工程 1 1989-01-29 40 NULL 有一门课不及格,待补考 2. KC: 课程表 课程号 课程名 开课学期 学时 学分 101 计算机基础 1 80 5 102 程序设计与语言 2 68 4 206 离散数学 4 68 4 208 数据结构 5 68 4 209 操作系统 6 68 4 210 计算机原理 5 85 5 212 数据库原理 7 68 4 301 计算机网络 7 51 3 302 软件工程 7 51 3 3. XS_KC: 成绩表 学号 课程号 成绩 学分 081101 101 80 5 081101 102 78 4 081101 206 76 4 081102 102 78 4 081102 206 78 4 081103 101 62 5 081103 102 70 4 081103 206 81 4 对xscj数据库完成以下查询: 以下是单表查询 1. 查询xs表中各个同学的姓名,专业名和总学分 2. 查询xs表中计算机系同学的学号、姓名和总学分,结果中各列的标题分别指定为number、name、mark 3. 查询xs表中计算机系各同学的学号、姓名、和总学分,对其总学分按以下规则进行替换:若总学分为空值,替换为“尚未选课”;若总学分小于50,替换为“不及格”;若总学分在50-52之间,替换为“合格”;若总学分大于52,替换为“优秀”。列标题更改为“等级” 4. 按120分计算成绩,显示xs_kc表中学号为081101的学生课程信息 5. 对xs表只选择专业名和总学分,消除结果集中的重复行。 6. 求学生的总人数 7. 统计备注不为空的学生数目 8. 统计总学分在50分以上的人数 9. 求选修101课程的学生的最高分和最低分 10.求学号081101的学生所学课程的总成绩 11.求选修101课程的学生的平均成绩 12.查询xs表中学号为081101的学生的情况 13.查询xs表中总学分大于50的学生的情况 14.查询xs表中备注为空的同学的情况 15.查询xs表中专业为计算机,性别为女(0)的同学的情况 16.查询xs_kc表中102和206课程中大于80分的同学的记录 17.查询xs表中姓“王”的学生学号、姓名及性别 18.查询xs表中学号倒数第2个数字为0的学生学号、姓名及专业名 19.查询xs表中名字包含下划线的学生学号和姓名 20.查询xs表中不在1989年出生的学生情况 21.查询 xs表中专业名为“计算机”“通信工程”的学生的情况 22.查询xs表中总学分尚不定的学生情况 以下是多表查询 23.查找学生选过的课程名和课程号 24.查找选修了206课程且成绩在80分以上的学生姓名及成绩 25.查找选修了“计算机基础”课程且成绩在80分以上的学生学号、姓名、课程名及成绩 26.查找所有学生情况及他们选修的课程号,若学生未选修任何课,也要包括其情况,显示学生表所有列,课程号 27. 查找被选修了的课程的选修情况和所有开设的课程名,包括未有学生选修的课程课程名。显示课程表所有列,课程名 28.查找选修了课程号为206课程的学生的姓名、学号
- 【其它】1、查询不及格学生的学号,姓名,课程号和成绩。 2、查询不及格学生的学号,课程名,授课教师,开课学期和成绩。 3、查询选修了“网络安全技术”课程的学生学号,姓名,课程名和成绩。 4、查询“信息安全”专业不及格学生的学号,姓名、专业名,课程号和成绩。 5、查询成绩大于80分的学号,姓名,专业名,课程号和成绩。 6、查询第一学期不及格的学生学号,课程名,开课学期,授课教师和成绩
- 其中的关系包括如下: 学生(学号,姓名,性别,年龄,所在系) 课程(课程号,课程名,先行课) 选课(学号,课程号,成绩) 如果查询选修了“DB"课程的学生的成绩和学号,且仅显示成绩不为空的,请补充完成命令 select 学号,成绩 from (1) where 选课.课程号=(2)and (3)='DB' and 成绩 (4) null
- 设有学生选课表:SC(学号,课程号,成绩),要求在该表中查询缺少学习成绩的学生学号和课程号,实现此查询要求的SELECT语句是______。 A: SELECT 学号,课程号 FROM SC WHERE 成绩 IS NULL B: SELECT 学号,课程号 FROM SC WHERE 成绩 IS NOT NULL C: SELECT 学号,课程号 FROM SC WHERE 成绩=NOT NULL D: SELECT 学号,课程号 FROM SC WHERE 成绩=NULL
内容
- 0
【其它】5.5 多表查询(上机实训) 【1】查询所有选修课程的学生学号、姓名、课程号和成绩。 【2】查询所有选修课程的学生学号、课程名称和成绩。 【3】查询所有女生学号、姓名、系编号和所在系名称。 【4】查询所有选修课程并且成绩大于90分的学生学号、姓名、课程号和成绩。 【5】查询所有选修课程的学生学号、姓名、课程名称和成绩。 【6】查询所有选修课程并且成绩大于90分的学生学号、姓名、课程名称和成绩
- 1
设学生表和成绩表的结构分别为(学号,姓名,所在系)和(学号,课程名,成绩),如果希望按分数降序查询出“英语系中选修了计算机课程的学生姓名和成绩”,则对应的SQL语句是()。 A: SELECT姓名,成绩FROM学生表,成绩表WHERE所在系=‘英语系’AND课程名=‘计算机’AND学生表.学号=课程表.学号 B: SELECT姓名,成绩FROM学生表,成绩表WHERE所在系=‘英语系’AND课程名=‘计算机’AND学生表.学号=课程表.学号ORDERBY成绩ASC C: SELECT姓名,成绩FROM学生表,成绩表WHERE所在系=‘英语系’AND课程名=‘计算机’AND学生表.学号=课程表.学号ORDERBY成绩 D: SELECT姓名,成绩FROM学生表,成绩表WHERE所在系=‘英语系’AND课程名=‘计算机’AND学生表.学号=课程表.学号ORDERBY成绩DESC
- 2
如表10.6、表10.7和表10.8所示,用SQL语言实现下列操作。 [img=347x494]1802ffe73cba0a1.png[/img]查询缺成绩的学生名及课程号。正确的SQL语句是_____ 。 A: SELECT 姓名,课程号 FROM 学生,选课WHERE 学生.学号=选课.学号 AND 成绩 IS NULL B: SELECT 姓名,课程号 FROM 学生,选课WHERE 学生.学号=选课.学号 AND 成绩=‘ ’ C: SELECT 姓名,课程号 FROM 学生,选课WHERE 成绩 IS NULL D: SELECT 姓名,课程号 FROM 学生,选课 WHERE 成绩=‘ ’
- 3
现有如下关系:学生(学号,姓名,性别,专业,出生年月)教师(教师编号,姓名,所在部门,职称)授课(教师编号,学号,课程编号,课程名称,教材,学分,成绩)(15分) (1)查找学习“数据库原理”课程且成绩不及格的学生学号和任课教师编号。(3分)(2)删除学生表中学号为“9903016”的记录。(3分) (3)查找教师“李洪”所教的学生成绩为90分以上(包括90)的学生学号。(3分) (4)将编号为“60016”的教师所在的部门改为“计算机系”。(3分) (5)查找学习“英语”课程的“计算机应用”专业学生的学号、姓名和成绩。(3分)
- 4
以电子书3-11-3-13表学生管理数据库为例,进行下列操作:1、查询第一学期开设的课程号和课程名;2、查询年龄大于18的男同学的学号、姓名,所在系;3、查询计算机系的所有女学生的学号和姓名;4、查询“李勇”同学选修的课程号和成绩;5、查询“李勇”同学选修的课程号、课程名和成绩;6、查询“数据库原理'课程选修的学生姓名和成绩;7、查询选修了课程号为C001和C002的学生学号;8、查询刘晨不学的课程号;9、查询全部学生都选修的课程号、课程名;10、查询选修了全部课程的学生的学号和姓名。