【MySQL】數據庫 -- 表的約束

      在數據庫中,真正約束字段的是數據類型,但是數據類型約束很單一,需要有一些額外的約束,更好的保證數據的合法性,從業務邏輯角度保證數據的正確性。比如有一個字段是email,要求是唯一的。
     表的約束很多,這裏主要介紹如下幾個,null/not null,default, comment, zerofill,primary key,auto_increment,unique。
空屬性:
兩個值:null(默認的)和not null(不爲空)
數據庫默認字段基本都是字段爲空,但是實際開發時,儘可能保證字段不爲空,因爲數據爲空沒辦法參與運算。

      創建一個班級表,包含班級名和班級所在的教室,如果班級沒有名字,你不知道你在哪個班級,如果教室名字可以爲空,就不知道在哪上課。

默認值:
默認值:某一種數據會經常性的出現某個具體的值,可以在一開始就指定好,在需要真實數據的時候,用戶可以選擇性的使用默認值。


默認值的生效:數據在插入的時候不給該字段賦值,就使用默認值。


注意: set和enum不能設置默認值。

列描述
列描述:comment,沒有實際含義,專門用來描述字段,會根據表創建語句保存,用來給程序員或DBA來進行了解。


通過show可以看到:


主鍵
主鍵:primary key用來唯一的約束該字段裏面的數據,不能重複,不能爲空,主鍵所在的列是整數類型。一張表中最多只能有一個主鍵

創建表的時候直接在字段上指定主鍵:


在創建表的時候,在所有字段之後,使用primary key(主鍵字段列表)來創建主鍵,如果有多個字段作爲主鍵,可以使用複合主鍵。


當表創建好以後,可以再次追加主鍵:

alter table 表名 add primary key(字段列表)

主鍵約束:主鍵對應的字段中不能重複,一旦重複,操作失敗。

刪除主鍵:

alter table 表名 drop primary key;
自增長
auto_increment:當對應的字段,不給值,會自動的被系統觸發,系統會從當前字段中已經有的最大值+1操作,
得到一個新的不同的值。通常和主鍵搭配使用,作爲邏輯主鍵。
自增長的特點:
1、任何一個字段要做自增長,前提是本身是一個索引(key一欄有值)
2、自增長字段必須是整數

3、一張表最多只能有一個自增長


唯一鍵
一張表中有往往有很多字段需要唯一性,數據不能重複,但是一張表中只能有一個主鍵:唯一鍵就可以解決表中有多個字段需要唯一性約束的問題。

唯一鍵的本質和主鍵差不多,唯一鍵允許爲空,而且可以多個爲空,空字段不做唯一性比較。


發佈了85 篇原創文章 · 獲贊 110 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章