【MySQL】2.0 數據類型

MySQL的學習筆記:數據類型

實例:
Teacher(Teacher_id, Teacher_name, age, Enter_time ,professional)

Teacher_id Teacher_name age Enter_time professional
10101 潘多拉 35 1998-7-2 副教授
10102 吉米 27 2013-7-5 講師
10103 郝本 45 1995-8-10 副教授
10201 田野 42 1994-7-15 副教授
10202 趙瑾 32 2012-7-12 講師
20201 錢多多 50 1996-7-2 教授

MySQl數據類型

數據類型
數值類型
字符串類型
日期-時間類型
複合類型
二進制類型
小數類型
整數類型
enum類型
set類型

數值類型

整數類型

類型 大小 範圍(有符號) 範圍(無符號) 用途
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 073709 551 615) 極大整數值

例如:定義年齡字段age爲無符號數,可以使用SQL片段:
age tinyint unsigned
其中用unsigned約束年齡age的取值不能爲負數

小數類型

類型 大小 範圍(有符號) 範圍(無符號) 用途
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 7E+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的整數。

日期類型

類型 字節大小 範圍 格式 用途
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 混合日期和時間值,時間戳

字符串類型

類型 大小 用途
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字節 極大文本數據
  1. char是定長,無論實際字段多長,佔用空間總爲n
  2. varchar是變長,只要實際字段長度小於n,那麼長度爲實際長度

複合類型

類型 最大值 說 明 備註
Enum (“value1”,“value2”, …) 65535 該類型的列只可以容納所列值之一或爲NULL 類似單選框
Set (“value1”,“value2”, …) 64 該類型的列可以容納一組值或爲NULL 類似複選框

二進制類型

類型 大小 用途
Binary(n) 0-255字節 較短的二進制
VARBinary(n) 0-65535 字節 較長的二進制
Bit(n) 0-64字節 短二進制
TINYBLOB 0-255字節 較短的二進制
BLOB 0-65 535字節 圖片、聲音等文件
MEDIUMBLOB 0-16 777 215字節 圖片、聲音、視頻等文件
LONGBLOB 0-4 294 967 295字節 圖片、聲音、視頻等文件

一般規則

  1. 在符合應用要求(取值範圍、精度)的前提下,儘量使用“短”數據類型
  2. 數據類型越簡單越好
  3. 在MySQL中,應該用內置的日期和時間數據類型,而不是用字符串來存儲日期和時間。
  4. 儘量採用精確小數類型(例如decimal),而不採用浮點數類型。
  5. 儘量避免NULL字段,建議將字段指定爲NOT NULL約束。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章