admin 管理员组文章数量: 887021
2024年1月18日发(作者:llvm语言)
利用学生选课数据库进行SQL查询。
学生{学号,姓名,性别,系别,年龄}
课程{课程号,课程名,学分}
学生选课{学号,课程号,成绩 }
查询条件及相应的SQL语句如下:
(1)查询全体学生的姓名、学号。
SELECT学号, 姓名FROM 学生;
(2)查询所有选修过课的学生的学号。
SELECT DISTINCT 学号FROM 学生选课;
(3)查询年龄在19到22之间的学生姓名、系别和年龄。
SELECT 姓名, 系别, 年龄FROM 学生WHERE 年龄 BETWEEN 19 AND 23;
年龄 > 19 and 年龄 < 23
谓词BETWEEN„AND„ 和NOT BETWEEN „ AND„可以查找属性值在(或不在)指定范围内的元组。
(4)查询出成绩为80、85、87的记录。
SELECT * FROM 学生选课 WHERE 成绩 IN(80,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课程名=’数据库系统原理’
此查询为嵌套查询。子查询在上一级查询处理之前找出,即嵌套查询是从里向外进行的,这样,外查询可以用内查询的结果,在此例中,首先在“课程”中找出“数据库系统原理”课程的课程号“课程号”;然后在“学生选课”中找出“课程号”等于第一步给出的“课程号”集合中元素的“学生号”;最后在“学生”中选出符合条件的“姓名”放入结果列表。
版权声明:本文标题:利用学生选课数据库进行SQL查询 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705525221h488541.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论