數據類型的選擇函數
爲表中的字段選擇合適的數據類型:
當一個列能夠選擇多種數據類型時,應該優先考慮數字類型,其次是日期或二進制類型,
最後是字符類型。對於相同級別的數據類型,應該優先選擇佔用空間小的數據類型。spa
整數類型3d
浮點數類型blog
說明:DECIMAL類型,每4個字節存9個數字,小數點佔1個字節
例如:DECIMAL(18,9)須要9個字節來存儲。字符串
VARCHAR和CHAR類型
· varchar用於存儲變長字符串,只佔用必要的存儲空間
· varchar列的最大長度小於255則只佔用一個額外字節用於記錄字符串長度
· varchar列的最大長度大於255則要佔用兩個額外字節用於記錄字符串長度
· char類型是定長的
· 字符串存儲在char類型的列中會刪除末尾的空格
· char類型的最大寬度爲255io
日期類型
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. 不要使用字符串類型來存儲日期時間數據date