支持多种数据类型,主要有数值类型、日期/时间类型和字符串类型。
数值型:
- 整数型:TINTINT、SMALLINT、MEDIUMINT、INT、BIGINT
- 浮点型:FLOAT、DOUBLE
- 定点小数类型:DECIMAL
时间类型:
YEAR、TIME、DATE、DATETIME、TIMESTAMP
字符串类型:
CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM、SET等。
又分为文本字符串和二进制字符串。
- 整数类型:
创建表是如数据类型为INT(11)中的11表示为显示的宽度即显示几位数字。
- 浮点数型和定点数型
- 日期与时间类型
如果需要修改时区,
set time_zone = '+10:00';
- 文本字符串
总结:
为优化存储,提高数据库性能,应使用最精确的类型使使用的存储最少。
1.整数和浮点数:
如果不需要小数,就使用整数来保存数据,如果表述小数部分,使用浮点型数据。浮点类DOUBLE类型精度比FLOAT高。
2.浮点数和定点数
长度一定的情况下,浮点数能表示更大的数据范围。如果精度要求较高,建议使用DECIMAL。
3.日期时间
如果同时记录日期和时间,可以使用TIMESTAMP或者DATETIME. TIMESTAMP 的取值范围小于DATETIMED的取值范围。
4.CHAR与VARCHAR的选择
CHAR:固定长度,处理速度快,浪费存储空间,会自动删除插入数据的尾部空格
VARCHAR:可变长度,不会删除尾部空格
5.ENUM和SET
ENUM:只能取单值,如性别选择男或女
SET:可以去多值,如存储一个人的兴趣爱好
两者的值以字符串形式出现,但在内部,是以数值的形式进行存储的
6.BLOB和TEXT
BLOB:二进制字符串,主要存储图片,音频信息等
TEXT:非二进制字符串,只能存储纯文本文件