整型
tinyint(-2^7,2^7-1) 存储大小为1个字节 (三位数)非整型 -127-128 整型 0-255
smallint(-2^15-2^15-1) 存储大小为2个字节 (五位数)
int(-2^31-2^31-1) 存储大小为4个字节 (十位数)
bigint(-2^63-2^63-1) 存储大小为8个字节 (十九位数)
字符串类型
CHAR, VARCHAR, TEXT和BINARY, VARBINARY, BLOB的区别
char,varchar,text 称为非二进制字符串
binary,varbinary,blob 称为二进制字符串
二进制字符串包含的是字节字符串,非二进制字符串包含的是字符字符串,可以定义字符集。
char(0-255)和varchar(0-65535)都可以定义字符串的长度,char定义的长度是固定的 varchar定义的长度为可变字符串
MySQL的varchar(n)可以存储的中文字符数和英文字符数是一致的,都是n个字符。
因为常用中文字符用utf-8编码占用3个字节(大约2万多字),所以varchar类型n最多只能存储两万多
GBK、GB2312收编的汉字占2个字节
浮点型(超出范围的部分四舍五入)
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 列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新
mysql表示填充当前时间戳 === UNIX_TIMESTAMP(now())
例:update `mfx_card_entity` set cust_id = 57,`cust_realname`='向丽',`update_at`=UNIX_TIMESTAMP(now()) where `card_number`= '4550285230' limit 1;