4.4.7添加約束

公司主營(yíng)業(yè)務(wù):網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出臨桂免費(fèi)做網(wǎng)站回饋大家。
語(yǔ)句格式:ALTER TABLE 表名ADD? CONSTRAINT? 約束名 約束類型(字段名)
上面語(yǔ)句格式中,“表名”指定要添加約束的是哪個(gè)表,“ADD CONSTRAINT”表示要在表中增加約束,其后的“約束名”是擬增加約束的名字,“約束類型”是擬增加約束的類型,其后括號(hào)里的“字段名”是指約束是在哪一個(gè)字段上建立起來(lái)的。
下面截圖中的“ALTER TABLE”語(yǔ)句在t_dept表中新增加了一個(gè)約束名為unidept的約束,它是在對(duì)字段deptno進(jìn)行的唯一性約束。
這是一項(xiàng)新功能,用于指定在插入或更新到一行之前檢查值的條件。如果表的任何行的搜索條件的結(jié)果為 FALSE,則約束可能返回錯(cuò)誤(但如果結(jié)果為 UNKNOWN 或 TRUE,則約束不會(huì)返回錯(cuò)誤)。此功能開始在 MySQL 8.0.16 上運(yùn)行,在以前的版本中,我們可以創(chuàng)建它,但它不起作用,這意味著支持語(yǔ)法,但不起作用。要牢記的使用規(guī)則:
AUTO_INCREMENT 自增列不允許使用
引用另一個(gè)表中的另一列不允許使用
存儲(chǔ)的函數(shù)和用戶定義的函數(shù)不允許使用
存儲(chǔ)過程和函數(shù)參數(shù)不允許使用
子查詢不允許使用
在外鍵中用于后續(xù)操作(ON UPDATE,ON DELETE)的列不允許使用
為下一條語(yǔ)句 INSERT,UPDATE,REPLACE,LOAD DATA 和 LOAD XML 評(píng)估此次監(jiān)測(cè)。此外,還會(huì)為 INSERT IGNORE,UPDATE IGNORE,LOAD DATA…IGNORE 和 LOAD XML…IGNORE 評(píng)估此監(jiān)測(cè)約束。對(duì)于這些語(yǔ)句,如果約束的評(píng)估結(jié)果為 FALSE,則會(huì)發(fā)生警告。插入或更新被跳過。
我們可以使用此功能在表中添加更多的邏輯,但是根據(jù)我以前作為程序員的經(jīng)驗(yàn),我不建議在表中添加邏輯,因?yàn)槌悄鸁o(wú)法訪問應(yīng)用程序代碼,否則很難找到或調(diào)試錯(cuò)誤。
一、Mysql支持以下約束:
※? 主鍵約束 :primary key
※? 唯一性約束:unique key
※? 外鍵約束:foreign key
※? 非空約束:not null
※? 默認(rèn)值約束:default
二、主鍵約束:
一個(gè)表只能有一個(gè)主鍵,當(dāng)建表時(shí)忘記設(shè)置主鍵約束時(shí).設(shè)置為主鍵的列查詢速度會(huì)非常快,所以一般會(huì)用聚集索引,這個(gè)我們后面會(huì)講到。
添加主鍵約束:設(shè)置myself表的age為主鍵
語(yǔ)法:alter? table 表名 add primary key;(列名)※? 可以有多個(gè)列名。
三、外鍵約束:
何為外鍵,當(dāng)建表時(shí)需要用到另外一個(gè)表的主鍵作為本表的的主鍵時(shí),需要設(shè)置外鍵。設(shè)置外間后,若想在刪除本表數(shù)據(jù)時(shí)會(huì)級(jí)聯(lián)刪除或者默認(rèn)刪除其他方式。
添加外鍵約束:設(shè)置本表的cno為外鍵
語(yǔ)法:alter table 表名稱 add foreign key (列名稱)? references? 關(guān)聯(lián)表名稱(列名稱);
四、非空約束:
當(dāng)插入新數(shù)據(jù)時(shí)對(duì)應(yīng)的列為不能空。非空約束是相對(duì)于默認(rèn)值約束而說的。
添加非空約束:
語(yǔ)法:alter table 表名 modify 列名 列類型 not null;?
五、默認(rèn)值約束:default:
當(dāng)插入時(shí)沒有插入值時(shí),會(huì)自動(dòng)插入默認(rèn)值。默認(rèn)值約束相對(duì)于非空約束而說。
添加默認(rèn)值約束:
語(yǔ)法:alter table 表名 add 列名 列類型 not null default '默認(rèn)值';
六、唯一性約束:
本列的內(nèi)容只能唯一不能重復(fù)。
添加唯一約束:
語(yǔ)法:alter table 列名 add unique(列名稱)? ※可以有多個(gè)列名稱,用逗號(hào)隔開。
文章題目:MySQL怎么加多個(gè)約束 mysql增加約束sql語(yǔ)句
本文鏈接:http://chinadenli.net/article2/hipgic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、全網(wǎng)營(yíng)銷推廣、營(yíng)銷型網(wǎng)站建設(shè)、企業(yè)建站、微信小程序、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容