NOT NULL約束條件
UNIQUE約束條件:
保證此字段相同值不能錄入。
create table table_name
(
字段名 類型 ,
constraint 約束名 unique(字段名)
)
ALTER TABLE table_name
add constraint
constraint_name UNIQUE(字段列表);
CHECK約束條件:檢查指定字段符合條件,纔可以輸入
create table table名(
字段名 字段類型 check(字段名 條件式)
)
Alter table table_name
ADD constraint constraint_name check(字段名 條件式);
drop table student;
create table student
(
sno char(5) not null;
sname varchar2(20) not null,
sage number(2) null,
sclass char(5),
constraint sno_u unique(sno),--學號唯一
constraint sage_ck check(sage>20)--年齡大於20
);
insert into student values('10001','Tom',22,'97001');
insert into student values('10001','Lili',20,'97002');--插入失敗,學號相同
insert into student values('10002','Jerry',19,'97002');--插入失敗,年齡不符
簡便寫法:
create table student
(
sno char(5) not null unique;
sname varchar2(20) not null,
sage number(2) null check (sage>20),
sclass char(5),
)
啓用和禁止已有的約束條件:
禁止:
alter table table_name
disable constraint constraint_name;
啓用:
alter table table_name
enable constraint constraint_name ;
更改控制約束:
alter table table_name modify(字段名 null);
alter table table_name modify(字段名 not null);
刪除約束:
alter table table_name
drop constraint constraint_name;
約束條件的使用範圍