mysql新增構成組合約束 MySQL入門 約束

2021-10-18 11:40:27 字數 1629 閱讀 4487

約束

約束是給表中的資料新增的強制執行的校驗規則,被增、刪、改的資料必須符合約束條件,查詢到的資料才是合理的。

關係型資料庫中有5個完整性約束:

非空約束

唯一性約束

主鍵約束

外來鍵約束

檢查約束

非空約束:not null

值不能為空,列級約束,約束條件寫在列的後面,僅對某列有效

非空約束

唯一性約束:unique

值不能重複,(可以有多個null,null不是值),列級約束、表級約束。

寫在列的後面,可以給某一列新增唯一性約束。

唯一性列級約束

也可以寫在表的後面,給多列一起做唯一性約束。

唯一性表級約束

說明:id,name組合唯一性約束

給組合的約束鍵起名:

組合的**約束鍵**起名

主鍵約束:primary key

值非空且唯一,能夠唯一標識該條記錄,是列級約束或表級約束。一張表中只能有乙個主鍵。

主鍵約束

表級約束寫法:

表級約束寫法

外來鍵約束:foreign key

值是另一張表的主鍵,若有值一定是主鍵的值。主鍵表稱為主表,使用主鍵做外來鍵的表成為從表。首先定義主表,然後定義從表。使用外來鍵表必須是innodb引擎。

定義主表:

主表定義從表:

從表檢查約束:check

mysql不支援檢查約束

自增長auto_increment,一般用於主鍵,需要列為數值型別。

預設值deafult '預設值',設定字段預設值。

索引一張表對應3個檔案:

frm結構檔案

myd資料檔案

myi索引檔案

刪除對應檔案關係:

刪除命令

對應檔案

drop

刪除frm,myd,myi

truncate

刪除myi,myd刪除了日誌資訊

delete

刪除myd在myi檔案中保留著索引記錄

修改約束

alter語句修改約束

新增新列並設定主鍵:alter table 表名 add 列名 int primary key;

刪除主鍵:alter table 表名 drop primary key;

已有列新增主鍵:alter table 表名 add primary key(列名);

新增外來鍵:alter table 從表名 add constraint 從表外鍵名 foreign key(從表外來鍵列名) references 主表名(主表主鍵列名);

刪除外來鍵:alter table 從表名 drop foreign key 外鍵名 ;

唯一性約束的新增和刪除

新增:alter table add constraint 定義的約束名 unique (列名);

刪除:drop index 定義的約束名 on 表名

修改:alter table 表名 modify 列名 列型別;

預設值的新增和刪除

新增:alter table 表名 alter column 列名 set default 預設值;

刪除:alter table 表名 alter column 列名 drop default;

mysql新增構成組合約束 Mysql中約束詳解

約束定義 約束是用來限定表中資料準確性 完整性 一致性 聯動性的一套規則。在mysql中,約束儲存在information schema資料庫的table constraints中,可以通過該錶查詢約束資訊。如下圖 常見的約束 not null not null為非空約束,指定某一行的值不能為nul...

mysql 新增約束 mysql怎麼新增約束?

在mysql資料庫中,建表時就可以進行對錶的各項進行一些操作,例如新增主鍵約束或者非空約束 也可以在建表後進行新增約束和刪除約束的操作。下面本篇文章就來帶大家具體了解一下,希望對大家有所幫助。什麼是約束?約束實際上就是表中資料的限制條件 目的是為了保證表中的記錄完整和有效。常用的約束有 1 非空約束...

mysql新增約束

第一種,建立表時新增約束 create table table name 列名1 資料型別 int primary key auto increment,列名2 資料型別 not null,列名3 資料型別 unique,列名4 資料型別 default 值 constraint 索引名 forei...