Home > Database > Mysql Tutorial > 数据库基本表创建 完整性约束 foreign Key

数据库基本表创建 完整性约束 foreign Key

WBOY
Release: 2016-06-07 15:36:20
Original
2336 people have browsed it

理解以下几张表的内容,根据实际情况设计属性名、数据类型、及各种完整性约束(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
Copy after login

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
);
Copy after login

3、新建一张学生信息表,该表至少包含学号,姓名,性别,出生日期,专业,身份证号,联系方式等属性,根据以下学生信息为每个属性选择合适的数据类型。

学号

姓名

性别

出生日期

专业

身份证号

联系方式

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)
);
Copy after login

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)	
);
Copy after login

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)
);
Copy after login

6、修改学生信息表,选择该表中合适的属性设置外码约束(foreign key),实现表间数据的参考完整性。

ALTER TABLE STUDENT 
	ADD CONSTRAINT C4 FOREIGN KEY (Smajor) REFERENCES Major(Dno) ;
Copy after login

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;
Copy after login





Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template