常用的MySQL數(shù)據(jù)類型有哪些?
以下的文章主要向大家介紹的是MySQL數(shù)據(jù)類型,MySQL數(shù)據(jù)類型主要可以分成四種其中包括數(shù)值型、字符(串)型與日期和時(shí)間型與NULL值。如果你對(duì)這些數(shù)據(jù)庫(kù)類型十分感興趣的話,你就可以瀏覽以下的文章了。
1. MySQL數(shù)據(jù)類型
在MySQL中有如下幾種數(shù)據(jù)類型:
(1)數(shù)值型
數(shù)值是諸如32 或153.4 這樣的值。MySQL 支持科學(xué)表示法,科學(xué)表示法由整數(shù)或浮點(diǎn)數(shù)后跟“e”或“E”、一個(gè)符號(hào)(“+”或“-”)和一個(gè)整數(shù)指數(shù)來(lái)表示。1.24E+12 和23.47e-1 都是合法的科學(xué)表示法表示的數(shù)。而1.24E12 不是合法的,因?yàn)橹笖?shù)前的符號(hào)未給出。
浮點(diǎn)數(shù)由整數(shù)部分、一個(gè)小數(shù)點(diǎn)和小數(shù)部分組成。整數(shù)部分和小數(shù)部分可以分別為空,但不能同時(shí)為空。
數(shù)值前可放一個(gè)負(fù)號(hào)“-”以表示負(fù)值。
(2)字符(串)型
字符型(也叫字符串型,簡(jiǎn)稱串)是諸如“Hello, world!”或“一個(gè)饅頭引起的血案”這樣的值,或者是電話號(hào)碼87398413這樣的值。既可用單引號(hào)也可用雙引號(hào)將串值括起來(lái)。
初學(xué)者往往分不清數(shù)值87398143和字符串87398143的區(qū)別。都是數(shù)字啊,怎么一 個(gè)要用數(shù)值型,一個(gè)要用字符型呢?關(guān)鍵就在于:數(shù)值型的87398143是要參與計(jì)算的,比如它是金融中的一個(gè)貨款總額;而字符型的87398143是不 參與計(jì)算的,只是表示電話號(hào)碼,這樣的還有街道號(hào)碼、門牌號(hào)碼等等,它們都不參與計(jì)算。
(3)日期和時(shí)間型
日期和時(shí)間是一些諸如“2006-07-12”或“12:30:43”這樣的值。MySQL還支持日期/時(shí)間的組合,如“2006-07-12 12:30:43”。
(4)NULL值
NULL表示未知值。比如填寫表格中通訊地址不清楚留空不填寫,這就是NULL值。
我們用Create Table語(yǔ)句創(chuàng)建一個(gè)表(參看前面的章節(jié)),這個(gè)表中包含列的定義。例如我們?cè)谇懊鎰?chuàng)建了一個(gè)joke表,這個(gè)表中有content和writer兩個(gè)列:
定義一個(gè)列的語(yǔ)法如下:
其中列名由col_name 給出。列名可最多包含64個(gè)字符,字符包括字母、數(shù)字、下劃線及美元符號(hào)。列名可以名字中合法的任何符號(hào)(包括數(shù)字)開(kāi)頭。但列名不能完全由數(shù)字組成,因 為那樣可能使其與MySQL數(shù)據(jù)類型分不開(kāi)。MySQL保留諸如SELECT、DELETE和CREATE這樣的詞,這些詞不能用做列名,但是函數(shù)名(如POS 和MIN)是可以使用的。
列類型col_type表示列可存儲(chǔ)的特定值。列類型說(shuō)明符還能表示存放在列中的值的***長(zhǎng) 度。對(duì)于某些類型,可用一個(gè)數(shù)值明確地說(shuō)明其長(zhǎng)度。而另外一些值,其長(zhǎng)度由類型名蘊(yùn)含。例如,CHAR(10) 明確指定了10個(gè)字符的長(zhǎng)度,而TINYBLOB值隱含***長(zhǎng)度為255個(gè)字符。
有的類型說(shuō)明符允許指定***的顯示寬度(即顯示值時(shí)使用多少個(gè)字符)。浮 點(diǎn)類型允許指定小數(shù)位數(shù),所以能控制浮點(diǎn)數(shù)的精度值為多少。
可以在列類型之后指定可選的類型說(shuō)明屬性,以及指定更多的常見(jiàn)屬性。屬性起修飾類型的作用,并更改其處理列值的方式,屬性有以下類型:
(1)專用屬性用于指定列。例如,UNSIGNED 屬性只針對(duì)整型,而B(niǎo)INARY屬性只用于CHAR 和VARCHAR。
(2)通用屬性除少數(shù)列之外可用于任意列??梢灾付∟ULL 或NOT NULL 以表示某個(gè)列是否能夠存放NULL。還可以用DEFAULT,def_value 來(lái)表示在創(chuàng)建一個(gè)新行但未明確給出該列的值時(shí),該列可賦予值def_value。def_value 必須為一個(gè)常量;它不能是表達(dá)式,也不能引用其他列。不能對(duì)BLOB 或TEXT 列指定缺省值。
如果想給出多個(gè)列的專用屬性,可按任意順序指定它們,只要它們跟在列類型之后、通用屬性之前即可。類似地,如果需要給出多個(gè)通用屬性,也可按任意順序給出它們,只要將它們放在列類型和可能給出的列專用屬性之后即可。
2. MySQL的列(字段)類型
數(shù)據(jù)庫(kù)中的每個(gè)表都是由一個(gè)或多個(gè)列(字段)構(gòu)成的。在用CREATE TABLE語(yǔ)句創(chuàng)建一個(gè)表時(shí),要為每列(字段)指定一個(gè)類型。列(字段)的類型比MySQL數(shù)據(jù)類型更為細(xì)化,它精確地描述了給定表列(字段)可能包含的值的種類,如是否帶小數(shù)、是否文字很多。
【編輯推薦】