Mysql數據庫之約束條件詳解
一、主鍵約束
主鍵約束(PRIMARY KEY constraint)用于唯一標識數據庫表中的每條記錄。
語法:
create table 表名 ( 列名1 數據類型 primary key, 列名2 數據類型, ... );
在主鍵的后面添加:auto_increment, 可以讓主鍵自增。
設置auto_increment之后,可以不用設置id, id會自增。
創(chuàng)建表之后再創(chuàng)建主鍵的語法:alter table 表名 add primary key (列名1, 列名2, ...);
二、非空約束
非空約束是一種數據庫約束,用于確保表中的某個列不接受空值。當為表的某個列定義了非空約束后,插入或更新該列時,必須提供非空的值。
語法:
create table 表名 ( 列名 數據類型 not null, ... );
創(chuàng)建表之后再設置非空的語法:alter table 表名 modify 列名 數據類型 not null;
三、唯一約束
唯一約束是一種數據庫約束,用于確保表中的某個列或一組列的值是唯一的,即不允許重復值。唯一約束是一種數據完整性措施,它可以保證數據的唯一性和一致性。
語法:
create table 表名 ( 列名2 數據類型 unique, ... );
在創(chuàng)建好的表中添加唯一約束:alter table 表名 add constraint 約束名 unique (列名1, 列名2, ...);
四、默認值約束
默認值約束是一種數據庫約束,用于在插入數據時,如果未顯式為列指定值,則自動使用指定的默認值,是一種數據完整性措施,它確保了在缺少顯式值的情況下,表中的列始終具有默認值。
語法:
Create table 表名 ( 列名1 數據類型 default 默認值, 列名2 數據類型 default 默認值, ... );
在創(chuàng)建好的表中添加默認值約束:alter table 表名 alter colum 列名 set default 默認值;
五、外鍵約束
外鍵約束是一種數據庫約束,用于在相關表之間建立關聯關系,保持數據的完整性和一致性。
外鍵約束可以確保在一個表中的列值必須在另一個表中存在。
語法:
Create table 表名 ( 列名1 數據類型, 列名2 數據類型, ... foreign key (列名) references 關聯表名(關聯列名) );
例:作者和文章的關系是:1:N, 外鍵存在多的一方,所以外鍵設在文章表, 所以先創(chuàng)建作者表。
創(chuàng)建作者表:
創(chuàng)建文章表,并設置外鍵:
在創(chuàng)建好的表中添加外鍵約束(約束名自己命名):
alter table 表名 add constraint 約束名 foreign key (列名) references 關聯表名(關聯列名);
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
MySQL開啟慢查詢日志log-slow-queries的方法
MySQL中提供了一個慢查詢的日志記錄功能,可以把查詢SQL語句時間大于多少秒的語句寫入慢查詢日志,日常維護中可以通過慢查詢日志的記錄信息快速準確地判斷問題所在2016-05-05一文搞定MySQL binlog/redolog/undolog區(qū)別
這篇文章主要介紹了一文搞定MySQL binlog/redolog/undolog區(qū)別,作為開發(fā),我們重點需要關注的是二進制日志(binlog)和事務日志(包括redo log和undo log),本文接下來會詳細介紹這三種日志,需要的朋友可以參考下2023-04-04MySQL中distinct和count(*)的使用方法比較
這篇文章主要針對MySQL中distinct和count(*)的使用方法比較,對兩者之間的使用方法、效率進行了詳細分析,感興趣的小伙伴們可以參考一下2015-11-11