1.学生表
Student(Sno,Sname,Sage,Ssex) --Sno 学号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别
主键Sno
2.教师表
Teacher(Tno,Tname) --Tno 教师编号,Tname 教师姓名
主键Tno
3.课程表
Course(Cno,Cname,Tno) --Cno --课程编号,Cname 课程名称,Tno 教师编号
主键Cno 外键Tno参照教师表
4.成绩表
SC(Sno,Cno,score) --Sno 学生编号,Cno 课程编号,score 分数
主键(Sno,Cno) 外键Sno,Cno分别参照学生表和课程表
-- 2、查询没有学全所有课程的同学的信息(要显示没有选课的同学信息)
SELECT *
FROM student
WHERE EXISTS (SELECT * FROM course WHERE
NOT EXISTS (SELECT * FROM sc WHEREcourse.Cno = sc.Cno AND sc.Sno = student.Sno));
其中SELECT * FROM sc WHERE course.Cno = sc.Cno AND sc.Sno = student.Sno将学生选的课查出来,再通过SELECT * FROM course WHERE NOT EXISTS () 来在课程表里面查询学生没有选的课,如果存在学生没有选的课 则最外面的SELECT * FROM student WHERE EXISTS () 返回true,最后就将没有选所有课的学生打印出来。