日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
數(shù)據(jù)庫中常見的六種約束,有一種MySql不支持,你知道是哪個(gè)嗎?

數(shù)據(jù)庫中的約束,顧名思義即是對插入數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行了一定的限定,這樣做的目的是為了保證數(shù)據(jù)的完整性和有效性。這樣會大幅度地提升數(shù)據(jù)庫中數(shù)據(jù)的質(zhì)量,節(jié)省數(shù)據(jù)庫空間和提高運(yùn)行效率。

公司專注于為企業(yè)提供網(wǎng)站制作、做網(wǎng)站、微信公眾號開發(fā)、購物商城網(wǎng)站建設(shè)微信小程序開發(fā),軟件按需開發(fā)網(wǎng)站等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。憑借多年豐富的經(jīng)驗(yàn),我們會仔細(xì)了解各客戶的需求而做出多方面的分析、設(shè)計(jì)、整合,為客戶設(shè)計(jì)出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,成都創(chuàng)新互聯(lián)更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù)。

那么,常見的數(shù)據(jù)庫約束有哪幾種呢?我們下面一起來看一下。

1、主鍵約束Primary Key

理論上來說,每一個(gè)數(shù)據(jù)表都應(yīng)該設(shè)置一個(gè)唯一主鍵,它就像身份證一樣,唯一標(biāo)識著這條數(shù)據(jù)。設(shè)置為主鍵的列不允許為空,也在全表里面唯一。

2、非空約束Not Null

非空約束意味著這張數(shù)據(jù)表中的某一列是必填字段,既不允許為空。就比如我們在使用很多網(wǎng)上系統(tǒng)的時(shí)候,用戶名密碼都不能為空一樣。

3、唯一約束Unique

唯一約束用來保護(hù)表中的某列數(shù)據(jù)不允許重復(fù),它與主鍵約束類似,但是級別沒有主鍵高。一份表中,唯一約束可以創(chuàng)建多個(gè),并且唯一約束的列通??梢詾榭铡MǔT谝粋€(gè)系統(tǒng)里面,類似于手機(jī)號、賬戶、郵箱等,都會被設(shè)置為唯一約束。

4、默認(rèn)約束Default

有些時(shí)候,我們插入數(shù)據(jù)的時(shí)候,不會把所有的數(shù)據(jù)列內(nèi)容都填入,因此,有些列會被設(shè)置一個(gè)默認(rèn)值,如果沒有給該列設(shè)置值,就會默認(rèn)值來填充。例如我們在很多系統(tǒng)里面,插入國籍的時(shí)候,默認(rèn)都是中國,除非自己去改動,否則就會使用默認(rèn)值。

5、外鍵約束Foreign Key

外鍵約束用于在兩個(gè)表之間的數(shù)據(jù)設(shè)立關(guān)聯(lián),例如一個(gè)城市屬于那個(gè)國家,這個(gè)國家的代碼應(yīng)該與國家表的主鍵相關(guān)聯(lián),即一個(gè)城市所屬的國家應(yīng)該存在于地球上,而不是會出現(xiàn)某個(gè)城市位于世界上沒有的國家。

6、檢查約束Check

檢查約束意為對該列的數(shù)值進(jìn)行檢查,例如說我們在做一個(gè)系統(tǒng)的時(shí)候,年齡這個(gè)字段,其取值范圍應(yīng)該不小于0,因?yàn)槭澜缟蠜]有小于0歲的人。而這個(gè)最大值也應(yīng)該有一個(gè)范圍。據(jù)說世界上活得最久的人是清朝的李清云,享年256歲,一生中娶了24位妻子,共有180位子女。雖然隨著科學(xué)的進(jìn)步,人們的壽命在增長。但是如果現(xiàn)在出現(xiàn)一個(gè)年齡為500歲的人,我們都會覺得數(shù)據(jù)一定是有問題的。

而這樣的問題是經(jīng)常會發(fā)生的。例如說2011年的時(shí)候,意大利農(nóng)業(yè)供應(yīng)管理局就在數(shù)據(jù)庫中將30多萬頭意大利奶牛的壽命從122個(gè)月提高到了999個(gè)月,導(dǎo)致很多奶牛在系統(tǒng)里面擁有了近乎“永久”的戶口,從而用于騙取歐盟的農(nóng)業(yè)補(bǔ)貼。

因此我們可以看到,檢查約束對于數(shù)據(jù)的完整性而言還是很有用的,雖然我們也可以將相關(guān)代碼在業(yè)務(wù)邏輯層實(shí)現(xiàn)。但是多一層保護(hù)都是好的,畢竟有修改數(shù)據(jù)庫權(quán)限的系統(tǒng)可能不止一個(gè)。

但是在流行的MySql數(shù)據(jù)庫里,check約束卻是不被支持的。不同于PostgresSQL等數(shù)據(jù)庫,在MYSQL中,CHECK只是一段可調(diào)用但毫無意義的子句。MySQL會直接忽略。如果想實(shí)現(xiàn)Check約束的話,可以考慮寫一個(gè)觸發(fā)器。

除了Check約束以外,還有很多其它數(shù)據(jù)庫支持而MySql不支持的操作,例如說不支持intersect操作、datetime不支持毫秒等。

但是這并不妨礙MySql被很多企業(yè)所使用,畢竟它的優(yōu)點(diǎn)還是很多的。


新聞名稱:數(shù)據(jù)庫中常見的六種約束,有一種MySql不支持,你知道是哪個(gè)嗎?
文章源于:http://www.dlmjj.cn/article/cdgdhed.html