利用学生选课数据库进行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课程名=’数据库系统原理’ 此查询为嵌套查询。子查询在上一级查询处理之前找出,即嵌套查询是从里向外进行的,这样,外查询可以用内查询的结果,在此例中,首先在“课程”中找出“数据库系统原理”课程的课程号“课程号”;然后在“学生选课”中找出“课程号”等于第一步给出的“课程号”集合中元素的“学生号”;最后在“学生”中选出符合条件的“姓名”放入结果列表。 本文来源:https://www.wddqw.com/doc/d8f3b1fd04a1b0717fd5dd26.html