约束

约束的概念:确保在列中插入有效的值并维护表之间的关系

 约束的类型:

default                Insert时为列指定值

check                  指定在列中可接受的值

Not Null               指定在列中不接受的空值

Primary key          每行唯一的标识

unique                 不允许哟偶重复的关键字

foregin                 匹配另一张表中的关键字

Primary key(主键) 约束

   一个表中只能有一个,不能有空值,不能有重复值

    创建表时定义约束:

           字段名   数据类型[长度]  Primary key    

 unique (唯一)约束

     同一列中的两行不能有相同的值

      字段名   数据类型    unique

default(默认)约束

执行insert语句时将默认值自动插入约束所在的列

字段名  数据类型   dafault  默认值

Default 约束注意事项

 1,没列只能定义一个default约束

 2,不能有Identity属性的列  (自动增长列)

 3,如果定义的默认值长度大于对应字段的长度则输入的值将被截断

 4,有default约束的字段,可插入其他的值,若不插入,则以默认值为记录值

check(检查)约束

每次执行insert/update 语句时,该约束要检查数据的合法性

  字段名  数据类型  check(条件)

注意事项

 1,一个表中可以定义多个检查约束,但每个字段只能定义一个检查约束

 2,如果对已有的数据的表添加约束,可以用 with nocheck 避免对以前的数据做检查

Foregin key(外键)约束

  确保主关键字(主表中)和外关键字(辅表中)的关系

  字段名  数据类型  foregin key (字段名)    references   表名(字段名)

                                   

修改约束

 alter table  表名

  add  constraint   约束名   primary key(字段名)  -----主键

  .............................    unique(字段名)-----唯一

 ..............................   default(默认值) for 字段名  ---默认

 ..............................  check(条件)     ---检查

...............................  foreign key(字段名)  references  主键表(参照字段名)-----外键

   删除约束

   alter table 表名   drop 约束名

  要删除被约束的列必须先删除约束

级联更新和删除

    设置了外键约束后,如果要插入数据必须先插入主表数据,在插入外键表数据,如果删除数据,先删外键表数据再删除主键表数据

  功能:对主键表中的数据记录进行删除或更新时,外键表中的对应记录也跟着删除或更新

  语法: 

    级联删除     on delete cascade

    级联更新      on update cascade

  例如:

     alter table  XS_KC

  add constraint  fk_xh foreign key(学号)  references xs(学号)  on delete cascade  

Rule  规则的使用 

  指定列中可以接受的值,确保数据落在指定的范围,相当于check约束

    语法:

  create rule  规则名称  as  规则条件

原文地址:https://www.cnblogs.com/Sea1ee/p/6359185.html