mysql数据类型
首先说下 Byte 和 bit
1字节=8位(1 byte = 8bit) ,最大存储范围就是8个1,2的8次方,也就是255
整型
Int(M);M指宽度,使用默认就行,默认为3,定义宽度没太大意义
使用zerofill 可以查看到宽度怎样存
Insert into (num) values(1);
Num显示是 001
1.TINYINT 有符号值: -2^7到2^7-1; 无符号值: 0到2^8-1; 1Byte
2.SMALLINT 有符号值: -2^15到2^15-1; 无符号值: 0到2^16-1; 2Byte
3.MEDIUMINT 有符号值: -2^23到2^23-1; 无符号值: 0到2^24-1; 3Byte
4.INT 有符号值: -2^31到2^31-1; 无符号值: 0到2^32-1; 4Byte
5.BIGINT 有符号值: -2^63到2^63-1; 无符号值: 0到2^64-1; 8Byte
浮点型
1. FLOAT[(M, D)] 4byte
(1) M是数字总位数, D是小数点后面的位数
(2) 单精度浮点数精确到大约7位小数
2. DOUBLE[(M, D)] 8byte,是双精度浮点数, 一般是FLOAT存储范围的10倍,15个有效位
3. DECIMAL[(M ,D)] 16byte,28个有效位
decimal (M,D)
M:代表总有效位数,系统规定不能大于65;
D:代表小数位数,系统规定不能大于30;
日期和时间
1. YEAR: 1字节 1970至2069 格式:2018
2. TIME: 3字节 格式:09:00:00
3. DATE: 3字节 1000-1-1至9999-12-31 格式:2018-01-01
4. TIMESTAMP: 4字节 1970-1-1 00:00:00到2037-12-31 23:59:59
5. DATETIME: 8字节 1000-1-1 00:00:00至9999-12-31 23:59:59 2018-01-01 00:00:00
字符型
1. CHAR(M): M个字节, 0 <= M <= 255, 定长类型(未达到指定长度用空格来补齐)
2. VARCHAR(M): 0 <= M <= 65535, 变长类型,根据编码不同存储个数不一样
3. TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT分别为1, 2, 3, 4个字节
4. ENUM('value1', 'value2', ...): 枚举类型, 1或2字节
sex enum('男','女');非枚举中的值插入时会插入空字符串,显示空值
5. SET('value1', 'value2', ...): 集合类型(集合的成员做排列组合, 最多64个成员), 1, 2, 3, 4或8字节
以上仅个人观点,如有问题,欢迎纠正!

浙公网安备 33010602011771号