MySQL中的数据类型以及使用时需要注意的地方记录如下
数字类型包括:
DECIMAL
类型 | 长度(Byte) | 最小值(SIGNED/UNSIGNED) | 最大值(SIGNED/UNSIGNED) |
---|---|---|---|
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 |
DECIMAL(M,D)
:
price DECIMAL(5, 2)
表示最大值为 999.99下面这段代码注意:
`status` TINYINT(4) UNSIGNED NOT NULL AUTO_INCREMENT
TINYINT
表示状态DATE
: 3字节, 'YYYY-MM-DD'
格式, 范围是 '1000-01-01' ~ '9999-12-31'
。如果只记录日期, 存储空间、性能都要比varchar(10)要好。
TIMESTAMP
: 4字节,'YYYY-MM-DD HH:MM:SS'
格式, 范围是'1970-01-01 00:00:01' ~ '2038-01-19 03:14:07'
。
DATETIME
: 8字节,'YYYY-MM-DD HH:MM:SS'
格式, 范围是'1000-01-01 00:00:00' ~ '9999-12- 31 23:59:59'
。
注意:
DATETIME
在5.6之后占5个字节CHAR
: 定长文本字符类型VARCHAR
: 变长文本字符类型TEXT
: 大变长文本字符类型BINARY
: 类似于char, 变长二进制字符类型VARBINARY
: 类似于varchar, 变长二进制字符类型BLOB
: 大变长二进制字符类型注意:
VARCHAR
类型最多能存储65535个字节长度的数据,如果采用 UTF8
编码,则每个字符占3字节,即最大长度为 65535/3=21845
个字符VARCHAR(4)
表示的是4个字符,而不是字节,一个字母和一个汉字都是一个字符VARCHAR
开头会占用1到2个字节来存储字符串实际长度(长度超过255时要2个字节),最大长度不超过65535。不会影响上面所说的字符长度。