1. 程式人生 > >mysql 資料庫快速入門 MySQL的資料型別

mysql 資料庫快速入門 MySQL的資料型別

目錄

MySQL 資料型別

數值型別

字串(字元)型別

日期/時間型別


MySQL 資料型別

MySQL支援所有標準SQL數值資料型別。

資料欄位的型別對資料庫的優化是非常重要的,合理的使用資料型別,對資料庫的真來說都是有益的。

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的值 小數值

字串(字元)型別

型別 大小 用途
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位元組 極大文字資料

一個漢字佔多少長度與編碼有關UTF-8:一個漢字=3個位元組 GBK:一個漢字=2個位元組

CHAR(10)佔記憶體大小固定,不管是存了一個字元還是8個,字串的大小固定。

VARCHAR(10)佔用記憶體大小由本身的字串決定,存入記憶體中的字元是一個就佔一個位元組,大小不固定。

 

日期/時間型別

型別 大小
(位元組)
範圍 格式 用途
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   結束時間是第 2147483647 秒,

北京時間 2038-1-19 11:14:07,格林尼治時間 2038年1月19日 凌晨 03:14:07

YYYYMMDD HHMMSS 混合日期和時間值,時間戳

 

時間的型別,TIMESTAMP又有它的故事,它最多能表達到北京時間: 2038-1-19 11:14:07 

具體原因有興趣的同學自行檢視。