> 데이터 베이스 > MySQL 튜토리얼 > 数据库基本表创建 完整性约束 foreign Key

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

WBOY
풀어 주다: 2016-06-07 15:36:20
원래의
2338명이 탐색했습니다.

理解以下几张表的内容,根据实际情况设计属性名、数据类型、及各种完整性约束(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
);
로그인 후 복사

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)
);
로그인 후 복사

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;
로그인 후 복사





원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿