40 lines
1.1 KiB
SQL
40 lines
1.1 KiB
SQL
-- 用SQL 语言定义学生表、课程表和选课表,要求完成以下完整性约束条件:
|
||
CREATE DATABASE new_学生管理;
|
||
|
||
USE new_学生管理;
|
||
|
||
-- (1)定义每个表的主码。
|
||
-- (2)定义参照完整性。
|
||
-- (3)定义课程的学分不超过4学分。
|
||
CREATE TABLE 学生表(
|
||
学号 VARCHAR(64),
|
||
性别 VARCHAR(3) CHECK(性别 IN('男','女')), -- 参照完整性
|
||
PRIMARY KEY(学号) -- 定义主码
|
||
);
|
||
|
||
CREATE TABLE 课程表(
|
||
课程号 VARCHAR(64),
|
||
学分 SMALLINT CHECK(学分 <=4), --设置学分不超过四分
|
||
PRIMARY KEY(课程号) -- 定义主码
|
||
);
|
||
|
||
CREATE TABLE 选课表(
|
||
选课编号 VARCHAR(64),
|
||
学号 VARCHAR(64)
|
||
PRIMARY KEY(选课编号), -- 定义主码
|
||
FOREIGN KEY (学号) REFERENCES 学生表(学号)
|
||
)
|
||
|
||
-- (4)显示说明当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,如何进行处理?
|
||
-- 实体完整性
|
||
INSERT INTO 学生表(学号)
|
||
VALUES
|
||
('1'),
|
||
('1');
|
||
|
||
-- 参照完整性
|
||
INSERT INTO 学生表(学号) VALUES('1');
|
||
INSERT INTO 选课表(选课编号,学号) VALUES
|
||
('1','2');
|
||
|