oracle約束的分類,oracle約束分類

來源:互聯網
上載者:User

oracle約束的分類,oracle約束分類
         資料庫完整性(database Integrity)是資料庫中資料的正確性和相容性,用來防止使用者向資料庫中添加不合法語義的資料。資料庫完整性是由各種各樣的完整性條件約束來保證的,可以說,資料庫完整性設計就是資料庫完整約束的設計。按照不同的角度可以將表的完整性條件約束分成不同的類型。主要可以選取兩個角度:約束的範圍和約束的用途。

        按照約束的作用可以將表的完整性條件約束分為如下兩大類:
表級約束:應用於表,對於表中的多個列起作用。
資料行層級條件約束:應用於表中的一列,只對該列起作用。


按照約束的用途可以將表的完整性條件約束分為5類:

約束               簡寫                說明
not null           c                     非空約束(指定一列不允許儲存空值)
primary key    p                     主鍵約束(主鍵由一列或多列組成,唯一標識表中的一列)
unique           u                      唯一約束(唯一約束,指定一列或一組列只能儲存唯一的值)
check             c                     檢查約束(指定一列或一組列的值必須儲存唯一的值)
foreing key     r                     外鍵約束(外鍵引用到表另一個表中的一列)

視圖user_constraints
可以通過查詢資料字典視圖user_constraints,可以瞭解目前使用者模式中所有的約束的基本資料。
列                          類型                          說明
owner                    varchar2(30)             約束的所有者        
constraint_name   varchar2(30)             約束名
constraint_type     varchar2(1)               約束類型
table_name           varchar2(30)             約束所針對的表名
status                    varchar2(8)               約束的狀態(enabled或disabled)
deferable              varchar2(14)             該約束是否可延遲
deferrd                  varchar2(9)               立即執行還是順延強制

通過查村資料字典視圖user_cons_columns,可以瞭解定義約束的列
列               類型                   說明
owner           varchar2(30)            約束的所有者        
constraint_name varchar2(30)            約束名
table_name       varchar2(30)            約束所針對的表名
column_name          varchar2(4000)        約束定義所針對的列明
具體的操作如下:
SQL> column owner format a6
SQL> column constraint_name format a15
SQL> column table_name format a10
SQL> column column_name format a10
SQL> select owner,constraint_name,table_name,column_name     //約束的資訊
  2  from user_cons_columns
  3  where table_name='T';
OWNER  CONSTRAINT_NAME TABLE_NAME COLUMN_NAM
------ --------------- ---------- ----------
SYSTEM SYS_C0010065    T          TID        約束的名稱    所在的列
SYSTEM SYS_C0010064    T          TID        約束的名稱    所在的列
SQL>

SQL> select constraint_name,constraint_type     //約束資訊
  2  from user_constraints
  3  where table_name='T';
CONSTRAINT_NAME C
--------------- -
SYS_C0010065    P               主鍵約束

SYS_C0010064    C               非空約束

以上的內容來自學習的記錄。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.