MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
串数据类型
数据类型 | 说明 |
---|---|
CHAR | 1~255个字符的定长串。他的长度必须在创建时指定,否则MySQL默认为CHAR(1) |
VARCHAR | 长度可变,最多不超过255字节。如果在创建时指定为VARCHAR(n),则可存0到n个字符的变长串(其中n小于等于255) |
ENUM | 接受最多64K个串组成的一个预定义集合的某个串 |
SET | 接受最多64个串组成的一个预定义集合的零个或多个串 |
TEXT | 最大长度为64K的变长文本 |
TINYTEXT | 与TEXT相同,但最大长度为255字节 |
MEDIUMTEXT | 与TEXT相同,但最大长度为16KB |
LONGTEXT | 与TEXT相同,但最大长度为4GB |
数值数据类型
数据类型 | 说明 |
---|---|
BIT | 位字段,1~64位。(在MySQL 5之前,BIT在功能上等价于TINYINT) |
BIGINT | 整数值,支持-9223372036854775808~ 9223372036854775807(如果是UNSIGNED,为0~ 18446744073709551615) |
BOOLEAN | 布尔标志,或者未0或者为1,主要用于开关标志 |
DECIMAL | 精度可变的浮点值 |
DOUBLE | 双精度浮点值 |
FLOAT | 单精度浮点值 |
INT(或INTEGER) | 整数值,支持 |
MEDIUMINT | 整数值 |
REAL | 4字节的浮点值 |
SMALLINT | 整数值 |
TINYINT | 整数值 |
存储货币数据类型:MySQL中没有专门存储货币的数据类型,一般情况下用DECIMAL(8,2)
日期和时间数据类型
数据类型 | 说明 |
---|---|
DATE | 格式:YYYY-MM-DD,范围:1000-01-01/9999-12-31 |
DATETIME | 格式:YYYY-MM-DD HH:MM:SS,范围: 1000-01-01 00:00:00/9999-12-31 23:59:59 |
TIMESTAMP | 格式:YYYYMMDD HHMMSS,范围:1970-01-01 00:00:00/2038 |
TIME | 格式:HH:MM:SS,范围: ‘-838:59:59’/‘838:59:59’ |
YEAR | 格式:YYYY,范围:1901/2155 |
二进制数据类型
二进制数据类型可存储任何数据(甚至包括二进制信息),录图像、多媒体、字处理文档等;
数据类型 | 说明 |
---|---|
BLOB | Blob最大长度为64KB |
MEDIUMBLOB | Blob最大长度为16MB |
LONGBLOB | Blob最大长度为4GB |
TINYBLOB | Blob最大长度为255字节 |
备注
MySQL 5.0 以上的版本:
1、一个汉字占多少长度与编码有关:
UTF-8:一个汉字=3个字节
GBK:一个汉字=2个字节
2、varchar(n) 表示 n 个字符,无论汉字和英文,MySQL 都能存入 n 个字符,仅是实际字节长度有所区别
3、MySQL 检查长度,可用 SQL 语言来查看:
select LENGTH(fieldname) from tablename