关系数据库练习题
关系数据库练习题
xiaoyu一、 创建表格 (DDL)
SQL
1 | -- 学生表 |
二、 插入数据 (DML)
SQL
1 | -- 学生表数据 |
三、 练习题 SQL 语句
| 题号 | 题目描述 | SQL 代码 |
|---|---|---|
| 第1题 | 查询计算机系或年龄大于20岁的学生 | SELECT * FROM student WHERE dept = '计算机' UNION SELECT * FROM student WHERE age > 20; |
| 第2题 | 查询计算机系中年龄不大于20岁的学生 | SELECT * FROM student WHERE dept = '计算机' AND sno NOT IN (SELECT sno FROM student WHERE age > 20 AND dept = '计算机'); |
| 第3题 | 查询既选修了C001又选修了C002的学生 | SELECT sno FROM sc WHERE cno = 'C001' AND sno IN (SELECT sno FROM sc WHERE cno = 'C002'); |
| 第4题 | 生成所有学生和课程的可能选课组合 | SELECT * FROM student CROSS JOIN course; |
| 第5题 | 查询计算机系年龄大于20岁的学生 | SELECT * FROM student WHERE dept = '计算机' AND age > 20; |
| 第6题 | 查询所有学生的姓名和所在院系 | SELECT sname, dept FROM student; |
| 第7题 | 查询成绩大于80分的学生姓名和课程名 | SELECT s.sname, c.cname FROM sc JOIN student s ON sc.sno = s.sno JOIN course c ON sc.cno = c.cno WHERE sc.score > 80; |
| 第8题 | 查询学生及其选课情况(含未选课者) | SELECT * FROM student LEFT JOIN sc ON student.sno = sc.sno; |
| 第9题 | 查询选修了所有课程的学生姓名 | SELECT sname FROM student WHERE NOT EXISTS ( SELECT cno FROM course WHERE cno NOT IN ( SELECT cno FROM sc WHERE sc.sno = student.sno ) ); |
| 第10题 | 查询年龄不等于20岁的学生 | SELECT * FROM student WHERE age != 20; |
| 第11-1 | 查询计算机系且年龄大于20岁的学生 | SELECT * FROM student WHERE dept = '计算机' AND age > 20; |
| 第11-2 | 查询计算机系或年龄大于20岁的学生 | SELECT * FROM student WHERE dept = '计算机' OR age > 20; |
| 第11-3 | 查询不是计算机系的学生 | SELECT * FROM student WHERE NOT (dept = '计算机'); |
| 第12题 | 综合查询:计算机系学生选修、成绩>80的课程名及教师名 | SELECT s.sname, c.cname, t.tname FROM student s JOIN sc ON s.sno = sc.sno JOIN course c ON sc.cno = c.cno JOIN tc ON c.cno = tc.cno JOIN teacher t ON tc.tno = t.tno WHERE s.dept = '计算机' AND sc.score > 80; |
[up主专用,视频内嵌代码贴在这]






