首頁(yè)技術(shù)文章正文

什么是數(shù)據(jù)類型?什么是數(shù)據(jù)約束?

更新時(shí)間:2022-10-18 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

大家都知道數(shù)據(jù)庫(kù)中的數(shù)據(jù)保存在數(shù)據(jù)表中,在表中為了更加準(zhǔn)確的存儲(chǔ)數(shù)據(jù),保證數(shù)據(jù)的正確有效,可以在創(chuàng)建表的時(shí)候,為表添加一些強(qiáng)制性的驗(yàn)證,比如:數(shù)據(jù)類型和約束。

1. 數(shù)據(jù)類型

數(shù)據(jù)類型是指在創(chuàng)建表的時(shí)候?yàn)楸碇凶侄沃付〝?shù)據(jù)類型,只有數(shù)據(jù)符合類型要求才能存儲(chǔ)起來(lái),使用數(shù)據(jù)類型的原則是:夠用就行,盡量使用取值范圍小的,而不用大的,這樣可以更多的節(jié)省存儲(chǔ)空間。

常用數(shù)據(jù)類型如下:

? 整數(shù):int,bit

? 小數(shù):decimal

? 字符串:varchar,char

? 日期時(shí)間: date, time, datetime

? 枚舉類型(enum)

數(shù)據(jù)類型說(shuō)明:

decimal表示浮點(diǎn)數(shù),如 decimal(5, 2) 表示共存5位數(shù),小數(shù)占 2 位.

char表示固定長(zhǎng)度的字符串,如char(3),如果填充'ab'時(shí)會(huì)補(bǔ)一個(gè)空格為'ab ',3表示字符數(shù)

varchar表示可變長(zhǎng)度的字符串,如varchar(3),填充'ab'時(shí)就會(huì)存儲(chǔ)'ab',3表示字符數(shù)

對(duì)于圖片、音頻、視頻等文件,不存儲(chǔ)在數(shù)據(jù)庫(kù)中,而是上傳到某個(gè)服務(wù)器上,然后在表中存儲(chǔ)這個(gè)文件的保存路徑.

字符串 text 表示存儲(chǔ)大文本,當(dāng)字符大于 4000 時(shí)推薦使用, 比如技術(shù)博客.

2. 數(shù)據(jù)約束

約束是指數(shù)據(jù)在數(shù)據(jù)類型限定的基礎(chǔ)上額外增加的要求,常見(jiàn)的約束如下:

主鍵 primary key: 物理上存儲(chǔ)的順序. MySQL 建議所有表的主鍵字段都叫 id, 類型為 int unsigned.

非空 not null: 此字段不允許填寫(xiě)空值.

惟一 unique: 此字段的值不允許重復(fù).

默認(rèn) default: 當(dāng)不填寫(xiě)字段對(duì)應(yīng)的值會(huì)使用默認(rèn)值,如果填寫(xiě)時(shí)以填寫(xiě)為準(zhǔn).


外鍵 foreign key: 對(duì)關(guān)系字段進(jìn)行約束, 當(dāng)為關(guān)系字段填寫(xiě)值時(shí), 會(huì)到關(guān)聯(lián)的表中查詢此值是否存在, 如果存在則填寫(xiě)成功, 如果不存在則填寫(xiě)失敗并拋出異常.





分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!