From 773a387d5f8e072bf9600856b68478a93fa0a555 Mon Sep 17 00:00:00 2001 From: msksbr Date: Wed, 13 Nov 2024 01:21:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E9=AA=8C=E5=8D=81=E4=BA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.MD | 4 ++++ 实验一.md | 5 +---- 实验十二.sql | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 实验十二.sql diff --git a/README.MD b/README.MD index 51c5b9b..1947c43 100644 --- a/README.MD +++ b/README.MD @@ -30,6 +30,10 @@ - [实验十](实验十.sql) +- [实验十一](实验十一.sql) + +- [实验十二](实验十二.sql) + ### 课后作业📖 [课后作业](课后作业/) diff --git a/实验一.md b/实验一.md index de42033..fcdb783 100644 --- a/实验一.md +++ b/实验一.md @@ -116,9 +116,7 @@ 否 - - - + 最大尺寸 @@ -157,7 +155,6 @@ - ### 实现 其他**略**,只介绍如何增加文件 diff --git a/实验十二.sql b/实验十二.sql new file mode 100644 index 0000000..c0d06f1 --- /dev/null +++ b/实验十二.sql @@ -0,0 +1,39 @@ +-- 用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'); +