约束

约束

约束:在数据表上强制执行的一些数据检验规则,当执行DML操作时,数据必须符合这些规则,若果不符合则无法执行。

约束条件可以保证表中数据的完整性,保证数据间的商业逻辑。

 

约束类型:

非空约束(NOT  NULL),简称NN

唯一性约束(Unique),简称UK

主键约束(Primary  Key),简称PK

外键约束(Foreign  Key),简称FK

检查性约束(Check),简称CK

 

非空约束:用于确保字段值不为空,关键字为NOT  NULL

可用ALTER操作取消非空约束或增加非空约束

 

唯一约束:用于保证字段或字段的组合不出现重复值,允许为空,关键字为UNIQUE

添加唯一性约束的格式为:

ALTER   TABLE  table

ADD  CONSTRAINT  table_column_uk  UNIQUE(column)

其中CONSTRAINT是表级约束,其后的字段跟表名_列名_约束简写+约束全名(约束的列)

 

主键约束:表示在表中唯一确定的一行数据,非空且唯一,关键字为PRIMARY  KEY

一个表只允许建一个主键

添加主键约束的格式为:

ALTER   TABLE  table

ADD  CONSTRAINT  table_column_uk  PRIMARY  KEY(column)

主键的选取原则:

(1)主键应是对系统无意义的数据

(2)主键永远不要更新,让主键除了唯一标识一行之外,再无其他用途

(3)主键不应包含动态变化的数据,如时间戳

(4)主键应是自动生成的,不要人为干预,以免使它带有除了唯一标识一行以外的意义

(5)主键应尽量建立在单列上

 

外键约束:定义在来年哥哥表的字段或一个表的两个字段上,用于保证相关的两个字段的关系,关键字为FOREIGN  KEY

添加外键约束的格式为:

ALTER  TABLE  table

ADD  CONSTRAINY  table_column_fk

FOREIGN  KEY (column)  REFERENCES  table1(column1)

其中table是从表表名,column是从表的列名,table1是主表表名,cloumn1是主表的列名

外键约束包括两个方面的数据约束:

(1)从表上定义的外键的列值,必须从主表被参照的列值中选取或者为NULL

(2)当主表参照列的值被从表参照时,主表的该行记录不允许被删除

 

注意事项:

(1)如果在一个频繁DML操作的表上建立外键,每次DML操作,都将导致数据库自动对外键所关联的对应表做检查,产生开销,如果已在程序中控制逻辑,这些判断将增加额外负担,可以省去。

(2)外键确定了主从表的先后生成关系,有时影响业务逻辑。

(3)保证数据完整性,可由程序或触发器控制。

(4)简化开发,维护数据时,不用考虑外键约束。

(5)大量数量DML操作时不需要考虑外键耗费时间

 

检查约束:用来强制在每个字段的每一个值都要满足CHECK中定义的条件。 

添加检查约束的格式为:

ALTER   TABLE  table

ADD  CONSTRAINT  table_column_ck  

CHECK(检查条件)

你可能感兴趣的:(唯一性约束,主键,外键,非空约束,检查约束)