共計 4355 個字符,預(yù)計需要花費(fèi) 11 分鐘才能閱讀完成。
這篇文章主要講解了“Mysql 的數(shù)據(jù)類型有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Mysql 的數(shù)據(jù)類型有哪些”吧!
Varchar 對每個英文 (ASCII) 字符都占用 2 個字節(jié),對一個漢字也只占用兩個字節(jié)
char 對英文 (ASCII) 字符占用 1 個字節(jié),對一個漢字占用 2 個字節(jié) Varchar 的類型不以空格填滿,比如 varchar(100),但它的值只是 qian , 則它的值就是 qian 而 char 不一樣,比如 char(100), 它的值是 qian,而實(shí)際上它在中是 qian (qian 后共有 96 個空格,就是把它填滿為 100 個字節(jié))。
由于 char 是以固定長度的,所以它的速度會比 varchar 快得多! 但程序處理起來要麻煩一點(diǎn),要用 trim 之類的函數(shù)把兩邊的空格去掉!
ntext
可變長度 Unicode 數(shù)據(jù)的最大長度為 230 – 1 (1,073,741,823) 個字符。存儲大小是所輸入字符個數(shù)的兩倍(以字節(jié)為單位)。ntext 在 SQL-92 中的同義詞是 national text。
text
服務(wù)器代碼頁中的可變長度非 Unicode 數(shù)據(jù)的最大長度為 231-1 (2,147,483,647) 個字符。當(dāng)服務(wù)器代碼頁使用雙字節(jié)字符時,存儲量仍是 2,147,483,647 字節(jié)。存儲大小可能小于 2,147,483,647 字節(jié)(取決于字符串)。
bigint:從 -2^63(-9223372036854775808)到 2^63-1(9223372036854775807)的整型數(shù)據(jù),存儲大小為 8 個字節(jié)。
int:從 -2^31(-2,147,483,648)到 2^31-1(2,147,483,647)的整型數(shù)據(jù),存儲大小為 4 個字節(jié)。
smallint:從 -2^15(-32,768)到 2^15-1(32,767)的整數(shù)數(shù)據(jù),存儲大小為 2 個字節(jié)。
tinyint:從 0 到 255 的整數(shù)數(shù)據(jù),存儲大小為 1 字節(jié)。
bit:1 或 0 的整數(shù)數(shù)據(jù),存儲大小為 1 字節(jié)。
Unicode 數(shù)據(jù)
在 Microsoft reg; SQL Server? 2000 中,傳統(tǒng)上非 Unicode 數(shù)據(jù)類型允許使用由特定字符集定義的字符。字符集是在安裝 SQL Server 時選擇的,不能更改。使用 Unicode 數(shù)據(jù)類型,列可存儲由 Unicode 標(biāo)準(zhǔn)定義的任何字符,包含由不同字符集定義的所有字符。Unicode 數(shù)據(jù)類型需要相當(dāng)于非 Unicode 數(shù)據(jù)類型兩倍的存儲空間。
Unicode 數(shù)據(jù)使用 SQL Server 中的 nchar、varchar 和 ntext 數(shù)據(jù)類型進(jìn)行存儲。對于存儲來源于多種字符集的字符的列,可采用這些數(shù)據(jù)類型。當(dāng)列中各項所包含的 Unicode 字符數(shù)不同時(至多為 4000),使用 nvarchar 類型。當(dāng)列中各項為同一固定長度時(至多為 4000 個 Unicode 字符),使用 nchar 類型。當(dāng)列中任意項超過 4000 個 Unicode 字符時,使用 ntext 類型。
說明 SQL Server 的 Unicode 數(shù)據(jù)類型是基于 SQL-92 標(biāo)準(zhǔn)中的國家字符數(shù)據(jù)類型。SQL-92 使用前綴字符 n 標(biāo)識這些數(shù)據(jù)類型及其值。
1. 數(shù)據(jù)類型
數(shù)據(jù)類弄是數(shù)據(jù)的一種屬性,表示數(shù)據(jù)所表示信息的類型。任何一種計算機(jī)語言都定義了自己的數(shù)據(jù)類型。當(dāng)然,不同的程序語言都具有不同的特點(diǎn),所定義的數(shù)據(jù)類型的各類和名稱都或多或少有些不同。SQL Server 提供了 25 種數(shù)據(jù)類型:
middot;Binary [(N)]
middot;Varbinary [(N)]
middot;Char [(N)]
middot;Varchar[(N)]
middot;Nchar[(N)]
middot;Nvarchar[(N)]
middot;Datetime
middot;Smalldatetime
middot;Decimal[(p[,s])]
middot;Numeric[(p[,s])]
middot;Float[(N)]
middot;Real
middot;Int
middot;Smallint
middot;Tinyint
middot;Money
middot;Smallmoney
middot;Bit
middot;Cursor
middot;Sysname
middot;Timestamp
middot;Uniqueidentifier
middot;Text
middot;Image
middot;Ntext
(1)二進(jìn)制數(shù)據(jù)類型
二進(jìn)制數(shù)據(jù)包括 Binary、Varbinary 和 Image.
Binary 數(shù)據(jù)類型既可以是固定長度的(Binary), 也可以是變長度的。
Binary[(N)] 是 n 位固定的二進(jìn)制數(shù)據(jù)。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小是 n + 4 個字節(jié)。
Varbinary[(N)] 是 n 位變長度的二進(jìn)制數(shù)據(jù)。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小是 n + 4 個字節(jié),不是 n 個字節(jié)。
在 Image 數(shù)據(jù)類型中存儲的數(shù)據(jù)是以位字符串存儲的,不是由 SQL Server 解釋的,必須由應(yīng)用程序來解釋。例如,應(yīng)用程序可以使用 BMP、TIEF、GIF 和 JPEG 格式把數(shù)據(jù)存儲在 Image 數(shù)據(jù)類型中。
(2)字符數(shù)據(jù)類型
字符數(shù)據(jù)的類型包括 Char,Varchar 和 Text。
字符數(shù)據(jù)是由任何字母、符號和數(shù)字任意組合而成的數(shù)據(jù)。
Varchar 是變長字符數(shù)據(jù),其長度不超過 8KB。Char 是定長字符數(shù)據(jù),其長度最多為 8KB。超過 8KB 的 ASCII 數(shù)據(jù)可以使用 Text 數(shù)據(jù)類型存儲。例如,因?yàn)?Html 文檔全部都是 ASCII 字符,并且在一般情況下長度超過 8KB,所以這些文檔可以 Text 數(shù)據(jù)類型存儲在 SQL Server 中。
(3)Unicode 數(shù)據(jù)類型
Unicode 數(shù)據(jù)類型包括 Nchar,Nvarchar 和 Ntext。
在 Microsoft SQL Server 中,傳統(tǒng)的非 Unicode 數(shù)據(jù)類型允許使用由特定字符集定義的字符。在 SQL Server 安裝過程中,允許選擇一種字符集。使用 Unicode 數(shù)據(jù)類型,列中可以存儲任何由 Unicode 標(biāo)準(zhǔn)定義的字符。在 Unicode 標(biāo)準(zhǔn)中,包括了以各種字符集定義的全部字符。使用 Unicode 數(shù)據(jù)類型,所戰(zhàn)勝的窨是使用非 Unicode 數(shù)據(jù)類型所占用的窨大小的兩倍。
在 SQL Server 中,Unicode 數(shù)據(jù)以 Nchar、Nvarchar 和 Ntext 數(shù)據(jù)類型存儲。使用這種字符類型存儲的列可以存儲多個字符集中的字符。當(dāng)列的長度變化時,應(yīng)該使用 Nvarchar 字符類型,這時最多可以存儲 4000 個字符。當(dāng)列的長度固定不變時,應(yīng)該使用 Nchar 字符類型,同樣,這時最多可以存儲 4000 個字符。當(dāng)使用 Ntext 數(shù)據(jù)類型時,該列可以存儲多于 4000 個字符。
(4)日期和時間數(shù)據(jù)類型
日期和時間數(shù)據(jù)類型包括 Datetime 和 Smalldatetime 兩種類型。
日期和時間數(shù)據(jù)類型由有效的日期和時間組成。例如,有效的日期和時間數(shù)據(jù)包括 4/01/98 12:15:00:00:00 PM 和 1:28:29:15:01 AM 8/17/98。前一個數(shù)據(jù)類型是日期在前,時間在后一個數(shù)據(jù)類型是霎時間在前,日期在后。在 Microsoft SQL Server 中,日期和時間數(shù)據(jù)類型包括 Datetime 和 Smalldatetime 兩種類型時,所存儲的日期范圍是從 1753 年 1 月 1 日開始,到 9999 年 12 月 31 日結(jié)束(每一個值要求 8 個存儲字節(jié))。使用 Smalldatetime 數(shù)據(jù)類型時,所存儲的日期范圍是 1900 年 1 月 1 日 開始,到 2079 年 12 月 31 日結(jié)束(每一個值要求 4 個存儲字節(jié))。
日期的格式可以設(shè)定。設(shè)置日期格式的命令如下:
Set DateFormat {format | @format _var|
其中,format | @format_var 是日期的順序。有效的參數(shù)包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默認(rèn)情況下,日期格式為 MDY。
例如,當(dāng)執(zhí)行 Set DateFormat YMD 之后,日期的格式為年 月 日 形式;當(dāng)執(zhí)行 Set DateFormat DMY 之后,日期的格式為 日 月有年 形式
(5)數(shù)字?jǐn)?shù)據(jù)類型
數(shù)字?jǐn)?shù)據(jù)只包含數(shù)字。數(shù)字?jǐn)?shù)據(jù)類型包括正數(shù)和負(fù)數(shù)、小數(shù)(浮點(diǎn)數(shù))和整數(shù)。
整數(shù)由正整數(shù)和負(fù)整數(shù)組成,例如 39、25、0-2 和 33967。在 Micrsoft SQL Server 中,整數(shù)存儲的數(shù)據(jù)類型是 Int,Smallint 和 Tinyint。Int 數(shù)據(jù)類型存儲數(shù)據(jù)的范圍大于 Smallint 數(shù)據(jù)類型存儲數(shù)據(jù)的范圍,而 Smallint 據(jù)類型存儲數(shù)據(jù)的范圍大于 Tinyint 數(shù)據(jù)類型存儲數(shù)據(jù)的范圍。使用 Int 數(shù)據(jù)狗昔存儲數(shù)據(jù)的范圍是從 -2 147 483 648 到 2 147 483 647(每一個值要求 4 個字節(jié)存儲空間)。使用 Smallint 數(shù)據(jù)類型時,存儲數(shù)據(jù)的范圍從 -32 768 到 32 767(每一個值要求 2 個字節(jié)存儲空間)。使用 Tinyint 數(shù)據(jù)類型時,存儲數(shù)據(jù)的范圍是從 0 到 255(每一個值要求 1 個字節(jié)存儲空間)。
精確小婁數(shù)據(jù)在 SQL Server 中的數(shù)據(jù)類型是 Decimal 和 Numeric。這種數(shù)據(jù)所占的存儲空間根據(jù)該數(shù)據(jù)的位數(shù)后的位數(shù)來確定。
在 SQL Server 中,近似小數(shù)數(shù)據(jù)的數(shù)據(jù)類型是 Float 和 Real。例如,三分之一這個分?jǐn)?shù)記作。3333333,當(dāng)使用近似數(shù)據(jù)類型時能準(zhǔn)確表示。因此,從系統(tǒng)中檢索到的數(shù)據(jù)可能與存儲在該列中數(shù)據(jù)不完全一樣。
(6)貨幣數(shù)據(jù)表示正的或者負(fù)的貨幣數(shù)量。在 Microsoft SQL Server 中,貨幣數(shù)據(jù)的數(shù)據(jù)類型是 Money 和 Smallmoney。Money 數(shù)據(jù)類型要求 8 個存儲字節(jié),Smallmoney 數(shù)據(jù)類型要求 4 個存儲字節(jié)。
(7)特殊數(shù)據(jù)類型
特殊數(shù)據(jù)類型包括前面沒有提過的數(shù)據(jù)類型。特殊的數(shù)據(jù)類型有 3 種,即 Timestamp、Bit 和 Uniqueidentifier。
Timestamp 用于表示 SQL Server 活動的先后順序,以二進(jìn)投影的格式表示。Timestamp 數(shù)據(jù)與插入數(shù)據(jù)或者日期和時間沒有關(guān)系。
Bit 由 1 或者 0 組成。當(dāng)表示真或者假、ON 或者 OFF 時,使用 Bit 數(shù)據(jù)類型。例如,詢問是否是每一次訪問的客戶機(jī)請求可以存儲在這種數(shù)據(jù)類型的列中。
Uniqueidentifier 由 16 字節(jié)的十六進(jìn)制數(shù)字組成,表示一個全局唯一的。當(dāng)表的記錄行要求唯一時,GUID 是非常有用。例如,在客戶標(biāo)識號列使用這種數(shù)據(jù)類型可以區(qū)別不同的客戶。
感謝各位的閱讀,以上就是“Mysql 的數(shù)據(jù)類型有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對 Mysql 的數(shù)據(jù)類型有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!