天天看點

mysql資料類型注意點_MySQL的資料類型 及注意事項

MySQL的資料類型

注意

選擇合适的資料類型,能節省儲存空間,提升計算性能。

(1)在符合應用要求(取值範圍、精度)的前提下,盡量使用“短”資料類型

(2)資料類型越簡單越好。

(3)在MySQL中,應該用内置的日期和時間資料類型,而不是用字元串來存儲日期和時間。

(4)盡量采用精确小數類型(例如decimal),而不采用浮點數類型。

(5)盡量避免NULL字段,建議将字段指定為NOT NULL限制。

mysql資料類型注意點_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 位元組

(-9223372036854775808,9223372036854775 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 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

雙精度

浮點數

DECIMAL

DECIMAL

(length,

precision)

length決定小數的最大位數

precision用于設定小數位數

length決定小數的最大位數

precision用于設定小數位數

小數值

備注:decimal(length, precision)用于表示精度确定(小數點後數字的位數确定)的小數類型,length決定該小數的最大位數,precision用于設定精度(小數點後數字的位數)。

例如:decimal (5,2)表示小數取值範圍:-999.99~999.99 decimal (5,0)表示: -99999~99999的整數。

字元串類型

類型

大小

用途

CHAR(n)

0-255位元組

定長字元串

VARCHAR(n)

0-65535 位元組

變長字元串

TINYTEXT

0-255位元組

短文本字元串

TEXT

0-65 535位元組

長文本資料

MEDIUMTEXT

0-16 777 215位元組

中等長度文本資料

LONGTEXT

0-4 294 967 295位元組

極大文本資料

日期/時間類型

類型

大小(位元組)

範圍

格式

用途

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

4

‘1970-01-01 00:00:00’~’2038’

YYYY-MM-DD HH:MM:SS

混合日期和時間值,

時間戳

複合類型

類型

最大值

說 明

示例

Enum (“value1”, “value2”, …)

65535

該類型的列隻可以容納所列值之一或為NULL

Gender enum(‘男‘,‘女)

Set (“value1”, “value2”, …)

64

該類型的列可以容納一組值或為NULL

Interest set(‘唱歌‘,‘遊泳‘,‘網球’)

二進制類型

類型

大小

用途

Binary(n)

0-255位元組

較短的二進制

VARBinary(n)

0-65535 位元組

較長的二進制

Bit(n)

0-64位元組

短二進制

TINYBLOB

0-255位元組

較短的二進制

TINYBLOB

0-255位元組

較短的二進制

BLOB

0-65 535位元組

圖檔、聲音等檔案

MEDIUMBLOB

0-16 777 215位元組

圖檔、聲音、視訊等檔案

LONGBLOB

0-4 294 967 295位元組

圖檔、聲音、視訊等檔案