約束作用:用來(lái)保持?jǐn)?shù)據(jù)的完整性,防止無(wú)效數(shù)據(jù)進(jìn)入到數(shù)據(jù)庫(kù)中。
oracle數(shù)據(jù)庫(kù)中提供的5種約束,都是限定某個(gè)列或者列的組合的。
1、主鍵約束(PRIMARY KEY):
在一個(gè)表中能唯一的標(biāo)識(shí)一行。主鍵可以限定在多個(gè)列上。
3、唯一鍵約束(UNIQUE key):在一個(gè)表中能唯一的標(biāo)識(shí)一行,唯一鍵也可以限定在多個(gè)列上。
主鍵和唯一鍵的區(qū)別:
a、一個(gè)表中最多只能有一個(gè)主鍵??梢远鄠€(gè)唯一鍵。
b、主鍵所限定的列不能為null,唯一鍵所限定的列可以為null.
2、外鍵約束(FOREIGN key):
引用表:有外鍵約束的列所在的表。
被引用表:外鍵所引用的列。被引用的列只能是主鍵或者唯一鍵。
4、非空約束(NOT null):表示該列上的數(shù)據(jù)不能有null值。
5、檢查性約束(check):表示該列上的數(shù)據(jù)必須滿足某一個(gè)條件表達(dá)式。
如何創(chuàng)建約束:
1、在創(chuàng)建表的同時(shí)創(chuàng)建約束
a.列級(jí)別約束:在每個(gè)列寫(xiě)完之后寫(xiě)約束。
CREATE TABLE t_08132(id NUMBER(10) PRIMARY KEY ,
NAME CHAR(10) NOT NULL,
gender CHAR(2) CHECK (gender IN ('男','女')),
email CHAR(20) UNIQUE
)
INSERT INTO t_08132 VALUES(1,'a','男','1@neusoft.com')
INSERT INTO t_08132 VALUES(2,'a','男','2@neusoft.com')
INSERT INTO t_08132 VALUES(3,'c','男','3@neusoft.com')