这次编写的内容是数据库SQL的操作实列 以后要是不会直接从这个武器库拿就是


实列

01.如下几个表所示学生、课程和选课关系,用SQL语言实现下列操作。

试列出计算机系所开课程(CS标志)的最高成绩、最低成绩和平均成绩。如果某门课程的成绩不全(即“成绩”中有NULL出现),则该课程不予统计,结果按“课程号”升序排列。正确的SQL语句是

在这里插入图片描述

1
2
3
4
SELECT 课程号,MAX(成绩),MIN(成绩),AVG(成绩) FROM 选课
WHERE 课程号 Like ‘CS%GROUP BY 课程号 HAVING 课程号 NOT IN
(SELECT 课程号 FROM 选课 WHERE 成绩 IS NULL)
ORDER BY 课程号

02.如下几个表所示学生、课程、必修课和选课关系,用SQL语言实现下列操作。

列出最少选修了三门课程的学生姓名。正确的SQL语句是

图片如上所示

1
2
SELECT 姓名 FROM 学生 WHERE 学号 IN 
(SELECT 学号 FROM 选课 GROUP BY 学号 HAVING COUNT(*) >= 3)

03.如下几个表所示学生、课程和选课关系,用SQL语言实现下列操作。

查询缺成绩的学生名及课程号。正确的SQL语句是

img

1
SELECT 姓名,课程号 FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 成绩 IS NULL

04.如下几个表所示学生、课程和选课关系,用SQL语言实现下列操作。

查询1996年出生的学生姓名及其秋季所修课程的课程号及成绩。正确的SQL语句是

1
SELECT 姓名,课程号,成绩 FROM 学生,选课,课程 WHERE 学生.学号=选课.学号 AND 选课.课程号=课程.课程号 AND Year(出生日期)=1996 AND 开课学期=’秋’

05.如下几个表所示学生、课程、必修课和选课关系,用SQL语言实现下列操作。

img

求既学过“1001”号课,又学过“2002”号课的所有学生的学号。正确的SQL语句是

1
2
SELECT DISTINCT 学号 FROM 选课 WHERE 课号=‘1001AND
学号 IN (SELECT DISTINCT 学号 FROM 选课 WHERE 课号=‘2002’ )

我的想法是:

1
SELECT 学号 FROM 选课 GROUP BY 学号 HAVING 课号 ==1001AND 课号 ==2002

06.如下几个表所示学生、课程、必修课和选课关系,用SQL语言实现下列操作。

列出各门课的平均成绩、最高成绩、最低成绩和选课人数。正确的SQL语句是

图片如上所示

1
2
SELECT 课号,AVG(成绩),MAX(成绩),MIN(成绩),COUNT(学号) 
FROM 选课 GROUP BY 课号