MySQL 資料庫表的約束

2021-08-21 06:58:49 字數 1984 閱讀 8447

真正約束欄位的是資料型別,但是資料型別約束很單一,需要有一些額外的約束,更好的保證資料的合法性。

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

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

注意:set 和 enum不能設定預設值

comment,沒有實際含義,專門用來描述字段,會根據表建立語句儲存,用來給程式設計師或dba來進行了解。

通過show create table 表名可見

剛學資料庫時,許多人對數字型別後面的長度感到困惑。通過show create table 表名可以檢視。

有時會在乙個欄位後定義int(10)我們所知道的整型為四位元組,10時什麼意思呢?

其實在沒有zerofill這個屬性,括號內的數字是沒有任何意義的。

但是對列屬性加入zerofill屬性後,顯示的結果就有所不同了。

alter table 表名 change 列名 新列名 int(4) unisgned zerofill

這次可以看到a的值由原來的 1 變成 0001,這是zerofill屬性的作用,如果寬度小於設定的寬度(int後面括號中的值),自動填充0。但這只是顯示的結果,在mysql中實際儲存的還是 1 。

primary key

用來唯一的約束該欄位裡面的資料,不能重複,不能為空,主鍵所在的列是整數型別。

一張表最多只能有乙個主鍵建立表的時候直接在字段上指定主鍵。

key 中 pri 表示為主鍵欄位

刪除主鍵

alter table 表名 drop primary key

當表已經建立好,可以追加主鍵

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

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

一張表中可能會存在很多需要唯一性,資料不能重複的字段,但是一張表只能有乙個主鍵。唯一鍵可以解決多欄位需要唯一的約束問題。

唯一鍵本質和主鍵差不多,唯一鍵允許為null,且可以多字段為null,空字段不做比較。

資料庫 MySQL表的約束

1.空屬性 盡量保證定義表時,欄位不為空,資料為空就無法參與運算,需在定義欄位後加not null 2.預設值 某一列經常出現某個具體的值,可以在定義表結構是就指定預設值。定義欄位後加 default 預設值 若預設值後不加not null 則插入值可以設定成null值,當沒有插入值時,就會自動填上...

資料庫 表約束

非空且唯一 方式一 create table userid number,constraint pk user primary key userid username varchar2 10 方式二 create table userid number primary key,username va...

資料庫表約束

sql check約束 check約束屬性列內容的取值範圍。如果對單列進行check約束則只會對單列的取值有效。如果對錶進行check約束則對整張表的所有欄位都進行限制。eg 在建立persons表示為id p列建立check約束。此約束的約束範圍為 id p列的取值範圍不得小於0,要是大於0的整數...