MySQL基礎2 表的約束

2021-08-26 23:35:43 字數 1339 閱讀 2461

真正約束欄位的是資料型別,但是資料型別約束很單一,需要有一些額外的約束,更好的保證資料的合法性,從業務邏輯角度保證資料的正確性。

表的約束很多,這裡主要介紹如下幾個,null/not null,default, comment, zerofill,primary key, auto_increment,unique。

1、空屬性

①兩個值:null(預設的)和not null(不為空)

②資料庫預設字段基本都是字段為空,但是實際開發時,盡可能保證欄位不為空,因為資料為空沒辦法參與運算。

例如:表中name列的屬性設定為not null,插入資料時,卻沒有屬於name的資料,此時插入失敗。

2、預設值 default

預設值:某一種資料會經常性的出現在某個具體的值,可以在一開始就指定好,在需要真實資料的時候,使用者可以選擇的使用預設值。

預設值的生效:資料在插入的時候不給該字段賦值,就使用預設值。

注意:set 和 enum不能使用預設值。

3、列描述 comment

comment,沒有實際意義,專門用來描述字段,會根據表建立語句儲存,用來提示。

4、zerofill

zerofill:列的乙個屬性。設定zerofill屬性後得到一種格式化輸出。

5、主鍵primary key

主鍵: primary key用來唯一的約束該字段裡的資料,不能重複,不能為空,主鍵所在的列是整數型別。一張表中最多只能有乙個主鍵。

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

②當表建立好以後,可以追加主鍵。

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

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

④刪除主鍵

alter table 表名 drop primary key;

6、自增長 auto_increment

auto_increment:當對應的字段,不給值,會自動的被系統觸發,系統會從當前欄位中已經有的最大值+1操作,得到乙個新的不同的值。通常和主鍵搭配使用,作為邏輯主鍵。

特點:①任何乙個欄位要做自增長,前提是本省是乙個索引;

②自增長字段必須是整數;

③一張表最多只能有乙個自增長。

7、唯一鍵 unique

一張表中有往往有很多字段需要唯一性,資料不能重複,但是一張表中只能有乙個主鍵:唯一鍵就可以解決表中有多個字段需要唯一性約束的問題。唯一鍵的本質和主鍵差不多,唯一鍵允許為空,而且可以多個為空,空字段不作為一比較。

MySQL基礎和表約束

改變資料庫的結構 更改系統的安全設定 增加使用者對資料庫或表的許可許可權 在資料庫中檢索需要的資訊 對資料庫的資訊進行更新 ddl 資料庫模式定義語言,關鍵字 create dml 資料操縱語言,關鍵字 insert delete update dcl 資料庫控制語言 關鍵字 grant remov...

Mysql 表的約束

約束型別 說明主鍵約束 primary key 要求主鍵列資料唯一,並且不允許空。主鍵可以包含表的一列或多列,如果包含火烈,則序號在表級定義。唯一約束 unique 要求該列唯一,允許為空。檢查約束 check 某列取值範圍限制 格式等限制,如年齡的約束。非空約束 not null 某類內容不能為空...

MySQL 表的約束

為了防止錯誤資料的產生,在mysql中定義了一些維護資料庫完整性的規則即表的約束,如下表所示 表的約束 約束條件 說明primary key 主鍵約束,用於標識唯一對應的記錄 例如賬號 foreign key 外來鍵約束 not null 非空約束 unique 唯一性約束 default 預設值約...