mysql中的資料類型

來源:互聯網
上載者:User

標籤:

MySQL中的資料類型

MySQL支援多種資料類型,數實值型別、日期/時間類型和字串(字元)類型不區分大小寫。下面將詳細講解各種資料類型。

 

1. 資料類型描述慣例

幾種資料類型描述使用了下述慣例,詳細內容如表2-9所示。

表2-9  資料類型描述管理解釋

標識符名稱

含    義

M

表示最大顯示寬度。最大有效顯示寬度是255

D

適用於浮點和定點類型,並表示小數點後面的位元。最大可能的值是30,但不應大於M–2

方括弧(‘[’和‘]’)

表示可選部分

 

2. 數值資料類型

MySQL支援所有標準SQL數值資料類型。這些類型包括嚴格數值資料類型(INTEGER、SMALLINT、DECIMAL和 NUMERIC),以及近似數值資料類型(FLOAT、REAL和DOUBLE PRECISION)。關鍵字INT是INTEGER的同義字,關鍵字DEC是DECIMAL的同義字。詳細資料如表2-10所示。

表2-10  MySQL中的數值資料類型

資料類型名稱

解    釋

BIT[(M)]

位欄位類型。M表示每個值的位元,範圍為1~64。如果M被省略, 預設為1

TINYINT[(M)] [UNSIGNED] [ZEROFILL]

很小的整數。帶符號的範圍是–128~127。無符號的範圍是0~255

BOOL,BOOLEAN

是TINYINT(1)的同義字。zero值被視為假。非zero值視為真

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]

中等大小的整數。帶符號的範圍是–8 388 608到8 388 607。無符號的範圍是0~16 7 77 2 15

INT[(M)] [UNSIGNED] [ZEROFILL]

普通大小的整數。帶符號的範圍是–2 147 483 648~2 147 483647。無符號的範圍是0~4 294 967 295

資料類型名稱

解    釋

INTEGER[(M)] [UNSIGNED] [ZEROFILL]

這是INT的同義字

BIGINT[(M)] [UNSIGNED] [ZEROFILL]

大整數。帶符號的範圍是–9 223 372 036 854 775 808~9 223 372036 854 775 807。無符號的範圍是0~18 446 744 073 709 551 615

FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]

小(單精確度)浮點數。允許的值是–3.402 823 466E+38~–1.175 494351E–38、0和1.175 494 351E–38~3.402 823 466E+38

DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

普通大小(雙精確度)浮點數。允許的值是–1.797 693 134 862 3157E+308~–2.225 073 858 507 2014E–308、0和2.225 073 858507 201 4E-308~1.797 693 134  862 315 7E+308

上面並不是完整的MySQL數值資料類型列表,若要瞭解完整的MySQL數值資料類型解釋,請參見MySQL參考文檔。

 

3. 日期和時間類型

每個時間類型有一個有效值範圍和一個“零”值,當指定不合法的值時,MySQL使用“零”值表示。
MySQL以標準輸出格式檢索給定日期或時間類型的值,也會儘力解釋使用者輸入的值。下面是MySQL支援的有效格式。

● 包含兩位年值的日期會令人感到模糊,因為世紀表述不清。
● 如果值用於數值上下文中,MySQL自動將日期或時間類型的值轉換為數字,反之亦然。
● 當 MySQL遇到一個日期或時間類型的超出範圍或對於該類型不合法的值時(如本節開始所描述),它將該值轉換為該類的“零”值。一個例外是超出範圍的TIME值被裁剪到TIME範圍的相應端點。

DATETIME類型表示同時包含日期和時間資訊的值。MySQL以‘YYYY-MM-DD HH:MM:SS‘格式檢索和顯示DATETIME值。支援的範圍為‘1000-01-01 00:00:00‘~‘9999-12-31 23:59:59‘。

DATE類型表示只有日期值而沒有時間值的值。MySQL用‘YYYY-MM-DD‘格式檢索和顯示DATE值。支援的範圍為‘1000-01-01‘~‘9999-12-31‘。

MySQL以‘HH:MM:SS‘格式檢索和顯示TIME值(或對於大的小時值採用‘HHH:MM:SS‘格式)。TIME值的範圍為‘– 838:59:59‘~‘838:59:59‘。小時部分的數值之所以大的原因是TIME類型不僅可以用於表示一天的時間(必須小於24小時),還可能用 於表示某個事件過去的時間或兩個事件之間的時間間隔(可以大於24小時,或者為負)。

TIME值可以使用多種表示格式。

● ‘D HH:MM:SS.fraction‘格式的字串。還可以使用下面任何一種“非嚴格”文法‘HH:MM:SS.fraction‘、 ‘HH:MM:SS‘、‘HH:MM‘、‘D HH:MM:SS‘、‘D HH:MM‘、‘D HH‘或‘SS‘。這裡D表示日,可以取0~34的值。請注意MySQL不儲存分數。
● ‘HHMMSS‘格式的沒有間隔符的字串,被假定為是有意義的時間。例如,‘101112‘被理解為‘10:11:12‘,但‘109712‘是不合法的(它有一個沒有意義的分鐘部分),其將變為‘00:00:00‘。
● HHMMSS格式的數值,被假定為是有意義的時間。例如,101112被理解為‘10:11:12‘。下面的格式也可以理解:SS、MMSS、HHMMSS、HHMMSS.fraction。請注意MySQL不儲存分數。
YEAR類型是一個單位元組類型,用於表示年。MySQL以YYYY格式檢索和顯示YEAR值。範圍為1901~2155。
可以指定各種格式的YEAR值。
● 四位字串,範圍為‘1901‘~‘2155‘。
● 四位元字,範圍為1901~2155。
● 兩位字串,範圍為‘00‘~‘99‘。‘00‘~‘69‘和‘70‘~‘99‘範圍的值分別被轉換為2000~2069和1970~1999範圍的YEAR值。
● 兩 位整數,範圍為1~99。1~69和70~99範圍的值分別被轉換為2001~2069和1970~1999範圍的YEAR值。請注意兩位整數範圍與兩位 字串範圍稍有不同,因為不能直接將零指定為數字並將它解釋為2000。必須將它指定為一個字串‘0‘或‘00‘或它被解釋為0000。

注意:
非法YEAR值被轉換為0000。

 

4. 字串類型

字串類型包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。

● CHAR和VARCHAR類型類似,但它們儲存和檢索的方式不同。它們的最大長度和尾部空格是否被保留等方面也不同。在儲存或檢索過程中不進行大小寫轉換。
● CHAR和VARCHAR型別宣告的長度表示要儲存的最大字元數。例如,CHAR(30)可以佔用30個字元。
● CHAR列的長度固定為建立表時聲明的長度。長度可以為0~255的任何值。當儲存CHAR值時,在它們的右邊填充空格以達到指定的長度。當檢索到CHAR值時,尾部的空格被刪除掉。在儲存或檢索過程中不進行大小寫轉換。
● VARCHAR 列中的值為可變長字串。長度可以指定為0~65 535的值。(VARCHAR的最大有效長度由最大行大小和使用的字元集確定。整體最大長度是65 532位元組)。同CHAR對比,VARCHAR值儲存時只儲存需要的字元數,另加一個位元組來記錄長度(如果列聲明的長度超過255,則使用兩個位元組)。 VARCHAR值儲存時不進行填充。當值儲存和檢索時尾部的空格仍保留,符合標準SQL。
● BINARY和VARBINARY資料類型不同於 CHAR BINARY和VARCHAR BINARY資料類型。對於後一種類型,BINARY屬性不會將列視為二進位字串列。相反,它只是使用列字元集的二元 校對規則,並且列自身包含非二進位位元組字串而不是二進位位元組字串。例如CHAR(5) BINARY被視為CHAR(5) CHARACTER SET latin1 COLLATE latin1_bin,
● BLOB是一個二進位大對象,可以容納可變數量的資料。BLOB類型有TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB有4種。它們只是可容納值的最大長度不同。
● TEXT類型有TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT4種。這些對應4種BLOB類型,有相同的最大長度和儲存需求。

TINYTEXT 最大長度是 255 (2^8 - 1) 個字元。 

TEXT 最大長度是 65535 (2^16 - 1) 個字元。

MEDIUMTEXT 最大長度是 16777215 (2^24 - 1) 個字元。

LONGTEXT 最大長度是 4294967295 (2^32 - 1) 個字元。

   

mysql中的資料類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.