在st_2中建立Course_2表,并按照course表设置课程号、课程名、先行课及学分。其中先行课参照课程号,课程名取唯一值。并在st_2中建立SC_2表,并按照SC设置学号、课程号及成绩。成绩限制在0~100分之间;Sno参照student_2表sno,并进行删除级联设置和更新级联设置;cno参照Course_2表cno,并进行更新级联设置和拒绝删除设置。
时间: 2024-02-25 16:52:54 浏览: 162
MySQL-Short-Course.zip_4 3 2 1_MYSQL_course_html+mysql_php mysql
好的,我理解您的问题是在st_2数据库中建立Course_2表和SC_2表,并设置相应的约束条件。下面是建表和设置约束的SQL语句:
创建Course_2表:
```
CREATE TABLE Course_2 (
cno VARCHAR(10) NOT NULL,
cname VARCHAR(20) NOT NULL,
prerequisite VARCHAR(10),
credit INT,
PRIMARY KEY (cno),
UNIQUE (cname),
FOREIGN KEY (prerequisite) REFERENCES Course_2(cno)
);
```
其中,cno为课程号,cname为课程名,prerequisite为先行课,参照了Course_2表的cno列,credit为学分。PRIMARY KEY约束设置了cno列为主键,UNIQUE约束设置了cname列为唯一值,FOREIGN KEY约束设置了prerequisite列参照了Course_2表的cno列。
创建SC_2表:
```
CREATE TABLE SC_2 (
sno VARCHAR(10) NOT NULL,
cno VARCHAR(10) NOT NULL,
score INT CHECK (score >= 0 AND score <= 100),
PRIMARY KEY (sno, cno),
FOREIGN KEY (sno) REFERENCES student_2(sno) ON DELETE CASCADE,
FOREIGN KEY (cno) REFERENCES Course_2(cno) ON UPDATE CASCADE ON DELETE RESTRICT
);
```
其中,sno为学号,cno为课程号,score为成绩,CHECK约束限制了score列的取值范围为0~100。PRIMARY KEY约束设置了(sno, cno)列为主键,FOREIGN KEY约束设置了sno列参照了student_2表的sno列并设置了删除级联,cno列参照了Course_2表的cno列并设置了更新级联和拒绝删除。
阅读全文