Oracle 設定表約束

2021-08-28 05:12:58 字數 1771 閱讀 6813

約束(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;

oracle約束設定

id int name varchar 12 constraint nn name not null id int name varchar 12 constraint ui name unique id id int primary key,name varchar 12 id int,name ...

oracle建立表 約束

圖書資訊表 圖書編號,圖書名稱,出版社,出版日期,圖書 圖書作者,借出標識,讀者編號,描述 主鍵 constraint pk name primary key 外來鍵 constraint fk name foreign key column name reference table name co...

7 設定表的約束

對於已經建立好的表,雖然欄位的資料型別決定了所能儲存的資料型別,但是表中所儲存的資料是否合法並沒有進行檢查,在使用mysql時,如果像針對表中的資料做一些完整性檢查操作,可以通過表的約束來完成。完整性約束 完整性約束關鍵字 含義not null 約束字段不能為空值 default 設定欄位的預設值 ...