Home >Database >Mysql Tutorial >数据库基本表创建 完整性约束 foreign Key
理解以下几张表的内容,根据实际情况设计属性名、数据类型、及各种完整性约束(primary key、foreign key、not null、unique、check),用数据定义语言实现,然后设计实验数据验证约束的效果,当操作违反了完整性约束条件时,数据库管理系统是如何处理的。 1
理解以下几张表的内容,根据实际情况设计属性名、数据类型、及各种完整性约束(primary key、foreign key、not null、unique、check),用数据定义语言实现,然后设计实验数据验证约束的效果,当操作违反了完整性约束条件时,数据库管理系统是如何处理的。
1、创建数据库S_T。
create database S_T Use S_T
2、新建一张专业信息表,该表至少包含专业号,专业名称,专业负责人,专业简介等属性,根据以下专业信息为每个属性选择合适的数据类型。
专业号 |
专业名称 |
专业负责人 |
专业简介 |
JK |
计算机科学与技术 |
女 |
Null |
要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),唯一约束(unique)。
CREATE TABLE Major( Dno varchar(10) primary key, Dname varchar(20) NOT NULL unique, Dman varchar(20), DDisc text );
学号 |
姓名 |
性别 |
出生日期 |
专业 |
身份证号 |
联系方式 |
09011101 |
李彤 |
女 |
1989-6-5 |
JK |
33020319890605234X |
654234 |
要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),唯一约束(unique),为性别设置检查约束(check)使该属性只能取“男”或 “女”。
CREATE TABLE Student( Sno CHAR(8) primary key, Sname CHAR(20) NOT NULL, Ssex CHAR(20), Sbirth datetime, Smajor VARCHAR(10), Sidentity char(18) unique, Stel varchar(11), check (Ssex IN('男','女')), FOREIGN KEY(Smajor) REFERENCES Major(Dno) );
4、新建一张课程信息表,该表至少包含课程号,课程名称,学分,开课学期等属性,根据以下课程信息为每个属性选择合适的数据类型。
课程号 |
课程名称 |
学分 |
开课学期 |
10001 |
数据库原理 |
3 |
5 |
要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),为学分设置约束使该属性取值范围为1到10之间的整数。
CREATE TABLE Course( Cno CHAR(5) PRIMARY KEY, Cname VARCHAR(40) NOT NULL, /*不可设置为Unique*/ Ccredit SMALLINT, Cbegin SMALLINT, CONSTRAINT C1 CHECK (Ccredit between 1 and 10) );
5、新建一张选课信息表,该表至少包含学号,课程号,成绩,基点等属性,根据以下选课信息为每个属性选择合适的数据类型。
学号 |
课程号 |
成绩 |
基点 |
09011101 |
10001 |
89 |
3.0 |
要求:在建表的过程设置约束,根据实际情况选择属性设置主码(primary key),为成绩设置约束使该属性取值范围为0到100之间的整数。为基点设置约束使该属性取值为0或者大于等于1的值。
CREATE TABLE SC( Sno CHAR(8) primary key, Cno CHAR(5), Grade SMALLINT, GPA float, FOREIGN KEY (Sno) REFERENCES Student(Sno), FOREIGN KEY (Cno) REFERENCES Course(Cno), CONSTRAINT C2 CHECK (Grade between 0 and 100), CONSTRAINT C3 CHECK (GPA =0 OR GPA >=1) );
6、修改学生信息表,选择该表中合适的属性设置外码约束(foreign key),实现表间数据的参考完整性。
ALTER TABLE STUDENT ADD CONSTRAINT C4 FOREIGN KEY (Smajor) REFERENCES Major(Dno) ;
7、修改选课信息表,选择该表中合适的属性设置外码约束(foreign key),要求允许级联更新,但不允许级联删除。
ALTER TABLE SC ADD CONSTRAINT C5 FOREIGN KEY (Sno) REFERENCES Student(Sno) ON DELETE NO ACTION ON UPDATE CASCADE; ALTER TABLE SC ADD CONSTRAINT C6 FOREIGN KEY (Cno) REFERENCES Course(Cno) ON DELETE NO ACTION ON UPDATE CASCADE;