内容正文:
6.MySQL数据库完整性(一)
数据库原理与应用技术--MySQL
同步精品课堂
河北科学技术出版社
教学目标
一
了解实体完整性
掌握主键约束
了解数据库完整性概念
掌握唯一约束
01
02
03
04
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学重难点
二
教学难点
1、实体完整性
2、主键约束
教学重点
实体完整性的应用
教学难点
导入新课
三
讨论:
我们创建好数据表后,就可以向表中输入数据,但是在数据输入的过程中,我们如何确保数据的可靠性呢?如何防止数据库在存在不符合语义规定的数据呢?
任务一
1
实体完整性
新知讲授
四
⊙实体和实体完整性概念
字段表示与对象或类关联的变量。在数据库中,表的”列“称为”字段“,每个字段包含某一专题的信息。
字段
客观存在并可以相互区分的事务,如一个教师、一个学生或一个雇员等。一个实体在数据库中表现为表中的一条记录。
实体
关系是一张表,表中的每行就是一个元组,每列就是一个属性,在二维表中,元组也称为行。
元组
02
01
03
基本概念
新知讲授
四
⊙实体和实体完整性概念
实体完整性是指表中行的完整性。要求表中的所有行都有唯一的标识符,称为主关键字。主关键字是否可以修改,或整个列是否可以被删除,取决于主关键字与其他表之间要求的完整性。
➽ 实体完整性
➽ 实体完整性规则
实体完整性规则:基本关系表中的所有主关键字(或主键)对应的主属性都不能取空值(null value)。所谓空值就是”不知道“ “不存在” 或“无意义”的值。
例:学生选课的关系表(学号,课程号,成绩)中,学号和课程号共同组成主关键字,则学号和课程号两个属性不能为空。
新知讲授
四
➽ 实体完整性规则
01
实体完整性规则是针出基本关系而言的。一个基本关系表通常对应一个实体集。
例:学生关系对应学生集合。
02
03
现实世界中的实体是可以区分的,它们具有一种唯一性质的标识。
例如:学生的学号,教师的职工号等。
在关系模型中,主关键字作为唯一的标识,且不能为空。
新知讲授
四
⊙实体完整性的实现
约束是作用于表中字段上的规则,用于限制存储在表中的数据,目的是保证数据库中数据的正确性,有效性和完整性。我们可以通过主键约束和唯一约束来实现实体完整性。
➽ 约束的概念
➽ 主键约束(Primary Key)
主键约束是指在表中定义一个主键来唯一确定表中每一行数据的标识符。在每一个表中, 只能有一个列被设置为主键。通常用来标记表中数据的唯一存在,主键约束要求当前的列值是唯一存在的,不能重复且不能为空值。
新知讲授
四
⊙实体完整性的实现
★ 1、创建表时添加主键
基本语法形式如下:
CREATE TABLE 表名 (字段1 数据类型
......
PRIMARY KEY (约束列)) ;
➽实例:创建数据表STUDENT_1,共包含stuid , name ,ssex 三个字段,并将Stuid字段设置为主键;
CREATE TABLE STUDENT_1(stuid int, name varchar(20),ssex varchar(10),primary key (stuid))
新知讲授
四
⊙实体完整性的实现
★ 2、为已创建的表添加主键
基本语法形式如下:
ALTER TABLE 表名 ADD [CONSTRAINT <约束名>] PRIMARY KEY (约束列)
➽实例:在已创建的数据表teacher表中,把Teaid设置为主键;
MySQL语句如下:
ALTER TABLE teacher ADD PRIMARY KEY (Teaid);
新知讲授
四
⊙实体完整性的实现
★ 3、删除主键约束
基本语法形式如下:
ALTER TABLE 表名 [CONSTRAINT <约束名>] DROP PRIMARY KEY
➽实例:把数据表teacher表中已设置好的Teaid主键删除;
MySQL语句如下:
ALTER TABLE teacher DROP PRIMARY KEY
新知讲授
四
⊙实体完整性的实现
★ 4、联合主键(添加多列主键)
基本语法形式如下:
ALTER TABLE 表名 ADD [CONSTRAINT <约束名>] PRIMARY KEY (字段1,字段2,......,字段n )
所谓联合主键,就是这个主键是由一张表中多个字段组成。当主键是由多个字段组成时,不能直接在字段名后面声明主键约束;一张表只能有一个主键,联合主键也是一个主键。
新知讲授
四
⊙实体完整性的实现
➽实例:在数据表student中,添加Stuid和Stuname这两个字段为联合主键;
MySQL语句如下:
ALTER TABLE student ADD PRIMARY KEY(Stuid, Stuname)
命令执行完后,此时,表中Stuid和Stuname成为联合主键;
新知讲授
四
⊙实体完整性的实现
唯一约束是为表中的某一列添加唯一约束。唯一约束与主键类似。唯一约束可以保证记录的唯一性,任何两行都不能有相同的列值,唯一约束的字段可以为空值但该列中空值只能出现一次,而且一个表中可以为多个列设置唯一约束。
➽ 唯一约束
★ 1、创建表时设置唯一约束
CREATE TABLE 表名 (
......
[CONSTRAINT<约束名>]
UNIQUE KEY(约束列))
新知讲授
四
⊙实体完整性的实现
➽ 实例1:创建数据表STUDENT_2,共包含stuid , name ,idcard 三个字段,并将idcard字段设置为唯一约束;
MySQL语句如下:
CREATE TABLE STUDENT_2(stuid int , name varchar(20), idcard varchar(30) UNIQUE KEY)
新知讲授
四
⊙实体完整性的实现
★ 2、对已经存在的表设置唯一约束
基本语法形式如下:
ALTER TABLE 表名 [CONSTRAINT <约束名>] ADD 约束名 UNIQUE KEY(约束列)
★ 3、对已经存在的表删除唯一约束
基本语法形式如下:
ALTER TABLE 表名 [CONSTRAINT <约束名>] DROP 约束名 UNIQUE KEY(约束列)
新知讲授
四
⊙实体完整性的实现
➽ 实例1:给据表student中的Stuid字段和Stuname字段添加唯一约束;
MySQL语句如下:
ALTER TABLE student ADD UNIQUE KEY (Stuid,Stuname) ;
新知讲授
四
⊙实体完整性的实现
➽ 实例2:将数据表STUDENT_2中的idcard字段删除唯一索引;
MySQL语句如下:
ALTER TABLE STUDENT_2 DROP INDEX idcard ;
师生互动
五
1、总结实体完整性在数据库设计中的应用。
2、总结在实际应用是如何区分主键和外键。
讨论
随堂练习
六
1、 下列选项中,不属于数据库完整性的是( )
A.实体完整性
B.参照完整性
C.记录完整性
D.用户自定义完整性
【答案】C
【解析】数据库完整性包括:实体完整性,参照完整性,用户自定义完整性
随堂练习
六
2、 在数据库中,元组代表二维表中的( )。
A.一行
B.一列
C.一个属性
D.一个字段
【答案】A
【解析】元组代表二维表中的一行。
随堂练习
六
3、 关于主键索引,下列说法错误的是( )
A.一张表只能有一个主键索引
B. 主键索引的值不能为空
C.主键索引的值不能重复
D. 主键索引只能由一个字段组成
【答案】D
【解析】主键索引可以是一个字段,也可以是一个复合字段
随堂练习
六
4、 关于主键约束和唯一约束的说法,下列说法正确的是( )
A. 主键约束和唯一约束一样,都不能有重复值和NULL值
B. 主键约束可以包含多个列,唯一约束只能是一个列
C. 主键约束不能有NULL值,唯一约束可以出现NULL值
D.主键约束和唯一约束的列都不被其他表的外键约束所引用
【答案】C
【解析】主键约束和唯一约束可以被其他表的外键约束所引用,主键不能有重复值,不能有空值,唯一约束不能有重复值,但可以有一个NULL值。
随堂练习
六
5、 在数据库中,主键可以由一个字段构成,也可以由多个字段构成。( )
【答案】对。主键可以由一个或多个字段组成。
6、 在数据库中,空值是指字段为0的值。( )
【答案】错。在数据库中,空值是指不存在或无意义的值。
课堂小结
七
谢谢
$$