上一章知识内容
1.数据类型的属性
2.MySql的约束
mysql的约束时指对数据表中数据的一种约束行为,约束主要完成对数据的检验,如果有互相依赖数据,保证该数据不被删除。它能够帮助数据库管理员更好地管理数据库,并且能够确保数据库表中数据的正确性和一致性。
mysql的约束主要包括主键约束、外键约束、非空约束和默认值约束。
(1).主键约束(primary key)
主键约束(primary key)。关系数据库依赖于主键,它是数据库物理模式的基石。主键在物理层面上只有两个用途;唯一标识一行和作为一个可以被外键有效引用的对象。通常在数据表中将一个字段或多个字段组合设置为各种不同的值,以便能唯一地标识数据表中的每一个字段或多个字段称为数据表的主键。
它通过可以实现实体完整性,消除数据表冗余数据。一个数据表只能有一个主键约束(可以是复合主键),并且主键约束中的字段不能接受空值。由于主键约束可保证数据的唯一性,因此经常对标识字段定义这种约束。可以在创建数据表时定义主键约束,也可以修改现有数据表的主键约束。
(2).外键约束(foreign key)
外键约束(foreign key)。外键约束保证了数据库中各个数据表中数据的一致性和正确性。将一个数据表的一个字段或字段组合定义为引用其他数据表的主键字段,则引用该数据中的这个字段或字段组合久称为外键。
被引用的数据表称为主键约束表,简称为主表,引用表称为外键约束表,简称从表。可以在定义数据表时直接创建外键约束,也可以对现有数据表中的某一个字段或字段组合添加外键约束。
(3).唯一约束(unique)
唯一约束(unique)。一个数据表只能有一个主键,如果有多个字段或多个字段组合需要实施数据唯一性,可以采用唯一约束。可以对一个数据表定义多个唯一约束,唯一约束允许为Null值,但每一个唯一约束字段只允许存在一个Null值。
(4).非空约束(not null)
非空约束(not null)。指定为Not null的字段则不能输入Null值,数据表中出现Null值通常表示值未知或定义,null值不同于零、空格或长度为零的字符串。在创建数据表时,默认情况下,如果在数据表中不指定非空约束,那么数据表中所有字段都可以为空。由于主键约束字段必须保证字段是不为空的。因此,要设置主键约束的字段一定要设置非空约束。
(5).默认值约束(default)
默认值约束(default),默认值约束用来约束当前数据表中的某个字段不输入值时,自动为其添加一个已经设置好的值。可以在创建数据表时为字段指定默认值,也可以在修改数据表时为字段指定默认值。
default约束定义的默认值仅在执行Insert操作(插入数据)时生效,一列最多有一个默认值,
其中包括null值。默认值约束通常用在已经设置了非空约束的字段上,这样能够防止数据表在输入数据时出现错误。
3.数据库设计的三大范式
数据库的范式是设计数据库时要遵循的规范,满足这些规范的数据库是简洁的,同时可以避免出现操作异常。
1. 第一范式:列原子性
第一范式指的是数据中的每一列都是原子的,不可拆分的
2. 第二范式:完全依赖主键
第二范式要求实体的属性完全依赖于主关键字,即数据库表中的每个实例(行)必须可以被唯一的区分,这个唯一的属性列被称为主键。
3. 第三范式: 属性直接依赖于主键
第三范式要求任意非主属性不依赖于其他的非主属性,属性必须直接依赖于主键。出现这种情况需要进行表拆分。