MySQL中常用的資料型別
阿新 • • 發佈:2022-03-30
在寫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。
資料型別至關重要,不容忽視。