1. 程式人生 > >Mysql中的數據類型

Mysql中的數據類型

AC back 當前時間 bubuko 進制 HA 分享 存儲 int

數據類型的選擇

為表中的字段選擇合適的數據類型
  當一個列可以選擇多種數據類型時,應該優先考慮數字類型,其次是日期或二進制類型,
最後是字符類型。對於相同級別的數據類型,應該優先選擇占用空間小的數據類型。

整數類型

  技術分享圖片
浮點數類型

  技術分享圖片
  說明:DECIMAL類型,每4個字節存9個數字,小數點占1個字節
  例如:DECIMAL(18,9)需要9個字節來存儲。

VARCHAR和CHAR類型
  · varchar用於存儲變長字符串,只占用必要的存儲空間
  · varchar列的最大長度小於255則只占用一個額外字節用於記錄字符串長度
  · varchar列的最大長度大於255則要占用兩個額外字節用於記錄字符串長度
  · char類型是定長的
  · 字符串存儲在char類型的列中會刪除末尾的空格


  · char類型的最大寬度為255

日期類型
  DATATIME類型
    以YYYY-MM-DD HH:MM:SS[.fraction]格式存儲日期時間
    atetime = YYYY-MM-DD HH:MM:SS
    datetime(6) = YYYY-MM-DD HH:MM:SS.fraction
    DATATIME類型與時區無關,占用8個字節的存儲空間
    時間範圍從1000-01-01 00:00:00到9999-12-31 23:59:59
  TIMESTAMP類型
    存儲了由格林尼治時間1970年1月1日到當前時間的秒數
    以YYYY-MM-DD HH:MM:SS[.fraction]格式顯示

,占用4個字節
    時間範圍從1970-01-01到2038-01-19
    TIMESTAMP類型顯示依賴於所指定的時區
    在行的數據修改時可以自動修改TIMESTAMP列的值
  DATE類型和TIME類型
    存儲用戶生日時,只需要存儲日期部分
  DATE類型的優點:
    1. 占用的字節數比使用字符串、datetime、int存儲要少,使用date類型只需要3個字節
    2. 使用DATE類型還可以利用時間函數進行日期之間的計算
    DATE類型時間範圍從1000-01-01到9999-12-31
    TIME類型用戶存儲時間數據,格式為HH:MM:SS

  註意事項:
    1. 不要使用字符串類型來存儲日期時間數據
    原因:
      · 日期時間類型通常比字符串占用的存儲空間小
      · 日期時間類型在進行查找過濾時可以利用日期來進行對比
      · 日期時間類型還有著豐富的處理函數,可以方便的對日期時間類型進行日期計算
    2. 不要使用字符串類型來存儲日期時間數據

Mysql中的數據類型