Oracle資料庫(十)—— 約束

來源:互聯網
上載者:User

標籤:sch   工資   分享   col   瞭解   格式   視圖   資訊   src   

 (一)什麼是約束

約束是表級的強制規定

有以下五種約束

  • NOT NULL :非空
  • UNIQUE:唯一
  • PRIMARY KEY:主鍵
  • FOREIGN KEY:外鍵
  • CHECK:檢查

注意約束

  • 如果不指定約束名 ,Oracle server 自動按照 SYS_Cn 的格式指定約束名
  • 建立和修改約束:
  1. 建表的同時
  2. 建表之後
  • 可以在表級或列級定義約束
  • 可以通過資料字典視圖查看約束

 

(二)表級約束和資料行層級條件約束
  • 作用範圍:
  •   ①資料行層級條件約束只能作用在一個列上
  •   ②表級約束可以作用在多個列上(當然表級約束也 可以作用在一個列上)
  • 定義方式:列約束必須跟在列的定義後面,資料表條件約束不與列一起,而是單獨定義。
  • 非空(not null) 約束只能定義在列上

約束定義文法:

CREATE TABLE [schema.]table (

  column datatype [DEFAULT expr] [column_constraint],

  ...

   [table_constraint]

  [,...]);

 

(三)建立約束定義1、not null約束

定義非空約束後,賦值為null會報錯

 

2、unique約束

可以定義在表級或列級

 

定義該約束的列不允許出現重複值

 

 3、primary key約束

可以定義在表級或列級

 

主鍵特點:非空且唯一 即primary key = not null + unique

 

4、foreign key約束

可以定義在表級或列級

 

增加資料時,外鍵約束的列的值必須在父表中有值

 

FOREIGN KEY 約束的關鍵字

  • FOREIGN KEY: 在表級指定子表中的列 
  • REFERENCES: 標示在父表中的列
  • ON DELETE CASCADE(串聯刪除): 當父表中的列被刪除時,子表中相對應的列也被刪除
  • ON DELETE SET NULL(級聯置空): 子表中相應的列置空

 

5、check約束

定義每一行必須滿足的條件

 

(四)添加約束

使用 ALTER TABLE 語句:

  • 添加或刪除約束,但是不能修改約束
  • 有效化或無效化約束
  • 添加 NOT NULL 約束要使用 MODIFY 語句

 

1、添加刪除約束

-- 在工資上添加一個非空約束

 

-- 刪除name的非空約束

 

-- 給name添加unique約束

 

2、無效化約束

 

3、啟用約束

  • ENABLE 子句可將當前無效的約束啟用
  • 當定義或啟用UNIQUE 或 PRIMARY KEY 約束時系統會自動建立UNIQUE 或 PRIMARY KEY索引

 

4、查詢約束(瞭解)

-- 查詢EMPLOYEES表中的約束資訊

 

5、查詢定義約束的列

-- 查詢EMPLOYEES表中定義約束的列

 

(五)總結

1、建立和修改約束

2、描述約束的類型:

  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY
  • CHECK

Oracle資料庫(十)—— 約束

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.