约束的作用
定义规则
确保数据完整性
非空约束
在创建表的时候设置
CREATE TABLE table_name(
column_name datatype NOT NULL,...
)
修改表的时候设置
ALTER TABLE table_name MODIFY column_name datatype NOT NULL;
删除非空约束
ALTER TABLE table_name MODIFY couumn_name datatype NULL;
主键约束
确保表中每一行数据的唯一性,非空,唯一,智能设计一个主键约束,但是可以是多列
在创建表时设置:
CREATE TABLE table_name(
column_name datatype PROMARY KEY,
)
实例联合主键
create table userinfo (
id number(6,0),
username varchar2(20)
constraint pk_Id_username primary key(id,username)
);
修改表时添加:
ALTER TABLE tatble_name
ADD CONSTRAINT constraint_name PRIMARY KEY(column_name1,....);
删除主键约束
第一种
DISABLE|ENABLE CONSTRAINT constraint_name
第二种
ALTER TABLE table_name
DROP CONSTAINT constraint_name
第三种
DROP PRIMARY KEY[CASCADE]
可选为级联删除,可以删除有关的外键信息
外键约束
两个表中的列关联
创建表的时候设置:
列级设置:
CREATE TABLE table1
(column_name datetype REFERENCES table2(column_name),....);
主表为table2字段必须是主键字段,同一个类型 table1为从表
CONSTRAINT constraint_name FOREIGN KEY(column_name_ REFERENCES table_name(column_name) [ON DELETE CASCADE]
级联删除为可选项,如果主表中的数据被删除了设置了级联之后,如果主表数据被删除,在从表中使用到该数据的数据会跟着被删除,保证数据的完整。
修改表的时候添加设置:
ADD CONSTRAINT constraint_name FOREIGN KEY(column_name) REFERENCES table_name(column_name) [ON DELETE CASCADE]
删除外键约束
禁用:
DISABLE|ENABLE CONSTRAINT constraint_name;
删除:
DROP CONSTRAINT constraint_name;
唯一约束
保证值的唯一性。唯一约束可以有空值。唯一约束可以有多个。
创建表的时候设置唯一约束:
CREATE TABLE table_name(
column_name datetype UIQUE);
表级设置
CONSTRAINT constraint_name
UNIQUE(column_name);
多个要多个字句,不能用逗号分割。
修改表的时候设置唯一约束:
ADD CONSTRAINT constraint_name UNIQUE(column_name);
删除唯一约束:
禁用:
DISABLE|ENABLE CONSTRAINT constraint_name;
删除:
DROP CONSTRAINT constraint_name;
检查约束
作用,表中的值更具有实际的意义。
CREATE TABLE table_name(
column_name datatype CHECK(expressions),....);
expressions为表达式,比如:列名>0
表级创建:
CONSTRAINT constraint_name CHECK(expression);
修改表的时候添加
ADD CONSTRAINT constraint_name
CHECK(expressions);
删除检查约束
禁用:
DISABLE|ENABLE CONSTRAINT constraint_name;
删除:
DROP CONSTRAINT constraint_name;
数据字典查看约束:
user_constraints