一、约束的作用
约束用于保证数据库数据的完整性和可靠性。
二、约束的分类
1、主键约束
2、外键约束
3、唯一性约束
4、非空约束
5、检查约束
6、默认值约束
三、约束详解
主键约束
1、主键的意义
a、防止出现重复的数据--实现实体完整性
通过主键保证数据表的数据不会出现重复
b、检索有利
主键可以唯一的标识一条记录,将主键作为搜索条件,可以最快、最方便地获得目标数据。
c、支持外键
外键描述了表与表之间的关系。如果需要在表A上建立外键,并将外键指向另一个表B,被
指向的表 B必须提供主键支持。
2、主键约束简介
a、主键不一定只有一列
主键可以包含多列,即复合主键。
b、通常选用单列主键
进行数据检索时,单列主键只需搜寻一个条件即可;
c、自增的数值型主键比较受欢迎
自增的数值型主键大多是无意义的、与业务无关的流水号。当应用系统的业务发生变化的
时候,如果表结构发生变化,此时无意义的、与业务无关的流水号几乎不受影响。数据库
迁移、数据合并时,处理的成本往往更小。
3、创建主键约束
a、创建表的同时,定义主键约束
在主键列后加 primary key
b、创建表后,添加主键约束
alter table 表名 add primary key (列名1,列名2...)
c、为主键命名
alter table 表名 add constraint 约束名称 primary key (列名1,列名2...)
4、查询主键约束
通过user_constraints查看主键约束 select table_name,constraint_name,constraint_type,status from user_constraints where table_name='';
5、修改主键约束
a、禁用/启用主键
--禁用 alter table 表名 disable primary key --启用 alter table 表名 enable primary key
b、重命名主键
alter table 表名 rename constraint 原主键名称 to 新主键名称
外键约束
1、主键的意义
外键保证数据的参照完整性。
在两个表之间,一个表中的记录依附于另一个表的记录而存在,称为表的参照完整性。
2、外键约束简介
外键实际是一个引用。数据表有自己的主键,而向外部数据表的引用,称为外键。
外键实际隐含了对外部引用的限制-必须获得外部数据表的唯一记录。
3、创建外键约束
alter table 表名 add constraint 约束名 foreign key(外键列名) references 主表(主表主键列) --alter table 表名 修改从表的属性 --add constraint 约束名 为表添加约束 --foreign key(外键列名) 指定约束的具体类型 --references 主表(主表主键列) 指定引用信息(主表及主表的主键列)