1、概述
- 定义规则
- 确保完整性
2、非空约束
- 在创建表时设置非空约束
- 在修改表时添加非空约束
- 在修改表时去除非空约束
CREATE TABLE table_name(
column_name datatype NOT NULL,...
);
ALTER TABLE table_name
MODIFY column_name datatype NOT NULL;
ALTER TABLE table_name
MODIFY column_name datatype NULL;
3、主键约束
- 作用:确保表当中每一行数据的唯一性
- 在创建表时设置主键约束
- 在修改表时添加主键约束
- 更改约束名称
- 删除主键约束
CREATE TABLE table_name(
column_name datatype PRIMARY KEY,...
);
CREATE TABLE table_name(
column_name datatype,...
CONSTRAINT constraint_name PRIMARY KEY(column_name1,...)
);
ALTER TABLE table_name
ADD CONSTRAINT constraint_name PRIMARY KEY(column_name1,...);
ALTER TABLE table_name
RENAME CONSTRAINT old_name TO new_name;
# 禁用
ALTER TABLE table_name
DISABLE|ENABLE CONSTRAINT constraint_name;
# 删除
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
ALTER TABLE table_name
DROP PRIMARY KEY[CASCADE]
4、外键约束
- 在创建表时设置外键约束
- 在修改表时添加外键约束
- 删除外键约束
CREATE TABLE table_name(
column_name datatype REFERENCES table_name(column_name),...
);
CREATE TABLE table_name(
column_name datatype,...
CONSTRAINT constraint_name FOREIGN KEY(column_name1) REFERENCES table_name(column_name) [ON DELETE CASCADE]
);
ALTER TABLE table_name
ADD CONSTRAINT constraint_name FOREIGN KEY(column_name1) REFERENCES table_name(column_name) [ON DELETE CASCADE]
ALTER TABLE table_name
DISABLE|ENABLE CONSTRAINT constraint_name;
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
5、唯一约束
-
作用:保证字段值的唯一性
-
唯一约束和主键约束的区别:
- 主键字段值必须是非空的
- 唯一约束允许有一个空值
- 主键在每张表中只能有一个
- 唯一约束在每张表中可以有多个
-
在创建表时设置唯一约束
-
在修改表时添加唯一约束
-
删除唯一约束
CREATE TABLE table_name(
column_name datatype UNIQUE,...
);
CREATE TABLE table_name(
column_name datatype,...
CONSTRAINT constraint_name UNIQUE(column_name),...
);
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
UNIQUE(column_name);
ALTER TABLE table_name
DISABLE|ENABLE CONSTRAINT constraint_name;
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
6、检查约束
- 作用:表中的值更具有实际意义
- 在创建表时设置检查约束
- 在修改表时添加检查约束
- 删除检查约束
CREATE TABLE table_name(
column_name datatype CHECK(expressions),...
);
CREATE TABLE table_name(
column_name datatype,...
CONSTRAINT constraint_name CHECK(expressions),...
);
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
CHECK(expressions);
ALTER TABLE table_name
DISABLE|ENABLE CONSTRAINT constraint_name;
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
7、查找数据字典,获取约束名称
select constraint_name, constraint_type, status from user_constrains where table_name='表名'
Oracle中规定一张表中只能有一个主键,因此主键约束只能有一个。
外键约束涉及到两个表,比如部门表dept包括部门编号(deptno),员工表employee中的部门(deptnum)作为外键参照部门表中的deptno字段。
唯一约束要求每个字段不能有重复值,可以有空值,但是空值只能有一个。
网友评论