利用学生选课数据库进行SQL查询

时间:2022-07-21 07:54:22 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
利用学生选课数据库进行SQL查询。

学生{学号,姓名,性别,系别,年龄} 课程{课程号,课程名,学分} 学生选课{学号,课程号,成绩 } 查询条件及相应的SQL语句如下: (1)查询全体学生的姓名、学号。 SELECT学号, 姓名FROM 学生; (2)查询所有选修过课的学生的学号。 SELECT DISTINCT 学号FROM 学生选课;

(3)查询年龄在1922之间的学生姓名、系别和年龄。

SELECT 姓名, 系别, 年龄FROM 学生WHERE 年龄 BETWEEN 19 AND 23; 年龄 > 19 and 年龄 < 23

谓词BETWEENAND NOT BETWEEN AND„可以查找属性值在(或不在)指定范围内的元组。

(4)查询出成绩为808587的记录。

SELECT * FROM 学生选课 WHERE 成绩 IN80,85,87; 成绩=80 or成绩=85 or成绩=87

谓词IN可以用来查找属性值属于指定集合的元组。 (5)查询第二个字为“艳”的学生的姓名和系别。

SELECT 姓名,系别FROM 学生WHERE 姓名 LIKE _%;

谓词LIKE可以用来进行字符串的匹配。其中%代表任意长的的字符串,_代表任意单个字符。

(6)查询所有学生的姓名、选修的课程名及成绩。 SELECT 学生.姓名, 课程.课程名, 学生选课.成绩

From 学生 join学生选课 on 学生.学号 = 学生选课.学号 join 课程 on学生选课.课程号 = 课程.课程号




SELECT 学生.姓名, 课程.课程名, 学生选课.成绩 From 学生, 学生选课, 课程

Where 学生.学号 = 学生选课.学号 and 学生选课.课程号 = 课程.课程号

此查询为复合条件查询。

(7)查询选修了“数据库系统原理”课程的学生姓名。 SELECT 姓名FROM 学生

WHERE 学号 IN (SELECT 学号 FROM 学生选课 WHERE 课程号 IN (SELECT 课程号 FROM 学生选课 WHERE 课程名=’数据库系统原理’));

SELECT 姓名

Where 学生.学号 = 学生选课.学号 and 学生选课.课程号 = 课程.课程号 And课程名=’数据库系统原理’

此查询为嵌套查询。子查询在上一级查询处理之前找出,即嵌套查询是从里向外进行的,这样,外查询可以用内查询的结果,在此例中,首先在“课程”中找出“数据库系统原理”课程的课程号“课程号”;然后在“学生选课”中找出“课程号”等于第一步给出的“课程号”集合中元素的“学生号”;最后在“学生”中选出符合条件的“姓名”放入结果列表。




本文来源:https://www.wddqw.com/doc/d8f3b1fd04a1b0717fd5dd26.html