约束类型
- 主键约束 :Primary Key Constraint 注:要求主键列数据唯一,并且不允许为空
- 唯一约束 :Unique Constraint 注:要求该列唯一,允许为空
- 检查约束 :Check Constraint 注:某列取值范围限制、格式限制等,如有关年龄的约束
- 外键约束 :Foreign Key Constraint 注:用于两表间建立关系,需要指定引用主表的那列
切换到非超级管理员操作,建表代码如下
create table test01
(
stname varchar2(10) not null,
stsex char(3),
stid char(4),
stgrade varchar(6) default '一年级'
);
create table t1(
name varchar2(20),
class char(3),
position varchar2(10),
age char(3)
)
添加约束
主键必须唯一,不能为空
alter table 表名 add constraint 约束名 primary key(字段名);
alter table t1 add constraint pk_name_t1 primary key(name);
唯一键列值必须唯一,允许为空
alter table 表名 add constraint 约束名 unique(字段);
alter table test01 add constraint uq_stid unique(stid);
alter table 表名 add constraint 约束名 check (约束条件);
alter table test01 add constraint ck_stsex check (stsex='男' or stsex='女')
表表连接,明确指定主表引用主键唯一列
创建两个表
create table a
(
aname char(6),
aid number
);
create table b
(
bname char(6),
bid number
);
/* 主键约束 */
alter table a add constraint pkk_aid_a primary key(aid);
/* 给a主键和唯一约束的行输入数据 */
select * from a for update;
/* 连接外键 */
alter table b add constraint fk_bid foreign key (bid) reference a(aid);
删除约束
alter table 表名 drop constraint 约束名
alter table test01 drop constraint ck_stsex;