1.primary key(创建时自动同时创建一个唯一索引):
一个表只能定义一个主键约束,但是一个主键约束可以不止对应一个列
对应多个列的主键约束叫复合主键
创建语句:alter table table_name add constraint name(键名) primary key (列名)
2.unique key(创建时自动同时创建一个唯一索引):
唯一约束确保在列中不输入重复值,保证一列或多列的实体完整性
创建语句:alter table table_name add constraint name(键名) unique key (列名)
3.foreign key:
外键约束为表中一列或者多列数据提供数据完整性,它限制插入到表中被约束列的值必须在被引用表中已经存在
外键必须建立在主表的主键上
注:禁止在从表中插入包含主表中不存在的关键字的数据行
禁止update从表中相应值为主表中不存在的关键字的数据行
禁止删除在从表中有对应记录的主表的记录
创建语句:alter table table_name add constraint name foreign key (从表列值) references parent_table_name (主表列值)
4.check key:
确保列的输入内容必须符合该列的检查约束条件,否则输入无效
创建语句:alter table table_name add constraints name check (列名 like '')
对应视图
dba_constraints:可以查询表对应的约束
dba_ind_columns:通过查询index对应的字段查询出唯一约束和主键约束对应的列
主键和唯一约束的异同点:
相同点:值不能重复
异同点:主键不能为空,唯一约束可以为空(逻辑上null和null不等,所以可以无限往唯一约束的列插入空值)