日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL 约束语法

發(fā)布時間:2023/12/20 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 约束语法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

約束的概念

約束是作用于表中列上的規(guī)則,用于限制加入表的數(shù)據(jù)。 例如:我們可以給id列加約束,讓其值不能重復(fù),不能為null值。

約束的存在保證了數(shù)據(jù)庫中數(shù)據(jù)的正確性、有效性和完整性。添加約束可以在添加數(shù)據(jù)的時候就限制不正確的數(shù)據(jù),年齡是3000,數(shù)學成績是-5分這樣無效的數(shù)據(jù),繼而保障數(shù)據(jù)的 完整性。

通俗的說:就是讓數(shù)據(jù)庫表中的數(shù)據(jù)不出現(xiàn)邏輯上的錯誤

1、非空約束

非空約束用于保證列中所有數(shù)據(jù)不能有null值

語法:

創(chuàng)建表時添加約束:CREATE TABLE 表名( 字段名 數(shù)據(jù)類型 NOT NULL, … );

建完表后添加非空約束:alter table 表名 modify 字段名 數(shù)據(jù)類型 not null;

刪除非空約束:alter table 表名 modify 字段名 數(shù)據(jù)類型;

2、唯一約束

唯一約束用于保證列中所有數(shù)據(jù)各不相同

創(chuàng)建表時添加唯一約束:CREATE TABLE 表名( 列名 數(shù)據(jù)類型 UNIQUE [AUTO_INCREMENT],

-- AUTO_INCREMENT: 當不指定值時自動增長 … );

CREATE TABLE 表名( 列名 數(shù)據(jù)類型, … [CONSTRAINT] [約束名稱] UNIQUE(列名) );

創(chuàng)建表后添加唯一約束:alter table 表名 modify 字段名 數(shù)據(jù)類型 unique;

刪除唯一約束:alter table 表名 drop index 字段名;

3、主鍵約束

主鍵是一行數(shù)據(jù)的唯一標識,要求非空且唯一;

一張表只能有一個主鍵;

創(chuàng)建表時添加約束:CREATE TABLE 表名( 列名 數(shù)據(jù)類型 PRIMARY KEY [AUTO_INCREMENT], … );

CREATE TABLE 表名( 列名 數(shù)據(jù)類型, [CONSTRAINT] [約束名稱] PRIMARY KEY(列名) );

創(chuàng)建表后添加主鍵約束:alter table 表名 add primary key 列名;

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

4、默認約束

保存數(shù)據(jù)時,未指定值時則保存默認值

創(chuàng)建表時添加默認約束:CREATE TABLE 表名( 列名 數(shù)據(jù)類型 DEFAULT 默認值, … );

建完表后添加默認約束:alter table 表名 alter? 列名 set default 默認值;

刪除約束:alter table 表名 alter 列名 drop default;

5、外鍵約束

外鍵用來讓兩個表的數(shù)據(jù)之間進行連接,保證數(shù)據(jù)的一致性和完整性。

創(chuàng)建表時添加外鍵約束:CREATE TABLE 表名( 列名 數(shù)據(jù)類型, … [CONSTRAINT] [外鍵名稱] FOREIGN KEY(外鍵列名) REFERENCES 主表(主表列名) );

創(chuàng)建表后添加外鍵約束:

ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 FOREIGN KEY (外鍵字段名稱) REFERENCES 主表名稱(主表列名稱);

刪除外鍵約束:alter table 表名 drop foreign key 外鍵名稱;

6、約束,刪除更新行為

添加了外鍵之后,再刪除父表數(shù)據(jù)時產(chǎn)生的約束行為,我們就稱為刪除/更新行為。具體的刪除/更新行 為有以下幾種:

?演示

ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 FOREIGN KEY (外鍵字段) REFERENCES 主表名 (主表字段名) ON UPDATE CASCADE ON DELETE CASCADE; -- 將修改和刪除行為改為CASCADE

?

總結(jié)

以上是生活随笔為你收集整理的MySQL 约束语法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。