请将下面创建课程表COURSE的SQL语句补充完整。要求定义实体完整性约束、参照完整性约束,以及其他完整性约束。
CREATE TABLE COURSE(
Cno CHAR(4) PRIMARY KEY
Cname CHAR(30)(a),
Cpno CHAR(4) REFERENCES(b),(c)
Ccredit INT);
阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某教务管理系统的部分数据库关系模式如下:
学生:STUDENT(Sno,Sname,Ssex,Sage,Sdept),各属性分别表示学号、姓名、性别、年龄、所在系名;
课程:COURSE(Cno,Cname,Cpno,Ccredit),各属性分别表示课程号、课程名、先修课的课程号、学分;
选课:SC(Sno,Cno,Grade),各属性分别表示学号、课程号、成绩。
有关关系模式的说明如下:
(1)下划线标出的属性是表的主键
(2)课程名取值唯一。
根据以上描述,回答下列问题,将SQL语句的空缺部分补充完整。
请将下面创建课程表COURSE的SQL语句补充完整。要求定义实体完整性约束、参照完整性约束,以及其他完整性约束。
CREATE TABLE COURSE(
Cno CHAR(4) PRIMARY KEY
Cname CHAR(30)(a),
Cpno CHAR(4) REFERENCES(b),(c)
Ccredit INT);
有一门课程号为“C036”的新开课要求所有学生选修。该课的基本信息已经录入课程表COURSE中,现需在选课表SC中插入该课的选课记录。实现此功能的SQL语句如下,请补全。
(d)INTO SC(Sno,(e))
SELECT Sno,(f)
FROM(g);
查询每一门课程的间接先修课(先修课的先修课),要求输出课程号和间接先修课的课程号。即使某门课程没有先修课,也需要输出,不过其间接先修课为空。此功能由下面的SQL语句实现,请补全。
SELECT K1.Cno,(h)
FROM COURSE K1(i)
OUTER JOIN
COURSE K2 (j)((k));
查询选修了课程表中已有全部课程的学生,要求输出学号和姓名。此功能由下面的SQL语句实现,请补全。
SELECT Sno,Sname FROM STUDENT
WHERE NOT EXISTS
(SELECT * FROM(l)
WHERE(m)
(SELECT * FROM(n)
WHERE(o)));