MySQL的資料類型

來源:互聯網
上載者:User

1.整數

TINYINT: 8 bit 儲存空間

SMALLINT: 16 bit 儲存空間

MEDIUMINT: 24 bit 儲存空間

INT: 32 bit 儲存空間

BIGINT: 64 bit 儲存空間

分為

SIGNEN: 有符整數,可儲存正數和負數,如 TINYINT SIGNED 表示的範圍是 -127 ~ 128

UNSIGNED: 無符整數,只能儲存正數,但是表示的值是有符整數的兩倍, 如 TINYINT UNSIGNED 表示的範圍是 0 ~ 255

有符整數和無符整數只有表示的值大小上的區別,儲存空間和效率上都是一樣的

 

2.實數

DECIMAL: 可表示比 BIGINT 還大的正數,儲存時可以指定整數長度和小數位元,如 DECIMAL(18, 9) 表示總長18位,小數點後9位,一共佔用9 Byte,小數點前4 Byte,小數點1 Byte, 小數點後4 Byte, 一般用於儲存精確資料,如銀行賬目

FLOAT: 32 bit, 0~23精度

DOUBLE: 64 bit,  24~53精度

DOUBLE和FLOAT比起DECIMAL,佔用的儲存更少,但是精度沒有DECIMAL高

 

3.字串

3.1 CHAR和VARCHAR

CHAR:

定長字串,最大長度為255,mysql會分配固定的儲存空間來儲存CHAR,一般來講用在需要經常執行長度經變化的UPDATE,但最大長度和平均長度相近的列上

CHAR在擷取值時,會將末尾空格刪除,但是在比較值時,末尾的空格則會儲存,效果參見

VARCHAR:

變長字串,最大長度為65535,mysql會分配字串實際長度的空間來儲存VARCHAR,一般來講用在不需要經常執行列值長度變化的UPDATE,但是最大長度又遠大於平均長度的列上,因為當列值的長度變化時(例如某列從"Jack" => "I want to gank"),需要重新分配需要的儲存空間,會造成額外的效能開銷.

另外,VARCHAR會比原長度額外佔用1~2個位元組,用來表示字串的長度,當字串長度小於255時佔用1 Byte, 否則佔用 2 Byte

查詢時,CHAR去除末尾空格

WHERE字句比較字串時,CHAR保留末尾空格

 

關於二者的效率:

  • SELECT時,CHAR的效率會高於VARCHAR的效率,因為在尋找時CHAR是定長的,尋找資料可以很快的計算出資料的位置,如CHAR(10),第五個資料的地址就是5*10這樣,而VARCHAR因為定長,所以計算資料地址需要耗費額外的時間
  • UPDATE時,CHAR的效率會高於VARCHAR的效率,因為VARCHAR是不定長的,當資料長度改變時,需要重新分配儲存空間

 

3.2 BLOB和TEXT

BLOB和TEXT的唯一區別是BLOB儲存二進位類型而且沒有字元集好定序,而TEXT儲存字元文本,且有字元集和定序

它們的定序按照 max_short_length 規定長度的前若干個字元進行排序

 

4.日期和時間類型

DATETIME: 將日期儲存為YYYYMMDDHHMMSS格式,範圍從1001 ~ 9999年,佔用空間 8 Byte

TIMESTAMP: 將日期儲存為Unix時間戳記,範圍從1970 ~ 2038年, 佔用空間 4Byte,並且和時區相關,它的特性是當插入沒有定義TIMESTAMP的列時,MySQL會自動將時間戳記儲存為目前時間,所以一般可用於記錄最後登入時間等.

 

5.位集資料類型

BIT: 最大 64 bit,一般用於儲存一個true/false值,如BIT(1),佔用 1 bit,遠小於使用字元表示

SET: 用於儲存多個true/false值,可用於許可權管理,效果見

 

6.枚舉

ENUM: 類似於SET,但是只能插入1個值,一般可用來表示性別等唯一且範圍固定的屬性(男,女..)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.