整型
tinyint(-2^7,2^7-1) ? ? ? ?????存儲大小為1個字節(jié)? (三位數(shù))非整型 -127-128 整型 0-255
smallint(-2^15-2^15-1) ? ? 存儲大小為2個字節(jié)? (五位數(shù))
int(-2^31-2^31-1) ? ? ? ? ? ?? 存儲大小為4個字節(jié) (十位數(shù))
bigint(-2^63-2^63-1) ? ? ? ? 存儲大小為8個字節(jié) (十九位數(shù))
字符串類型
CHAR, VARCHAR, TEXT和BINARY, VARBINARY, BLOB的區(qū)別?
char,varchar晶渠,text 稱為非二進(jìn)制字符串
binary,varbinary,blob?稱為二進(jìn)制字符串
二進(jìn)制字符串包含的是字節(jié)字符串敢课,非二進(jìn)制字符串包含的是字符字符串,可以定義字符集绷杜。
char(0-255)和varchar(0-65535)都可以定義字符串的長度直秆,char定義的長度是固定的 ? varchar定義的長度為可變字符串
MySQL的varchar(n)可以存儲的中文字符數(shù)和英文字符數(shù)是一致的,都是n個字符鞭盟。
因為常用中文字符用utf-8編碼占用3個字節(jié)(大約2萬多字)圾结,所以varchar類型n最多只能存儲兩萬多
GBK、GB2312收編的漢字占2個字節(jié)
浮點型(超出范圍的部分四舍五入)
FLOAT[(M,?D)]????最小非零值:±1.175494351E?–?38
DOUBLE[(M,D)]最小非零值±2.2250738585072014E?–?308
DECIMAL?(M,?D)???可變齿诉;其值的范圍依賴于M?和D
float(9,2) decimal(9,2) 存入1234567.23,float會顯示為1234567.25筝野,而decimal會顯示1234567.23,更精確粤剧。
日期類型
datetime?????? 8 bytes?? YYYY-MM-DD HH:MM:SS?? 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp????? 4 bytes?? YYYY-MM-DD HH:MM:SS?? 1970-01-01 00:00:01 ~ 2038
date?????????? 3 bytes?? YYYY-MM-DD ? ? ?1000-01-01????????? ~ 9999-12-31
year?????????? 1 bytes?? YYYY????????????????? 1901~ 2155
datetime 的日期范圍比較大歇竟;timestamp 所占存儲空間比較小,只是 datetime 的一半
timestamp 列會自動以當(dāng)前時間(CURRENT_TIMESTAMP)填充/更新
mysql表示填充當(dāng)前時間戳 === UNIX_TIMESTAMP(now())
例:update `mfx_card_entity` set cust_id = 57,`cust_realname`='向麗',`update_at`=UNIX_TIMESTAMP(now()) where `card_number`= '4550285230' limit 1;