7 設定表的約束

2021-08-28 03:40:31 字數 3174 閱讀 3615

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

完整性約束

完整性約束關鍵字

含義not null

約束字段不能為空值

default

設定欄位的預設值

unque key(uk)

約束欄位的值是唯一

primary key(pk)

約束欄位為表的主鍵,可以作為該錶的唯一標識

auto_increment

約束欄位的值為自動增加

foreign key(fk)

約束欄位為表的外來鍵

設定非空約束(not null)

create

table table_name(

屬性名 資料型別 not

null,

)

設定欄位的預設值:當為資料庫插入一條新記錄是,如果沒有為某個字段賦值,那末資料庫系統會自動為這個字段插入預設值。為了達到這種效果,通過資料庫關鍵字default來設定

create

table table_name(

屬性名 資料型別 default 預設值,

)

設定唯一約束:(unque,uk)當資料庫表中的某個欄位上的內容不允許重複是,則可以是使用uk進行設定。即uk約束在建立資料庫表時為某些字段加上「unuque」約束條件,保證所有記錄中該字段上的值不重複。

create

table t_dept(

deptno int,

dname varchar(20) unique,

loc varchar(40)

);

如果想給字段dname上的uk約束設定乙個名字,可以執行sql語句constraint,建立表t_dept具體語句如下

create

table t_dept(

deptno int,

dname varchar(20),

loc varchar(40),

constraint uk_dname unique(dname)

)l

設定主鍵約束:在資料庫表中設定主鍵是為了便於資料庫管理系統快速查詢導表中的記錄。在具體設定主鍵約束時必須滿足主鍵欄位時

一、非空由於逐漸時單一欄位也可以是多個字段,所以分為單字段主鍵和多字段主鍵。

create

table table_name(

屬性名 資料型別 primary kry,

)

設定多欄位主鍵:當主鍵是由多個字段組合而成時,則需要通過sql語句constraint來實現

create

table table_name(

屬性名 資料型別

constraint 約束名 primary

key(屬性名,屬性名)

)

具體步驟:

create

table t_dept(

deptno int,

dname varchar(20),

loc varchar(40),

constarint pk_dname_deptno primary

key(deptno,dname)

);

設定字段自動增加:(auto_increment)當資料庫插入資料時會自動生成唯一id,乙個資料庫表只能有乙個字段使用該約束。

create

table table_name(

屬性名 資料型別 auto_increment,

);

設定外來鍵約束:前面介紹的完整性約束都是在單錶中進行設定,而這裡介紹的外來鍵約束則保證多個表(通常為連兩個表)之間的參照完整性,機構監獄兩個表之間的參照關係。

設定外來鍵約束的兩個表之間具有父子關係,即子表中某個欄位的取值範圍由父表決定。例如,表示一種部門和雇員關係,即每個部門有多少雇員,首先應該有兩個表:部門表和雇員表,然後雇員表中有乙個表示部門編號的字段deptno,其依賴與部門表的主鍵,這樣欄位deptno就是雇員表的外來鍵,通過該欄位部門表和雇員表建立了聯絡。

在具體設定pk約束時,設定fk約束的字段必須依賴於資料庫中已經存在的父表的主鍵,同時外來鍵可以為null。

create

table table_name(

屬性名 資料型別,

屬性名 資料型別

constraint 外來鍵約束名 foreign

key(屬性名1)references 表名 (屬性名2)

)

具體操作如下

create

database company;

use company;

create

table t_dept(

deptno int

primary

key,

dname varchar(20),

loc varchar(40),

);

create

table t_employee(

empno int perimary key,

ename varchar(20),

job varchar(40),

mgr int,

hiredate date,

sal double(10,2)

comm double(10,2)

deptno int,

constraint fk deptno foreign

key(deptno) peferences t_dept(deptno)

)

Oracle 設定表約束

約束 constraint 約束是表級的強制規定。有以下五種約束 not null 非空 只能是列級約束 unique unique 唯一約束 primary key primary key 主鍵約束 foreign key foreign key 外來鍵約束 check check 檢查約束列級約...

iOS約束的設定

以前,還要用計算來讓 cell 去自適應 label 中文字的高度,現在視覺化程式設計,直接用約束 幾行 就能搞定.1.比如 如果要設定段子的高度自適應,方法 上下左右距離父檢視,numberofline 0 加上兩行 self.tableview.estimateedroeheight 44.f ...

建立表及設定屬性的約束條件

建立表 完整性約束條件 約束條件 說明 primary key 表中屬性主鍵 foreign key 該屬性為表外來鍵是與之聯絡的某錶的主鍵 not null 標誌的屬性不為空 unique 標誌的屬性的值唯一 auto incrrment 標識的該屬性的值自動增加。是mysql 中sql 語句特色...