MySQL 约束语法
約束的概念
約束是作用于表中列上的規則,用于限制加入表的數據。 例如:我們可以給id列加約束,讓其值不能重復,不能為null值。
約束的存在保證了數據庫中數據的正確性、有效性和完整性。添加約束可以在添加數據的時候就限制不正確的數據,年齡是3000,數學成績是-5分這樣無效的數據,繼而保障數據的 完整性。
通俗的說:就是讓數據庫表中的數據不出現邏輯上的錯誤
1、非空約束
非空約束用于保證列中所有數據不能有null值
語法:
創建表時添加約束:CREATE TABLE 表名( 字段名 數據類型 NOT NULL, … );
建完表后添加非空約束:alter table 表名 modify 字段名 數據類型 not null;
刪除非空約束:alter table 表名 modify 字段名 數據類型;
2、唯一約束
唯一約束用于保證列中所有數據各不相同
創建表時添加唯一約束:CREATE TABLE 表名( 列名 數據類型 UNIQUE [AUTO_INCREMENT],
-- AUTO_INCREMENT: 當不指定值時自動增長 … );
CREATE TABLE 表名( 列名 數據類型, … [CONSTRAINT] [約束名稱] UNIQUE(列名) );
創建表后添加唯一約束:alter table 表名 modify 字段名 數據類型 unique;
刪除唯一約束:alter table 表名 drop index 字段名;
3、主鍵約束
主鍵是一行數據的唯一標識,要求非空且唯一;
一張表只能有一個主鍵;
創建表時添加約束:CREATE TABLE 表名( 列名 數據類型 PRIMARY KEY [AUTO_INCREMENT], … );
CREATE TABLE 表名( 列名 數據類型, [CONSTRAINT] [約束名稱] PRIMARY KEY(列名) );
創建表后添加主鍵約束:alter table 表名 add primary key 列名;
刪除主鍵約束:alter table 表名 drop primary key;
4、默認約束
保存數據時,未指定值時則保存默認值
創建表時添加默認約束:CREATE TABLE 表名( 列名 數據類型 DEFAULT 默認值, … );
建完表后添加默認約束:alter table 表名 alter? 列名 set default 默認值;
刪除約束:alter table 表名 alter 列名 drop default;
5、外鍵約束
外鍵用來讓兩個表的數據之間進行連接,保證數據的一致性和完整性。
創建表時添加外鍵約束:CREATE TABLE 表名( 列名 數據類型, … [CONSTRAINT] [外鍵名稱] FOREIGN KEY(外鍵列名) REFERENCES 主表(主表列名) );
創建表后添加外鍵約束:
ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 FOREIGN KEY (外鍵字段名稱) REFERENCES 主表名稱(主表列名稱);
刪除外鍵約束:alter table 表名 drop foreign key 外鍵名稱;
6、約束,刪除更新行為
添加了外鍵之后,再刪除父表數據時產生的約束行為,我們就稱為刪除/更新行為。具體的刪除/更新行 為有以下幾種:
?演示
ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 FOREIGN KEY (外鍵字段) REFERENCES 主表名 (主表字段名) ON UPDATE CASCADE ON DELETE CASCADE; -- 將修改和刪除行為改為CASCADE?
總結
以上是生活随笔為你收集整理的MySQL 约束语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STL中vectortype的复制
- 下一篇: PHP点餐系统源码附小程序点餐系统