




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章數(shù)據(jù)類(lèi)型主要內(nèi)容3.2MySQL的數(shù)據(jù)類(lèi)型3.1何為數(shù)據(jù)類(lèi)型3.3性能3.4應(yīng)該選擇何種數(shù)據(jù)類(lèi)型3.1何為數(shù)據(jù)類(lèi)型列的數(shù)據(jù)類(lèi)型定義了可存儲(chǔ)何種類(lèi)型的值,以及如何存儲(chǔ)。另外,也可能存在與數(shù)據(jù)類(lèi)型關(guān)聯(lián)的一些元屬性,如大小(例如用于數(shù)字的字節(jié)數(shù),字符串中包含的最大字符數(shù)量等),以及用于字符串的字符集和排序規(guī)則等。盡管數(shù)據(jù)類(lèi)型屬性似乎不是什么必要的限制,但它們也自有好處。其中包括:數(shù)據(jù)驗(yàn)證文檔優(yōu)化存儲(chǔ)性能正確排序3.1.1數(shù)據(jù)驗(yàn)證數(shù)據(jù)類(lèi)型概念的核心,就是定義所允許的值類(lèi)型。定義為整數(shù)類(lèi)型的列,只能存儲(chǔ)整數(shù)值。這是一種保障措施。也是一種限制。3.1.2文檔MySQL提供了多種用來(lái)記錄列的方法:使用可描述值的列名、COMMENT列子句、CHECK約束以及數(shù)據(jù)類(lèi)型。數(shù)據(jù)類(lèi)型有助于描述你所期望的數(shù)據(jù)類(lèi)型。如果選擇date列而不是datetime列,那么顯然你打算只存儲(chǔ)日期部分。使用tinyint而非int,則表明你更期望使用較小的值。設(shè)置恰當(dāng)?shù)臄?shù)據(jù)類(lèi)型可以間接地幫助優(yōu)化查詢(xún)。3.1.3優(yōu)化存儲(chǔ)MySQL會(huì)以不同的方式來(lái)存儲(chǔ)所有數(shù)據(jù)。選擇給定數(shù)據(jù)類(lèi)型的存儲(chǔ)格式,應(yīng)該使其盡可能緊湊,以便減少存儲(chǔ)空間。選擇正確的列最大容量,可減少所需的存儲(chǔ)空間。注意不要過(guò)度優(yōu)化。很多情況下,更改數(shù)據(jù)類(lèi)型或列的大小需要重建整張表。如果表很大,這樣做代價(jià)很高。3.1.4性能各種數(shù)據(jù)類(lèi)型在創(chuàng)建時(shí)成本不同。通過(guò)選擇正確的數(shù)據(jù)類(lèi)型,就可顯著提升查詢(xún)性能。如果兩個(gè)列的值相對(duì)應(yīng),要確保它們具有相同的數(shù)據(jù)類(lèi)型,包括字符集和字符串排序規(guī)則。3.1.5正確排序日期類(lèi)型對(duì)值的排序方式具有重大影響。雖然人腦可以很直觀地理解數(shù)據(jù),但計(jì)算機(jī)則需要一些幫助才能理兩個(gè)值之間是如何進(jìn)行比較的。因此,數(shù)據(jù)類(lèi)型和如何對(duì)比字符串將是用于確保數(shù)據(jù)能正確排序的關(guān)鍵屬性。排序的重要原因有二:正確的排序可以快速知道兩個(gè)值是否相等,或者一個(gè)值是否在給定范圍內(nèi)。創(chuàng)建索引時(shí),排序能確保MySQL快速找到你想要的值。3.2MySQL的數(shù)據(jù)類(lèi)型1.整型數(shù)據(jù)類(lèi)型Bigint數(shù)據(jù)類(lèi)型可以表示-263~263-1范圍內(nèi)的所有整數(shù)。在數(shù)據(jù)庫(kù)中占用8個(gè)字節(jié)。int數(shù)據(jù)類(lèi)型可以表示-231~231-1范圍內(nèi)的所有整數(shù)。在數(shù)據(jù)庫(kù)中占用4個(gè)字節(jié)。Smallint數(shù)據(jù)類(lèi)型可以表示-215~215-1范圍內(nèi)的所有整數(shù)。在數(shù)據(jù)庫(kù)中占用2個(gè)字節(jié)。這種數(shù)據(jù)類(lèi)型對(duì)表示一些常常限定在特定范圍內(nèi)的數(shù)值型數(shù)據(jù)非常有用。Tinyint數(shù)據(jù)類(lèi)型可以表示0~255之間的整數(shù),在數(shù)據(jù)庫(kù)中占用1個(gè)字節(jié)。這種數(shù)據(jù)類(lèi)型對(duì)表示有限數(shù)目的數(shù)值型數(shù)據(jù)非常有用。2.浮點(diǎn)型數(shù)據(jù)類(lèi)型浮點(diǎn)型數(shù)據(jù)類(lèi)型可以表示包含小數(shù)的十進(jìn)制數(shù)。包含精確數(shù)值型和近似數(shù)值型。(1)精確數(shù)值型(2)近似數(shù)值型:不能精確記錄數(shù)據(jù)的精度,所保留的精度由二進(jìn)制數(shù)字系統(tǒng)的精度決定。SQLsever提供了兩種近似數(shù)值型數(shù)據(jù)類(lèi)型。3.字符型數(shù)據(jù)類(lèi)型字符類(lèi)型表示符號(hào)用法ANSI字符char存儲(chǔ)指定長(zhǎng)度的字符串varchar存儲(chǔ)可變長(zhǎng)度字符text存儲(chǔ)大量非Unicode字符Unicode字符nchar用于存儲(chǔ)Unicode字符nvarchar與varchar類(lèi)似,存儲(chǔ)可變長(zhǎng)度Unicode字符ntext與text類(lèi)似,存儲(chǔ)大量Unicode字符數(shù)據(jù)char類(lèi)型存儲(chǔ)字符數(shù)據(jù)時(shí),每一個(gè)字符占一個(gè)字節(jié)大小。使用char類(lèi)型時(shí),應(yīng)該給定數(shù)據(jù)的最大長(zhǎng)度,定義格式為:char(n)如果沒(méi)有指定n的大小,默認(rèn)值是1,最長(zhǎng)可以容納8000個(gè)字符;如果實(shí)際數(shù)據(jù)的字符長(zhǎng)度大于給定的最大長(zhǎng)度時(shí),超過(guò)的字符將會(huì)被截?cái)?;若?shí)際數(shù)據(jù)的字符長(zhǎng)度小于給定的最大長(zhǎng)度時(shí),多余的字節(jié)被系統(tǒng)使用空格填充。varchar的使用方式與char基本相同。它們的區(qū)別在于:當(dāng)列中字符長(zhǎng)度基本一致時(shí)(如學(xué)號(hào)、姓名等),可以使用char類(lèi)型;當(dāng)數(shù)據(jù)長(zhǎng)度相差較大時(shí)(如備注),使用varchar類(lèi)型可以節(jié)省存儲(chǔ)空間;當(dāng)數(shù)據(jù)有可能涉及到英語(yǔ)外其他語(yǔ)言時(shí),應(yīng)該使用Unicode字符編碼。每一個(gè)Unicode字符需要兩個(gè)字節(jié)存儲(chǔ),因此,Unicode格式比ANSI格式有更大的字符集范圍:ANSI字符集僅有256個(gè)字符,Unicode字符集有65536個(gè)不同的字符。使用Unicode字符可以在表的一個(gè)列中同時(shí)出現(xiàn)中文、英文、法文等,而不會(huì)出現(xiàn)編碼沖突。通常使用以下方式來(lái)表示Unicode字符:
N’Unicode字符’nchar和nvarchar分別用于存儲(chǔ)固定長(zhǎng)度和可變長(zhǎng)度的Unicode字符數(shù)據(jù);text和ntext,分別對(duì)應(yīng)存儲(chǔ)長(zhǎng)度很大的ANSI字符和Unicode字符數(shù)據(jù)。微軟公司建議,用戶(hù)應(yīng)該避免使用text和ntext數(shù)據(jù)類(lèi)型,而使用varchar和nvarchar存儲(chǔ)大文本數(shù)據(jù)。4.日期時(shí)間數(shù)據(jù)類(lèi)型data數(shù)據(jù)類(lèi)型:只存儲(chǔ)日期型數(shù)據(jù)類(lèi)型,存儲(chǔ)用字符串表示的日期數(shù)據(jù),不存儲(chǔ)時(shí)間數(shù)據(jù),可以表示取值范圍從0001-01-01到9999-12-31(公元元年1月1日到公元9999年12月31日)間的任意日期值。引入date類(lèi)型,克服了datetime類(lèi)型中既有日期又有時(shí)間的缺陷,使對(duì)日期的查詢(xún)更加方便。數(shù)據(jù)格式為“YYYY-MM-DD”:YYYY:用來(lái)表示年份的四位數(shù)字,其取值范圍為0001~9999;MM:用來(lái)表示指定年份中月份的兩位數(shù)字,其取值范圍為01~12;DD:用來(lái)表示指定月份中某一天的兩位數(shù)字,其取值范圍為01~31(其最高值取決于具體的月份天數(shù))。time數(shù)據(jù)類(lèi)型:與date數(shù)據(jù)類(lèi)型類(lèi)似,以字符的形式記錄一天的某個(gè)時(shí)間。如果只想存儲(chǔ)時(shí)間數(shù)據(jù)而不需要存儲(chǔ)日期部分就可以利用time數(shù)據(jù)類(lèi)型,取值范圍從00:00:00.0000000到23:59:59.9999999。數(shù)據(jù)格式為“hh:mm:ss[.nnnnnnn]”:hh:用來(lái)表示小時(shí)的兩位數(shù)字,其取值范圍為0~23。mm:用來(lái)表示分鐘的兩位數(shù)字,其取值范圍為0~59。ss:用來(lái)表示秒的兩位數(shù)字,其取值范圍為0~59。n*是0~7為數(shù)字,其取值范圍為0~9999999,它表示秒的小部分。time值在存儲(chǔ)時(shí)占用的空間是5個(gè)字節(jié)。Datetime:Datetime可以用來(lái)表示從1753年1月1日到9999上12月31日之間的日期和時(shí)間數(shù)據(jù),當(dāng)插入數(shù)據(jù)或在其它地方使用時(shí),需用單引號(hào)或雙引號(hào)括起來(lái)。該類(lèi)型數(shù)據(jù)占用8個(gè)字節(jié)的空間。精確度為3%s(3ms或0.003s)。Smalldatetime:Smalldatetime類(lèi)型與Datetime類(lèi)型相似,其表示的是自1900年1月1日到2079年12月31日之間的的日期和時(shí)間數(shù)據(jù),精確度為1分鐘。當(dāng)日期時(shí)間精度較小時(shí),使用Smalldatetime,該類(lèi)型數(shù)據(jù)占用4個(gè)字節(jié)的存儲(chǔ)空間。datetime2數(shù)據(jù)類(lèi)型:datetime2是datetime的擴(kuò)展類(lèi)型,是一種將日期和時(shí)間混合的數(shù)據(jù)類(lèi)型,不過(guò)其時(shí)間部分秒數(shù)的小數(shù)部分可以保留不同位數(shù)的值,比datetime數(shù)據(jù)類(lèi)型的取值范圍更廣,默認(rèn)的最小精度最高,并具有可選的用戶(hù)定義的精度??梢源鎯?chǔ)從公元元年1月1日到9999年12月31日的日期。用戶(hù)可以根據(jù)自己的需要設(shè)置不同的參數(shù)來(lái)設(shè)定小數(shù)位數(shù),最高可以設(shè)定到小數(shù)點(diǎn)后七位(參數(shù)為7),也可以不要小數(shù)部分(參數(shù)為0),以此類(lèi)推。datetimeoffset數(shù)據(jù)類(lèi)型:用于存儲(chǔ)與特定的日期和時(shí)區(qū)相關(guān)的日期和時(shí)間,采用24小時(shí)制與日期相組合并可識(shí)別時(shí)區(qū)的時(shí)間。這種數(shù)據(jù)類(lèi)型的日期和時(shí)間存儲(chǔ)為協(xié)調(diào)世界時(shí)(CoordinatedUniversalTime,UTC)的值,然后,根據(jù)與該值相關(guān)的時(shí)區(qū)來(lái)定義要增加或減少的時(shí)間數(shù)。datetimeoffset類(lèi)型是由年、月、日、小時(shí)、分鐘、秒和小數(shù)秒組成的時(shí)間戳結(jié)構(gòu)。小數(shù)秒的最大小數(shù)位數(shù)為7。5.位數(shù)據(jù)類(lèi)型Bit稱(chēng)為位數(shù)據(jù)類(lèi)型,只能取0或1為值,其長(zhǎng)度為1字節(jié)。Bit數(shù)據(jù)類(lèi)型可以表示1、0或NULL數(shù)據(jù)。Bit用作條件邏輯判斷時(shí),可以來(lái)判斷TRUE(1)或FALSE(0)數(shù)據(jù),輸入非零值時(shí),系統(tǒng)會(huì)將其替換為1。6.貨幣數(shù)據(jù)類(lèi)型貨幣數(shù)據(jù)類(lèi)型可以用于存儲(chǔ)貨幣或現(xiàn)金值,其包括MONEY型和SMALLMONEY型兩種。在使用貨幣數(shù)據(jù)類(lèi)型時(shí),需要在數(shù)據(jù)前加上貨幣符號(hào),以便系統(tǒng)辨識(shí)其為哪國(guó)的貨幣,如果不加貨幣符號(hào),則系統(tǒng)默認(rèn)為“¥”。MONEY:用于存儲(chǔ)貨幣值,存儲(chǔ)在Money數(shù)據(jù)類(lèi)型中的數(shù)值以一個(gè)正數(shù)部分和一個(gè)小數(shù)部分存儲(chǔ)在兩個(gè)4字節(jié)的整型值中,其取值范圍從-263~263-1,精確到貨幣單位的千分之十。Money數(shù)據(jù)類(lèi)型中整數(shù)部分包含有19個(gè)數(shù)字,小數(shù)部分包含有4個(gè)數(shù)字,因此Money數(shù)據(jù)類(lèi)型的精度是19,存儲(chǔ)時(shí)占用的存儲(chǔ)空間為8個(gè)字節(jié)。SMALLMONEY:與MONEY數(shù)據(jù)類(lèi)型類(lèi)似,取值范圍為-214748.3648~214748.3647,其存儲(chǔ)的貨幣值范圍比MONEY數(shù)據(jù)類(lèi)型小,SMALLMONEY存儲(chǔ)時(shí)占用的存儲(chǔ)空間為4個(gè)字節(jié)。7.二進(jìn)制數(shù)據(jù)類(lèi)型二進(jìn)制數(shù)據(jù)類(lèi)型包括Binary[(n)]和varbinay[(n)]兩種:Binary[(n)]:表示固定長(zhǎng)度的n個(gè)字節(jié)的二進(jìn)制數(shù)據(jù)。n取值必須在1~8000范圍內(nèi),在數(shù)據(jù)庫(kù)中存儲(chǔ)在n個(gè)字節(jié)中。varbinay[(n|max)]:表示可變長(zhǎng)度的二進(jìn)制數(shù)據(jù)。n取值必須在1~8000范圍內(nèi)。Max表示最大存儲(chǔ)大小為231-1字節(jié)。對(duì)于varbinary類(lèi)型的數(shù)據(jù),存儲(chǔ)大小為所輸入數(shù)據(jù)的實(shí)際長(zhǎng)度加2個(gè)字節(jié)。8.文本和圖形數(shù)據(jù)類(lèi)型文本和圖形數(shù)據(jù)類(lèi)型如下:Text數(shù)據(jù)類(lèi)型:用來(lái)聲明變長(zhǎng)的字符數(shù)據(jù),用于存儲(chǔ)文本數(shù)據(jù),服務(wù)器代碼頁(yè)中長(zhǎng)度可變的非Unicode數(shù)據(jù)。在定義過(guò)程中,不需要指定字符的長(zhǎng)度,最大長(zhǎng)度為231-1個(gè)字節(jié)。當(dāng)服務(wù)器代碼頁(yè)使用雙字節(jié)時(shí),存儲(chǔ)量仍為231-1個(gè)字節(jié)。存儲(chǔ)大小也可能小于231-1個(gè)字節(jié)(取決于字符串)。Ntext數(shù)據(jù)類(lèi)型:ntext數(shù)據(jù)類(lèi)型與text數(shù)據(jù)類(lèi)型的作用相同,是長(zhǎng)度可變的Unicode數(shù)據(jù),其最大長(zhǎng)度范圍是230-1個(gè)字節(jié),我存儲(chǔ)大小是輸入字符個(gè)數(shù)的兩倍。Image數(shù)據(jù)類(lèi)型:表示可變長(zhǎng)度的二進(jìn)制數(shù)據(jù),范圍在0~231-1字節(jié)之間。用來(lái)存儲(chǔ)照片、目錄圖片或者圖畫(huà)等,其存儲(chǔ)量也是231-1個(gè)字節(jié)。Image類(lèi)型的數(shù)據(jù)是由系統(tǒng)根據(jù)數(shù)據(jù)的長(zhǎng)度來(lái)自動(dòng)分配空間,存儲(chǔ)該字段的數(shù)據(jù)一般不能使用insert語(yǔ)句直接輸入。二進(jìn)制常量以0x(一個(gè)零和小寫(xiě)字母x)開(kāi)始,后面跟位模式的十六進(jìn)制表示。0x2A表示的是十六進(jìn)制值2A,它等于十進(jìn)制的數(shù)值42或者單字節(jié)位模式的00101010。9.其他數(shù)據(jù)類(lèi)型除了以上數(shù)據(jù)類(lèi)型以外,系統(tǒng)數(shù)據(jù)類(lèi)型還有如下幾種:Cursor:游標(biāo)數(shù)據(jù)類(lèi)型,該類(lèi)型類(lèi)似于數(shù)據(jù)表,它保存的數(shù)據(jù)中包含行和列值,但是沒(méi)有索引,游標(biāo)通常用來(lái)建立一個(gè)數(shù)據(jù)的數(shù)據(jù)集,用于創(chuàng)建游標(biāo)變量或者定義存儲(chǔ)過(guò)程的輸出參數(shù),每次處理一行數(shù)據(jù)。它是唯一一種不能賦值給表的列字段的基本數(shù)據(jù)類(lèi)型。table數(shù)據(jù)類(lèi)型:table數(shù)據(jù)類(lèi)型可以用于存儲(chǔ)對(duì)表或視圖處理后的結(jié)果集,能夠用來(lái)保存函數(shù)結(jié)果,并將其作為局部變量數(shù)據(jù)類(lèi)型,可以暫時(shí)存儲(chǔ)應(yīng)用程序的結(jié)果,以便在以后用到,從而使函數(shù)或過(guò)程返回查詢(xún)結(jié)果更加方便、快捷。rowversion:每個(gè)數(shù)據(jù)都有一個(gè)計(jì)數(shù)器,如果對(duì)數(shù)據(jù)庫(kù)中包含rowversion列的表執(zhí)行插入或者更新操作,那么該計(jì)數(shù)器數(shù)值就會(huì)增加。Rowversion是公開(kāi)數(shù)據(jù)庫(kù)中自動(dòng)生成的唯一二進(jìn)制數(shù)字的數(shù)據(jù)類(lèi)型。rowversion通常用作給表行加版本戳的機(jī)制。在數(shù)據(jù)庫(kù)中存儲(chǔ)大小為8個(gè)字節(jié)。rowversion數(shù)據(jù)類(lèi)型只是遞增的數(shù)字,并不保留日期或時(shí)間。TIMESTAMP:是一個(gè)特殊的用于表示先后順序的時(shí)間戳數(shù)據(jù)類(lèi)型。該數(shù)據(jù)類(lèi)型可以為表中數(shù)據(jù)行加上一個(gè)版本戳。timestamp的數(shù)據(jù)類(lèi)型為rowversion數(shù)據(jù)類(lèi)型的同義詞,提供數(shù)據(jù)庫(kù)范圍內(nèi)的唯一值,能夠反映數(shù)據(jù)修改的唯一順序,是一個(gè)單調(diào)上升的計(jì)數(shù)器,此列的值是被自動(dòng)更新的。實(shí)現(xiàn)timestamp數(shù)據(jù)類(lèi)型最初是為了支持SQLServer恢復(fù)算法。每一個(gè)數(shù)據(jù)庫(kù)都有一個(gè)時(shí)間戳計(jì)數(shù)器,當(dāng)對(duì)該數(shù)據(jù)庫(kù)中包含timestamp列的表執(zhí)行插入或更新操作時(shí),計(jì)數(shù)器值就會(huì)增加。這樣,可以輕易地確定表中的某個(gè)數(shù)據(jù)行的值是否在上次讀取后發(fā)生了更新:如果發(fā)生了更新,則該時(shí)戳計(jì)數(shù)器的值也發(fā)生了變化??梢允褂聾@DBTS函數(shù)返回?cái)?shù)據(jù)庫(kù)的時(shí)戳值。UNIQUEIDENTIFIER:UNIQUEIDENTIFIER是一個(gè)具有16字節(jié)的全球唯一性標(biāo)志符(GloballyUniqueIdentifier,GUID),能夠用來(lái)確保對(duì)象的唯一性。在定義列或變量時(shí)可以使用該數(shù)據(jù)類(lèi)型,在合并復(fù)制和事務(wù)復(fù)制中確保表中數(shù)據(jù)行的唯一性。sql_variant:能夠用于存儲(chǔ)除了文本、圖形數(shù)據(jù)和timestamp數(shù)據(jù)以外的其它任何合法的SqlServer數(shù)據(jù),sql_variant數(shù)據(jù)類(lèi)型可以方便SqlServer的開(kāi)發(fā)工作。該數(shù)據(jù)類(lèi)型可以用在列、變量、用戶(hù)定義的函數(shù)等返回值中XML:XML是用于存儲(chǔ)XML數(shù)據(jù)的數(shù)據(jù)類(lèi)型??梢韵袷褂肐nt數(shù)據(jù)類(lèi)型一樣使用XML數(shù)據(jù)類(lèi)型。能在列中或者xml類(lèi)型的變量中存儲(chǔ)xml實(shí)例。需要注意的是,在XML數(shù)據(jù)類(lèi)型中存儲(chǔ)的數(shù)據(jù)實(shí)例的最大值不能超過(guò)2GB。3.2MySQL數(shù)據(jù)庫(kù)類(lèi)型MySQL中的數(shù)據(jù)類(lèi)型可分為如下幾類(lèi)。數(shù)值類(lèi)型(Numeric):這包括整數(shù)、固定精度的十進(jìn)制類(lèi)型、近似精度的浮點(diǎn)類(lèi)型,以及位(bit)類(lèi)型。日期和時(shí)間類(lèi)型(Temporal):這包括年、日期、時(shí)間、日期和時(shí)間以及時(shí)間戳。字符串類(lèi)型(Strings):包括二進(jìn)制對(duì)象和帶有字符集的字符串。JSON類(lèi)型(JSON):用于存儲(chǔ)JSON文檔??臻g數(shù)據(jù)類(lèi)型(Spatial):用于存儲(chǔ)描述坐標(biāo)系統(tǒng)中的一個(gè)或多個(gè)點(diǎn)的值?;旌蠑?shù)據(jù)類(lèi)型(Hybrid):MySQL中有兩種數(shù)據(jù)類(lèi)型,既可作為整數(shù)類(lèi)型,也可作為字符串類(lèi)型。3.2.1數(shù)值類(lèi)型數(shù)值類(lèi)型是MySQL支持的最簡(jiǎn)單的數(shù)據(jù)類(lèi)型??稍谡麛?shù)、固定精度的十進(jìn)制以及近似浮點(diǎn)型之間進(jìn)行選擇。表3-1總結(jié)了MySQL中的數(shù)值類(lèi)型。包括它們的存儲(chǔ)需求(以字節(jié)為單位)以及支持的值的范圍。對(duì)于整數(shù)而言,可以選擇值是有符號(hào)還是無(wú)符號(hào)的,這會(huì)影響支持的值的范圍。對(duì)于支持的值,其起始值和結(jié)束值都包含在所允許的值范圍內(nèi)。MySQL中的數(shù)值類(lèi)型表數(shù)據(jù)類(lèi)型存儲(chǔ)字節(jié)范圍tinyint1有符號(hào):-128~127無(wú)符號(hào):0~255smallint2有符號(hào):-32768~32767無(wú)符號(hào):0~65535mediumint3有符號(hào):-8388608~8388607無(wú)符號(hào):0~16777215int4有符號(hào):-2147483648~2147483647無(wú)符號(hào):0~4294967295bigint8有符號(hào):-263~263-1無(wú)符號(hào):0~264-1decimal(M,N)1~29取決于M和Nfloat4可變double8可變bit(M)1~83.2.2日期和時(shí)間類(lèi)型日期和時(shí)間類(lèi)型的數(shù)據(jù)定義了一個(gè)時(shí)間點(diǎn)。精度范圍從1年到1微秒。除了年數(shù)據(jù)類(lèi)型外,值均以字符串形式輸入,不過(guò)內(nèi)部則使用優(yōu)化的數(shù)據(jù)格式,并且這些值將根據(jù)其所表示的時(shí)間點(diǎn)進(jìn)行正確排序。表3-2列出MySQL支持的日期和時(shí)間數(shù)據(jù)類(lèi)型,也包括每種類(lèi)型使用的字節(jié)存儲(chǔ)量,以及支持的值范圍。表3-2
日期和時(shí)間數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型存儲(chǔ)的字節(jié)數(shù)范圍year11901~2155date3~6'1000-01-01'到'9999-12-31'datetime5~8'1000-01-0100:00:00.000000'到'9999-12-3123:59:59.999999'timestamp4~7'1970-01-0100:00:00.000000'到'2038-01-1903:14:07.999999'time3~6'38:59:59.000000'到'838:59:59.000000'3.2.3字符串與二進(jìn)制類(lèi)型字符串和二進(jìn)制類(lèi)型是用于存儲(chǔ)任意數(shù)據(jù)的非常靈活的類(lèi)型。二進(jìn)制值和字符串之間的區(qū)別在于,字符串有與之關(guān)聯(lián)的字符集,因此MySQL知道該如何解釋數(shù)據(jù)。另一方面,二進(jìn)制則存儲(chǔ)原始數(shù)據(jù),這意味著可將其用于任何類(lèi)型的數(shù)據(jù),包括圖形以及自定義數(shù)據(jù)格式的數(shù)據(jù)。數(shù)據(jù)類(lèi)型存儲(chǔ)字節(jié)最大長(zhǎng)度char(M)M*字符寬度255個(gè)字符varchar(M)L+1或L+2對(duì)于utf8mb4而言,為16383個(gè)字符;對(duì)于latin1而言,為65532個(gè)字符tinytextL+1255字節(jié)textL+265535字節(jié)mediumtextL+316777216字節(jié)longtextL+44294967296字節(jié)binary(M)M255字節(jié)varbinary(M)L+1或者L+265535字節(jié)tinyblobL+1255字節(jié)blobL+265536字節(jié)mediumblobL+316777216字節(jié)longblobL+44294967296字節(jié)3.2.4JSON數(shù)據(jù)類(lèi)型JavaScript對(duì)象表示法(JSON)格式是一種比關(guān)系型表更靈活的流行數(shù)據(jù)存儲(chǔ)格式,也是MySQL8為文檔存儲(chǔ)選擇的格式。MySQL5.7開(kāi)始引入對(duì)JSON數(shù)據(jù)類(lèi)型的支持。在MySQL8中,JSON文檔的一項(xiàng)與性能相關(guān)的功能是支持部分更新操作。這樣就可對(duì)JSON文檔進(jìn)行更新,這不僅減少了更新操作時(shí)完成的工作量,還可只將部分更新寫(xiě)入二進(jìn)制日志。當(dāng)然,對(duì)于這樣的原地(in-place)更新操作,還是有一些要求的。具體如下:● 只支持JSON_SET()、JSON_REPLACE()和JSON_REMOVE()函數(shù)?!?只支持列內(nèi)更新。也就是說(shuō),不支持將列的值設(shè)置為在另一列上運(yùn)行上述3個(gè)函數(shù)所得到的返回值?!?必須是對(duì)現(xiàn)有值的替換操作。如果是添加新的對(duì)象
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)學(xué)-福建省莆田市2025屆高中畢業(yè)班第二次教學(xué)質(zhì)量檢測(cè)試卷(莆田二檢)試題和答案
- 2025年中考道德與法治二輪復(fù)習(xí):熱點(diǎn)時(shí)政專(zhuān)題練習(xí)題(含答案)
- 2025年中考道德與法治二輪復(fù)習(xí):七~九年級(jí)高頻考點(diǎn)提綱
- 刀片刺網(wǎng)施工方案
- 輕鋼平頂施工方案
- 苗木養(yǎng)護(hù)施工方案
- 2025年中考物理二輪復(fù)習(xí):簡(jiǎn)單機(jī)械、功和機(jī)械能 尖子生測(cè)試卷(含答案解析)
- 四川省金堂縣2025屆中考考前最后一卷生物試卷含解析
- 山西省朔州市朔城區(qū)重點(diǎn)名校2025屆中考生物模擬試卷含解析
- 別墅房建合同范例
- 初級(jí)中學(xué)語(yǔ)文教師資格考試學(xué)科知識(shí)與教學(xué)能力2024年下半年測(cè)試試題與參考答案
- 2024年積分制管理實(shí)施方案及細(xì)則
- 新蘇教版科學(xué)六年級(jí)上實(shí)驗(yàn)報(bào)告單
- CJT 264-2018 水處理用橡膠膜微孔曝氣器
- QCT1177-2022汽車(chē)空調(diào)用冷凝器
- 第2課 走進(jìn)物聯(lián)網(wǎng) 教學(xué)課件 -初中信息技術(shù)七年級(jí)下冊(cè)浙教版2023
- 土壤侵蝕原理智慧樹(shù)知到期末考試答案章節(jié)答案2024年甘肅農(nóng)業(yè)大學(xué)
- 2024年-急診氣道管理共識(shí)課件
- 空壓機(jī)節(jié)能技術(shù)
- 人工智能在智能物流系統(tǒng)中的應(yīng)用
- 網(wǎng)上信訪業(yè)務(wù)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論