都有哪些約束在mysql mysql常見約束有哪些

2021-10-17 22:28:50 字數 1358 閱讀 5254

約束是一種限制,它通過對錶的行或列的資料做出限制,來確保表的資料的完整性、唯一性。下面本篇文章就來給大家介紹一下6種mysql常見的約束,希望對大家有所幫助。

1、非空約束(not null)

非空約束用於確保當前列的值不為空值,非空約束只能出現在表物件的列上。

null型別特徵:所有的型別的值都可以是null,包括int、float 等資料型別

2、唯一性約束(unique)

唯一約束是指定table的列或列組合不能重複,保證資料的唯一性。

唯一約束不允許出現重複的值,但是可以為多個null。

同乙個表可以有多個唯一約束,多個列組合的約束。

在建立唯一約束時,如果不給唯一約束名稱,就預設和列名相同。

唯一約束不僅可以在乙個表內建立,而且可以同時多表建立組合唯一約束。

3、主鍵約束(primary key) pk

主鍵約束相當於 唯一約束 + 非空約束 的組合,主鍵約束列不允許重複,也不允許出現空值。

每個表最多隻允許乙個主鍵,建立主鍵約束可以在列級別建立,也可以在表級別建立。

當建立主鍵的約束時,系統缺省會在所在的列和列組合上建立對應的唯一索引。

4、外來鍵約束(foreign key) fk

外來鍵約束是用來加強兩個表(主表和從表)的一列或多列資料之間的連線的,可以保證乙個或兩個表之間的參照完整性,外來鍵是構建於乙個表的兩個字段或是兩個表的兩個字段之間的參照關係。

建立外來鍵約束的順序是先定義主表的主鍵,然後定義從表的外來鍵。也就是說只有主表的主鍵才能被從表用來作為外來鍵使用,被約束的從表中的列可以不是主鍵,主表限制了從表更新和插入的操作。

5、預設值約束 (default)

若在表中定義了預設值約束,使用者在插入新的資料行時,如果該行沒有指定資料,那麼系統將預設值賦給該列,如果我們不設定預設值,系統預設為null。

6、自增約束(auto_increment)

自增約束(auto_increment)可以約束任何乙個字段,該字段不一定是primary key欄位,也就是說自增的字段並不等於主鍵字段。

但是primary_key約束的主鍵字段,一定是自增欄位,即primary_key 要與auto_increment一起作用於同乙個字段。

當插入第一條記錄時,自增字段沒有給定乙個具體值,可以寫成default/null,那麼以後插入欄位的時候,該自增字段就是從1開始,沒插入一條記錄,該自增字段的值增加1。當插入第一條記錄時,給自增欄位乙個具體值,那麼以後插入的記錄在此自增字段上的值,就在第一條記錄該自增字段的值的基礎上每次增加1。

也可以在插入記錄的時候,不指定自增字段,而是指定其餘字段進行插入記錄的操作。

C都有哪些標準?都有哪些主要變化?

程式設計前先查一下編譯器都支援哪些標準?1?c的標準化過程 c語言自誕生到現在,期間經歷了多次標準化過程,主要分成以下幾個階段 1.1?traditional?c 此時的c語言還沒有標準化,來自 c programming language,first edition,by brian w.kern...

rpc框架都有哪些 工業鋁型材框架都有哪些特殊優勢

很多自動化技術機械廠都是應用到工業鋁型材框架做為裝置的支撐點件,還會繼續有一些顧客會有疑問,用鐵或是是其他的原材料來做框架能不能?當然是能夠 的,但是為什麼有生產廠家把原來其他原材料換為工業鋁型材框架來應用呢?下面便是佛山航美鋁製品網編公布工業鋁型材和鐵或是是其他原材料比照的優點。工業鋁型材製做框架...

map 都有哪些方法

1.map.put key,value 作用是 在對應的key上面放乙個值value value也可以是表示式,如 map.put x map.getordefault x,0 1 2.那麼map.getordefault key,defaultvalue 又是什麼呢?就是 在map雜湊表中查詢是否...