① 用sql语句完成course表和sc表的记录填充,如下表所示; course表 课号 课名 学分 0001 计算机应用基础 2 0002 C语言程序设计 2 sc表 学号 课号 成绩 PTU1 0001 95 PTU2 0002 88 ② 在course表上创建触发器del_trig,当course表上删除一门课程时,级联删除sc表该课程的记录。 ③ 删除course表的一条记录,查看sc表相应记录是否被自动删除。
时间: 2023-06-12 13:07:47 浏览: 169
① 使用SQL语句进行记录填充:
```sql
--创建course表
CREATE TABLE course(
cno CHAR(4) PRIMARY KEY, --课号
cname VARCHAR(20), --课名
credit INT --学分
);
--插入数据
INSERT INTO course VALUES ('0001', '计算机应用基础', 2);
INSERT INTO course VALUES ('0002', 'C语言程序设计', 2);
--创建sc表
CREATE TABLE sc(
sno CHAR(4) PRIMARY KEY, --学号
cno CHAR(4), --课号
score INT, --成绩
FOREIGN KEY(cno) REFERENCES course(cno) --外键约束
);
--插入数据
INSERT INTO sc VALUES ('PTU1', '0001', 95);
INSERT INTO sc VALUES ('PTU2', '0002', 88);
```
② 创建触发器:
```sql
--创建触发器
CREATE TRIGGER del_trig
AFTER DELETE ON course
FOR EACH ROW
BEGIN
DELETE FROM sc WHERE cno = old.cno;
END;
```
触发器的作用是在course表删除一条记录时,级联删除sc表中该记录对应的记录。
③ 删除course表的一条记录:
```sql
--删除course表中课号为0002的记录
DELETE FROM course WHERE cno = '0002';
```
删除后,sc表中对应的记录也被自动删除了。
阅读全文