Oracle:设置表约束

约束(constraint)约束是表级的强制规定。

 有以下五种约束: 
NOT NULL      :非空 (只能是列级约束)
UNIQUE        :unique  唯一约束
PRIMARY KEY   :  primary key :主键约束
FOREIGN KEY   :foreign key :外键约束
CHECK         :check 检查约束

列级约束和表级约束:

Create table emp(
	Name varchar2(6)  not null    <---列级约束
	Empno number(2),
	CONSTRAINT   约束名称  约束内容  <--表级约束(表最后设置的约束)
)

约束命名习惯:表名_字段名_约束类型

例:
1,constraint emp_email_uk unique (email);  
2,constraint dept_id_pk primary key (department_id);
3,constraint emp_dept_fk foreign key (department_id)  references departments(department_id);
4,constraint emp_salary_ck  check (salary > 0);

作用范围: ①列级约束只能作用在一个列上 ②表级约束可以作用在多个列上(当然表级约束也 可以作用在一个列上)
• 定义方式:列约束必须跟在列的定义后面,表约 束不与列一起,而是单独定义。
• 非空(not null) 约束只能定义在列上

添加约束的语法
使用 ALTER TABLE 语句: alter table
添加或删除约束,但是不能修改约束
有效化或无效化约束
添加 NOT NULL 约束要使用 MODIFY 语句

通过alter命令为表添加约束,例:

1.为两个表添加主键
person表pid为主键
alter table person add constraint person_pid_pk primary key(pid);

book表bid为主键
alter table book add constraint book_bid_pk primary key(bid);

2.为person表中的tel添加唯一约束
alter table person add constraint person_tel_uk unique(tel);

3.为person表中的age添加检查约束
alter table person add constraint person_age_ck check(age between 0 and 150);

7.删除约束
alter table person drop constraint unique(tel);
alter table book drop constraint person_book_pid_fk;

8.启用约束
alter table book enable constraint person_book_pid_fk;

9.禁用约束
alter table book disable constraint person_book_pid_fk;

猜你喜欢

转载自blog.csdn.net/wxc_qlu/article/details/82750366