1. 程式人生 > 其它 >MySQL中常用的資料型別

MySQL中常用的資料型別

在寫sql語句的時候,資料型別是避不可少的一個環節,以下是我在學習的過程中總結的資料型別,僅供參考:

  • 數值型別

 

型別 有符號(signed)範圍 無符號(unsigned)範圍 描述
tinyint (-128,127) (0,255) 小整數值
smallint (-32768,32767) (0,65535) 大整數值
mediumint (-8388608,8388607) (0,16777215) 大整數值
int 或 integer (-2147483648,2147483647) (0,4294967295) 大整數值
bigint (-2^63,2^63-1)
(0,2^64-1) 極大整數值
float (-3.402823466 E+38,3.402823466351 E+38) 0 和 (1.175494351 E-38,3.402823466 E+38) 單精度浮點數值
double (-1.7976931348623157 E+308,1.7976931348623157 E+308) 0 和 (2.2250738585072014 E-308,1.7976931348623157 E+308) 雙精度浮點數值
decimal 依賴於M(精度)和D(標度)的值 依賴於M(精度)和D(標度)的值 小數值(精確定點值)

 

在上表可以看到每一個型別都是有自己相對應的範圍,大於某個數值之後不能再使用原型別了,需注意型別的範圍。

 

  • 字串型別
型別 描述
char 定長字串
varchar 變長字串
tinyblob 不超過255個字元的二進位制資料
tinytext 段文字字串
blob 二進位制資料的長文字資料
text 長文字資料
mediumblob 二進位制形式的中等長度文字資料
mediumtext 中等長度文字資料
longblob 二進位制形式的極大文字資料
longtext 極大文字資料

 字串型別中char與varchar使用頻率最高,它們的區別在於是否為定長字串,在描述某一確定值時,比如身份證號碼,在我國身份證號為18為,即使用char,比如姓名,字元長度不一,使用varchar。二進位制文字現在使用頻率已經大大降低,可以不做硬性要求。

  • 日期時間型別
型別 範圍 格式 描述
date 1000-01-01至9999-12-31 yyyy-mm-dd 日期值
time -838:59:59至838:59:59 hh:mm:ss 時間值或持續時間
year 1901至2155 yyyy 年份值
datetime 1000-01-01 00:00:00至9999-12-31 23:59:59 yyyy-mm-dd hh:mm:ss 混合日期和時間值
timestamp 1970-01-01 00:00:01至2038-01-19 03:14:07 yyyy-mm-dd hh:mm:ss 混合日期和時間值,時間戳

 

在日期時間型別中特別注意year的範圍是1901-2155,超出範圍就需使用date。

資料型別至關重要,不容忽視。