MySQL常用資料類型

來源:互聯網
上載者:User

標籤:

MySQL 支援多種資料類型,大侄可以分為三類:數實值型別、時間類型、字串類型和符合類型;

 

數實值型別:

 

類型

大小

範圍(有符號)

範圍(無符號)

用途

TINYINT

1 位元組

(-128,127)

(0,255)

小整數值

SMALLINT

2 位元組

(-32 768,32 767)

(0,65 535)

大整數值

MEDIUMINT

3 位元組

(-8 388 608,8 388 607)

(0,16 777 215)

大整數值

INT或INTEGER

4 位元組

(-2 147 483 648,2 147 483 647)

(0,4 294 967 295)

大整數值

BIGINT

8 位元組

(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)

(0,18 446 744 073 709 551 615)

極大整數值

FLOAT

4 位元組

(-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)

0,(1.175 494 351 E-38,3.402 823 466 E+38)

單精確度
浮點數值

DOUBLE

8 位元組

(1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

雙精確度
浮點數值

DECIMAL

對DECIMAL(M,D) ,如果M>D,為M+2否則為D+2

依賴於M和D的值

依賴於M和D的值

小數值

 

日期時間類型

每個時間類型有一個有效值範圍和一個“零”值,當指定不合法的值MySQL使用“零”值

類型

大小
(
位元組)

範圍

格式

用途

DATE

3

1000-01-01/9999-12-31

YYYY-MM-DD

日期值

TIME

3

‘-838:59:59‘/‘838:59:59‘

HH:MM:SS

時間值或期間

YEAR

1

1901/2155

YYYY

年份值

DATETIME

8

1000-01-01 00:00:00/9999-12-31 23:59:59

YYYY-MM-DD HH:MM:SS

混合日期和時間值

TIMESTAMP

8

1970-01-01 00:00:00/2037 年某時

YYYYMMDD HHMMSS

混合日期和時間值,時間戳記

 

字串類型

類型

大小

用途

CHAR

0-255位元組

定長字串

VARCHAR

0-65535 位元組

變長字串

TINYBLOB

0-255位元組

不超過 255 個字元的二進位字串

TINYTEXT

0-255位元組

短文本字串

BLOB

0-65 535位元組

二進位形式的長文本資料

TEXT

0-65 535位元組

長文本資料

MEDIUMBLOB

0-16 777 215位元組

二進位形式的中等長度文本資料

MEDIUMTEXT

0-16 777 215位元組

中等長度文本資料

LONGBLOB

0-4 294 967 295位元組

二進位形式的極大文本資料

LONGTEXT

0-4 294 967 295位元組

極大文本資料

 

複合類型

MySQL還支援兩種複合資料型別Enum 和set,他們擴充了SQL規範。雖然這些類型在技術上市字串符類型,但是可以被視為不同的資料類型。

一個Enum類型只允許從一個集合中取得一個值;二Set類型允許一個集合中取得任意多個值。

 

Enum類型

ENUM 類型因為只允許在集合中取得一個值,有點類似於單選項。在處理相互排拆的資料時容易讓人理解,比如人類的性別。ENUM 類型欄位可以從集合中取得一個值或使用 null 值,

除此之外的輸入將會使 MySQL 在這個欄位中插入一個Null 字元串。另外如果插入值的大小寫與集合中值的大小寫不匹配,MySQL 會自動使用插入值的大小寫轉換成與集合中大小寫一致的值。

   ENUM 類型在系統內部可以儲存為數字,並且從 1 開始用數字做索引。一個 ENUM 類型最多可以包含 65536 個元素,其中一個元素被 MySQL 保留,用來儲存錯誤資訊,

這個錯誤值用索引 0 或者一個Null 字元串表示。

MySQL 認為 ENUM 類型集合中出現的值是合法輸入,除此之外其它任何輸入都將失敗。這說明通過搜尋包含Null 字元串或對應數字索引為 0 的行就可以很容易地找到錯誤記錄的位置。

 

SET類型

SET 類型與 ENUM 類型相似但不相同。SET 類型可以從預定義的集合中取得任意數量的值。並且與 ENUM 類型相同的是任何試圖在 SET 類型欄位中插入非預定義的值都會使 

MySQL 插入一個Null 字元串。如果插入一個即有合法的元素又有非法的元素的記錄,MySQL 將會保留合法的元素,除去非法的元素。

 

 一個 SET 類型最多可以包含 64 項元素。在 SET 元素中值被儲存為一個分離的“位”序列,這些“位”表示與它相對應的元素。“位”是建立有序元素集合的一種簡單而有效方式。

並且它還去除了重複的元素,所以 SET 類型中不可能包含兩個相同的元素。

希望從 SET 類型欄位中找出非法的記錄只需尋找包含Null 字元串或二進位值為 0 的行

 

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.