index
utf8mb4
道Mysql的utf8编码并不是真正的UTF-8编码,Mysql的utf8最多只支持3个字节, 而emoji表情、一些特殊的中文字符则需要4个字节才能存储 show variables like 'character%'; #vim /etc/my.cnf [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci 扩展属性ZEROFILL使用时, 默认补充的空格用零代替。 例如,对于声明为INT(5) ZEROFILL的列,值4检索为00004 int(M): M显示宽度(1~255),显示宽度与存储大小或类型包含的值的范围无关 float(M,D): M精度(1~7) double(M,D): M精度(1~15) Decimal(M,D): M精度(1~65) D标度(小数位数0~30) decimal:数字型,不存在精度损失,常用于银行帐目计算。 mysql没有money类型, sql server才有money类型, mysql用decimal存储货币值 money:好处在于可以存储不指定的小数点位数的数值,比较真实
类型 | 字节 | 最小值(有符号/无符号) | 最大值(有符号/无符号) |
TINYINT | 1 | -128 | 127 |
0 | 255 | ||
SMALLINT | 2 | -32768 | 32767 |
0 | 65535 | ||
MEDIUMINT | 3 | -8388608 | 8388607 |
0 | 16777215 | ||
INT | 4 | -2147483648 | 2147483647 |
0 | 4294967295 | ||
BIGINT | 8 | -9223372036854775808 | 9223372036854775807 |
0 | 18446744073709551615 | ||
float | 4 | ||
double | 8 | ||
decimal | 16 | ||
money | 8 | -922337203685477 | 922337203685477.5808 |
smallmoney | 4 | -214748.3647 | 214748.3647 |