mysql数据类型总结

整型

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;


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容