約束的建立和管理

2021-10-01 20:51:24 字數 2006 閱讀 6143

約束是保證表中資料完整性的一種有效檢測手段。嚴格來講共有六中約束:

資料型別(可忽略)、非空約束、唯一約束、主鍵約束、檢查約束、外來鍵約束。

1、非空約束(not null,nk)
非空約束可以說是整個約束之中最特殊的乙個,而且設定的方式與其它的四種約束不太一樣,只需要在表建立的時候字段後面編寫not null即可實現。

--使用非空約束

create table if not exists member(

mid number,

name varchar2(16) not null

)

2、唯一約束(unique,uk)
唯一約束指的是表中某乙個列的資料不允許重複。

--使用唯一約束

create table if not exists member(

mid number,

name varchar2(20) not nnull,

email varchar2(20) unique

)--強烈建議使用下面的方式建立約束,方便系統進行約束的維護

create table if not exists member(

mid number,

name varchar2(20) not null,

email varchar2(20),

constraint uk_email unique(email)

)

3、主鍵約束(primary key,pk)
主鍵約束=非空約束+唯一約束。一般來說,在進行資料表設計的時候都會為每一張資料表至少設定乙個主鍵或不設定,但是從資料庫本身的設計角度觸發,一張資料表也可以設定多個主鍵,多個主鍵也被稱為復合主鍵。

create table if not exists member(

mid number,

name varchar2(20) not null,

constraint pk_mid primary key(mid)

)

4、檢查約束(check,ck)
檢查約束是由使用者自己來設定檢查的過濾條件。一般而言,你所設定的約束越多,在進行資料更新操作的時候效能就越低。

create table if not exists member(

mid number,

name varchar2(20) not null,

*** varchar(4),

age number,

constraint pk_mid primary key(mid),

constraint ck_*** check(*** in('男','女')),

constraint ck_age check(age between 0 and 250)

)

5、主-外來鍵約束(foreign key,fk)
在兩張資料表中,子表的某個字段應該與父表的主鍵或唯一約束的字段有關聯。

create table member(

mid number,

name varchar2(20) not null,

constraint pk_mid primary key(mid)

)create table book(

bid number,

title varchar2(20),

mid number,

constraint pk_bid primary key(bid),

constraint fk_mid foreign key(mid) references member(mid)

)

6、管理約束

Oracle的表建立和約束

oracle建立表同sql server一樣,使用create table命令來完成。建立約束則使用如下命令 語法格式 altertable命令 alter table 表名add constraint d4 約束名約束內容。不論建立表還是約束,與sql server基本相同,注意 在oracle中...

建立和管理表

建立和管理表 常用的資料字典表有 user tables,user objects,user catalog 目錄 例子 create table dept30 as select empno,ename,sal 12 annual,hiredate from emp where deptno 30...

建立和管理表

建立和管理表 一 建立表 1 直接建立 create table buff goob varchar2 5 kplid number 5 dwes varchar2 5 2 通過子查詢的方式建立 create table buff asselect last name employee id fro...