自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)據(jù)庫中常見的六種約束,有一種MySql不支持,你知道是哪個嗎?

數(shù)據(jù)庫 MySQL
對于每個程序員來說,數(shù)據(jù)庫系統(tǒng)無疑是很熟悉的軟件。對于數(shù)據(jù)庫中的約束,自然也經(jīng)常打交道了。

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

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

1、主鍵約束Primary Key

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

2、非空約束Not Null

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

3、唯一約束Unique

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

4、默認約束Default

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

5、外鍵約束Foreign Key

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

6、檢查約束Check

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

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

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

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

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

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

責任編輯:華軒 來源: 今日頭條
相關推薦

2023-10-30 11:53:37

繼承JS父類

2018-07-04 11:02:23

無線傳輸模式

2011-07-28 16:39:03

MySQL數(shù)據(jù)庫修改MySQL密碼

2022-02-14 10:30:37

Java方式框架

2019-09-02 11:14:08

隔離虛擬機操作系統(tǒng)

2025-01-21 10:04:40

Java并發(fā)阻塞隊列

2024-03-26 00:05:13

數(shù)據(jù)庫數(shù)據(jù)結(jié)構

2011-01-12 21:26:49

2025-04-17 07:10:03

API架構項目

2011-03-08 08:59:01

SQL Server數(shù)數(shù)據(jù)移動

2023-11-28 15:32:30

負載均衡算法

2024-11-11 06:20:00

緩存開發(fā)

2020-12-15 10:54:22

物聯(lián)網(wǎng)互聯(lián)網(wǎng)IoT

2023-03-08 16:54:28

MySQL數(shù)據(jù)庫

2013-07-30 14:19:34

大數(shù)據(jù)

2019-05-06 15:27:48

Oracle數(shù)據(jù)庫數(shù)據(jù)

2011-04-06 10:09:56

MySQL數(shù)據(jù)庫安裝

2020-10-27 10:33:01

物聯(lián)網(wǎng)

2011-07-29 13:17:35

HTML 5

2021-01-08 10:52:22

物聯(lián)網(wǎng)萬物互聯(lián)IoT,Interne
點贊
收藏

51CTO技術棧公眾號