mysql支援主流的資料型別,可以分為3類:數值、日期/時間、字串(字元)型別。在後期對mysql進行效能優化時,資料型別影響很大。
數值型別
mysql支援所有標準sql數值資料型別。
這些型別包括嚴格數值資料型別(integer、smallint、decimal和numeric),以及近似數值資料型別(float、real和double precision)。
整數型別:bit、bool、tiny int、small int、medium int、 int、 big int
浮點數型別:float、double、decimal
bit資料型別儲存位字段值,並且支援myisam、memory、innodb和bdb表。
作為sql標準的擴充套件,mysql也支援整數型別tinyint、mediumint和bigint。下面的表顯示了需要的每個整數型別的儲存和範圍。
型別大小用途
tinyint1 byte小整數值
smallint2 bytes大整數值
mediumint3 bytes大整數值
int或integer4 bytes大整數值
bigint8 bytes極大整數值
float4 bytes單精度
浮點數值
double8 bytes雙精度
浮點數值
decimal對decimal(m,d) ,如果m>d,為m+2否則為d+2小數值
日期和時間型別
表示時間值的日期和時間型別為datetime、date、timestamp、time和year。
每個時間型別有乙個有效值範圍和乙個」零」值,當指定不合法的mysql不能表示的值時使用」零」值。
其中,timestamp型別有專有的自動更新特性,若定義乙個欄位為timestamp,這個欄位裡的時間資料會隨其他字段修改的時候自動重新整理,所以這個資料型別的字段可以存放這條記錄最後被修改的時間。
型別大小
( bytes)格式用途
date3yyyy-mm-dd日期值
time3hh:mm:ss時間值或持續時間
year1yyyy年份值
datetime8yyyy-mm-dd hh:mm:ss混合日期和時間值
timestamp4yyyymmdd hhmmss混合日期和時間值,時間戳
字串型別
字串型別指char、varchar、binary、varbinary、blob、text、enum和set。該節描述了這些型別如何工作以及如何在查詢中使用這些型別。
型別大小用途
char0-255 bytes定長字串
varchar0-65535 bytes變長字串
tinyblob0-255 bytes不超過 255 個字元的二進位制字串
tinytext0-255 bytes短文本字串
blob0-65 535 bytes二進位制形式的長文字資料
text0-65 535 bytes長文字資料
mediumblob0-16 777 215 bytes二進位制形式的中等長度文字資料
mediumtext0-16 777 215 bytes中等長度文字資料
longblob0-4 294 967 295 bytes二進位制形式的極大文字資料
longtext0-4 294 967 295 bytes極大文字資料
char和varchar
char(n) 若存入字元數小於n,則以空格補於其後,查詢之時再將空格去掉。所以char型別儲存的字串末尾不能有空格,varchar不限於此。
char(n) 固定長度,char(4)不管是存入幾個字元,都將占用4個位元組,varchar是存入的實際字元數+1個位元組(n<=255)或2個位元組(n>255),所以varchar(4),存入3個字元將占用4個位元組。
char型別的字串檢索速度要比varchar型別的快。
blob 是乙個二進位製大物件,可以容納可變數量的資料。有 4 種 blob 型別:tinyblob、blob、mediumblob 和 longblob。它們區別在於可容納儲存範圍不同。
有 4 種 text 型別:tinytext、text、mediumtext 和 longtext。對應的這 4 種 blob 型別,可儲存的最大長度不同,可根據實際情況選擇。
perl中my與local的區別
x 9 sub mm sub gg my sub gg local gg my gg local print x 輸出結果是 call my 11 9 call local 20 20 9 可以看出,local函式在建立全域性變數的乙個區域性例項後即可 將它傳遞給任何子例程並繼續進行區域性初始賦值。...
my97DatePicker的基本使用
開始日 結束日 min代表選擇日期的最小值min laydate.now 1 最小選擇日期為昨天min laydate.now 最小選擇日期為今天min laydate.now 1 最小選擇日期為明天start代表游標指向的位置start laydate.now 1 游標指向昨天start layd...
詳解如何使用DockerHub官方的MySQL映象
前言 最近一直在嘗試以官方centos映象為基礎,製作基於centos的mysql映象。但是製作後發現映象大小已經超過1.5g,這對於一般的docker映象來說太臃腫了。docker hub官方提供的mysql映象才324mb。目前來說我還沒有找到什麼好的方法把我製作的映象的體積減下來,所以就先使用...