1. 程式人生 > >MySQL筆記——資料型別

MySQL筆記——資料型別

MySQL支援的資料型別

    MySQL提供了多種資料型別,主要包括數值型、字串型別、日期和時間型別。可以在MySQL的幫助文件中,查閱當前MySQL版本所支援的資料型別,以及資料型別的詳細使用說明。

開啟MySQL命令視窗,輸入命令:

? data types;

就可以看到MySQL所支援的全部資料型別,如圖所示。

如果想檢視某個資料型別的描述,例如檢視INT(整型)資料型別,可以輸入命令:

? data int;

就可以看到相關資料型別的詳細資訊了。

1.數值型別

  • 整數型別

資料型別

位元組

取值範圍

說明

TINYINT

1

有符號:-128~127

最小的整數

無符號:0~255

SMALLINT

2

有符號:-32768~32767

小整型數

無符號:0~65535

MEDIUMINT

3

有符號:-8388608~8388607

中整型數

無符號:0~16777215

INT、INTEGER

4

有符號:-(2^32)/2~ (2^32)/2-1

標準整型數

無符號:0~ (2^32-1)

BIGINT

8

有符號:-(2^64)/2~ (2^64)/2-1

大整型數

無符號:0~ (2^64-1)

BIT

1

有符號:-128~127

最小的整數

無符號:0~255

BOOL

1

有符號:-128~127

最小的整數

無符號:0~255

說明:

  1. 整數型別可以指定顯示寬度。例如,INT(5)表示寬度為5,數值寬度小於5位時在數字前面填滿寬度。一般配合zerofill使用,在數字位數不夠的空間可用字元’0’填滿。
  2. UNSIGNED屬性:設定當前的整數型別為無符號整型。
  3. AUTO_INCREMENT屬性:只適用於整型,AUTO_INCREMENT值一般從1開始,每行增加1。一個表中最多隻能由一個AUTO_INCREMENT列。對於任何想要使用AUTO_INCREMENT的列,應該定義為NOT NULL,並定義為PRIMARY KEY或UNIQUE KEY。示例:CREATE TABLE tb_bookinfo(id INT AUTO_INCREMENT NOT NULL,PRIMARY KEY(id));
  • 浮點數型別

資料型別

位元組

取值範圍

說明

FLOAT

4或8位元組

很大

單精度浮點數

DOUBLE

8

非常大

雙精度浮點數

DEC

自定義

可變

指定精度的小數

DECIMAL

  1. 小數型別可以用資料型別後面加(M,D)方式表示。“(M,D)”表示一共顯示M位資料(整數位+小數位),D為小數點後面的位數。例如,float(7,3),decimal(5,2)。
  2. DECIMAL在不指定精度時,預設的整數位為10,小數位為0。

2.日期和時間型別

資料型別

位元組

取值範圍

說明

DATE

4

1000-01-01~9999-12-31

日期

TIME

3

-838:58:59~835:59:59

時間

DTATTIME

8

1000-01-01 00:00:00

日期和時間

~9999-12-31 23:59:59

TIMESTAMP

4

1970-01-01 00:00

時間標籤

~2038年某個時間

YEAR

1

1901~2155

年份

3.字串型別

資料型別

取值範圍

說明

CHAR(M)

M為0~255之間的整數

VARCHAR(M)

M為0~65535之間的整數

長度可變

TINYBLOB

0~255位元組

BLOB

0~65535位元組

MEDIUMBLOB

0~167772150位元組

LONGBLOB

0~4294967295位元組

TINYTEXT

0~255位元組

TEXT

0~65535位元組

MEDIUMTEXT

0~167772150位元組

LONGTEXT

0~4294967295位元組

VARBINARY(M)

0~M位元組的變長位元組字串

長度可變

BINARY(M)

0~M位元組的定長位元組字串

  • CHAR與VARCHAR型別

    CHAR列的長度固定為建立表時宣告的長度,取值0~255;VARCHAR列的值為變長的字串,取值於CHAR相同。

  • TEXT與BLOB型別

大小均可變。TEXT型別適合儲存長文字;BLOB型別適合儲存二進位制資料,支援任何資料,例如文字、聲音、影象      等。

  • BINARY與VARBINARY型別

    BINARY、VARBINARY類似於CHAR、VARCHAR,不同之處在於它們包含二進位制字串而不包含非二進位制字串。

  • ENUM與SET型別

    ENUM為列舉型別,最多允許有65535個成員。SET與ENUM類似,可以包含0~64個成員。二者的區別在於SET型別一次可以選取多個成員,而ENUM只能選取一個。