SQL語(yǔ)法CONSTRAINT約束操作詳情
CONSTRAINT約束,即對(duì)數(shù)據(jù)庫(kù)表中的數(shù)據(jù)進(jìn)行約束,以保證數(shù)據(jù)記錄的完整性和有效性。
比較常用的是,創(chuàng)建表時(shí)添加約束,但是為了整理記錄,這里把所有的用法都寫下來(lái),但是大家按照最常見(jiàn)的重點(diǎn)掌握。
1.主鍵約束 primary key
#主鍵約束 primary key #添加主鍵 添加后系統(tǒng)會(huì)默認(rèn)為對(duì)應(yīng)的列添加索引 提高檢索速度? #方法一(單列主鍵):id int PRIMARY KEY //方法一是創(chuàng)建表時(shí) 當(dāng)前定義字段后 方法二是創(chuàng)建表時(shí) 所有定義字段后 #方法二(單|多列主鍵):CONSTRAINT pk1 PRIMARY KEY(name,deptId) //CONSTRAINT pk1可以省略 pk1是索引名 可以任意取 #方法三(創(chuàng)建表后添加):ALTER TABLE emp1 ADD PRIMARY KEY(eid) //可以是單列也可以是多列 #刪除主鍵 #ALTER TABLE emp1 DROP PRIMARY KEY //每個(gè)表只有一個(gè)主鍵 刪除的時(shí)候不分單列主鍵還是聯(lián)合主鍵 #主鍵作用是主鍵約束的列是唯一且非空
2.自增長(zhǎng)約束 auto_increment
#自增長(zhǎng)約束 auto_increment? #一般用來(lái)實(shí)現(xiàn)主鍵的自增長(zhǎng)約束 用戶就不再需要為其賦值 數(shù)據(jù)庫(kù)自動(dòng)賦值 默認(rèn)從1開(kāi)始 #id int PRIMARY KEY auto_increment #創(chuàng)建表時(shí)可以指定自增長(zhǎng)初始值 /*CREATE TABLE IF NOT EXISTS mydb1.employee( ?? ??? ?id int, ?? ??? ?name varchar(20), ?? ??? ?gender varchar(10), ?? ??? ?salary double )auto_increment=100;*/ #創(chuàng)建表后可以添加自增長(zhǎng)初始值 #ALTER TABLE emp2 auto_increment=100 #delete 后默認(rèn)自增長(zhǎng)從斷點(diǎn)開(kāi)始 #truncate 后默認(rèn)自增長(zhǎng)從1開(kāi)始(無(wú)論有無(wú)初始值)
3.非空約束 not null
#非空約束 not null ?//真正的空是NULL 而不是'NULL'或者'' #添加約束 #方法一:name varchar(20) not null #方法二:ALTER TABLE emp3 MODIFY name varchar(20) not null (創(chuàng)建表后添加) #刪除約束 #ALTER TABLE emp3 MODIFY name varchar(20)
4.唯一約束 unique
#唯一約束 unique #添加約束 ?//在mysql中NULL和任何值都不相同 包括它自己 #方法一:name varchar(20) unique #方法二:ALTER TABLE emp4 ADD CONSTRAINT unique_pn unique(name) (創(chuàng)建表后添加) #刪除約束 #ALTER TABLE emp4 DROP INDEX unique_pn // unique_pn 是約束名 若沒(méi)有名字 則默認(rèn)是使用的列名
5.默認(rèn)約束 default
#默認(rèn)約束 default #添加約束 #方法一:address varchar(20) DEFAULT '北京' #方法二:ALTER TABLE emp5 MODIFY address varchar(20) DEFAULT '北京' (創(chuàng)建表后添加) #刪除約束 #ALTER TABLE emp5 MODIFY address varchar(20) DEFAULT NULL
6.零填充約束 zerofill
#零填充約束 zerofill (顯示效果) 了解即可 #添加約束 #address varchar(20) zerofill #刪除約束 #ALTER TABLE emp6 MODIFY id int?
到此這篇關(guān)于SQL語(yǔ)法CONSTRAINT約束操作詳情的文章就介紹到這了,更多相關(guān)SQL語(yǔ)法CONSTRAINT約束操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
重裝MySQL最后一步失敗的完美解決方案(經(jīng)驗(yàn)總結(jié))
使用MySQL都有過(guò)重裝的經(jīng)歷,要是重裝MySQL基本都是在最后一步通不過(guò),究竟是什么原因呢?下面是我總結(jié)的一點(diǎn)經(jīng)驗(yàn),都是血的教訓(xùn)2014-06-06MySQL數(shù)據(jù)庫(kù)服務(wù)器逐漸變慢分析與解決方法分享
本文針對(duì)MySQL數(shù)據(jù)庫(kù)服務(wù)器逐漸變慢的問(wèn)題, 進(jìn)行分析,并提出相應(yīng)的解決辦法2012-01-01利用MySQL?Shell安裝部署MGR集群的詳細(xì)過(guò)程
MySQL?Shell是一個(gè)客戶端工具,可用于方便管理和操作MySQL,支持SQL、JavaScript、Python等多種語(yǔ)言,也包括完善的API,本文介紹如何利用MySQL?Shell?+?GreatSQL?8.0.25構(gòu)建一個(gè)三節(jié)點(diǎn)的MGR集群,感興趣的朋友一起看看吧2022-02-02MySql5.7.11編譯安裝及修改root密碼的方法小結(jié)
這篇文章主要介紹了MySql5.7.11編譯安裝及修改root密碼的方法小結(jié)的相關(guān)資料,需要的朋友可以參考下2016-04-04MySQL數(shù)據(jù)庫(kù)存儲(chǔ)引擎介紹及數(shù)據(jù)庫(kù)的操作詳解
mysql面試中最常問(wèn)的問(wèn)題之一:小伙子,你說(shuō)一下你們公司用的存儲(chǔ)引擎,以及你知道有哪些存儲(chǔ)引擎和他們之間的區(qū)別? 所以下面這篇文章主要給大家介紹了關(guān)于Mysql存儲(chǔ)引擎的相關(guān)資料,需要的朋友可以參考下2022-08-08