資料庫約束的一些用法總結(constraint)

2021-09-06 07:05:21 字數 2749 閱讀 2389

主要就是增加約束的

以下幾種約束 、並 一一枚舉:

1.主鍵約束:

要對乙個列加主鍵約束的話,這列就必須要滿足的條件就是分空

因為主鍵約束:就是對乙個列進行了約束,約束為(非空、不重複)

以下是**  要對乙個列加主鍵,列名為id,表名為emp

格式為:

alter table **名稱 add constraint 約束名稱 增加的約束型別 (列名)

例子:alter table emp add constraint ppp primary key (id)

2.check約束:

就是給一列的資料進行了限制

比方說,年齡列的資料都要大於20的

表名(emp) 列名(age)

格式:alter table 表名稱 add constraint 約束名稱 增加的約束型別 (列名)

例子:alter table emp add constraint *** check(age>20)

3.unique約束:

這樣的約束就是給列的資料追加的不重複的約束型別

格式:alter table 表名 add constraint 約束名稱 約束型別(列名)

比方說可以給ename列加個unique,讓ename列的資料不重複

例子:alter table emp add constraint qwe unique(ename)

4.預設約束:

意思很簡單就是讓此列的資料預設為一定的資料

格式:alter table 表名稱 add constraint 約束名稱 約束型別 預設值) for 列名

比方說:emp表中的gongzi列缺省為10000

alter table emp add constraint jfsd default 10000 for gongzi

————————————————————————————————

5.外來鍵約束:

這個有點難理解了,外來鍵其實就是引用

因為主鍵實現了實體的完整性,

外來鍵實現了引用的完整性,

應用完整性規定,所引用的資料必須存在!

其實就是個引用,

比方說乙個表名稱叫dept 裡面有2列資料 一列是id一列是ename

id:表示產品的編號

ename:表示產品的名稱

另外乙個**名稱是emp 裡面有2列資料,一列是id 一列是did

id:表示使用者號

did:表示購買的產品號

要讓emp表中的did列去引用dept表中的id

可以用下面的方法

格式:alter table 表名 add constraint 約束名稱 約束型別 (列名) references 被引用的表名稱(列名)

例子:alter table emp add constraint jfkdsj foreign key (did) references dept (id)

但是我經過試驗預設約束這樣做並不好用,我有乙個例子,像我這樣建表就好用了:屬性

型別(長度)

預設值 約束

含義stuno 數值

(8) 無

主鍵 學號

sname

變長字元

(12) 無

非空 姓名

*** 字元

(2) 男

無 性別

birthday 日期

無 無生日

email

變長字元

(20) 無

唯一電子郵件

score 數值

(5, 2) 無

檢查 成績

classno 數值

(2) 無

外來鍵,關聯到表

class

的classno主鍵

班級編號

createtablestudent(

stunonumber(8) ,

snamevarchar2(12)notnull,

***char(2)default'男',

birthdaydate,

emailvarchar2(20),

scorenumber(5,2),

classnonumber(2),

constraintstudent_stuno_pkprimarykey(stuno),

constraintstudent_email_ukunique(email),

constraintstudent_score_ckcheck(score>=0),

constraintstudent_classno_fkforeignkey(classno)referencesclass(classno));

出處:

關於資料庫鎖的一些總結

在總結資料庫鎖之前先闡述一下 資料庫的集中隔離級別以及它們分別能避免哪些問題 1.未提交讀,最低階的隔離級別,不能避免丟失更新以及髒讀。2.提交讀,可以避免丟失更新以及髒讀。3.可重複讀,可以避免不可重複讀。4.可序列化,可以避免幻影讀。mysql預設級別是3,mysql的兩大主要引擎,1是inno...

資料庫約束總結

主鍵約束 create table t id int unsigned auto increment primary key 備註 一張表只能有乙個。唯一鍵約束 create table t id int unsigned auto increment primary key,username va...

資料庫約束總結

1.主鍵約束 特點 非空且唯一 作用 確保表中每一行資料的唯一性 注意 乙個表只能設定乙個主鍵約束,但是主鍵約束可以由多個字段構成 組合主鍵 建立方式 a.在建立表的時候設定主鍵約束 欄位名 字段型別 primary key b.在修改表時新增主鍵約束 多個列作為組合主鍵用逗號分開 alter ta...