数字类型
MySQL支持的数字类型包括:
准确数字类型
:NUMERIC(数字)、DECIMAL(十进制)、INTEGER(整数)、SMALLINT(小数)。
近似数字类型
:FLOAT(浮点数)、REAL(实数)、DOUBLEPRECISION(双精度)。
提示: INT和INTEGER是同一个意思,都表示整数;DEC和DECIMAL也是同一个意思,表示十进制数。
大体上数字类型可以分为整数和浮点两种数据类型,可以用下表进行表示:
整数数据类型
数据类型 | 意义 | 大小 |
---|---|---|
TINYINT | 最小的整数 | 1字节 |
BIT | 最小的整数 | 1字节 |
BOOL | 最小的整数 | 1字节 |
SMALLINT | 小型整数 | 2字节 |
MEDIUMINT | 中型整数 | 3字节 |
INT | 标准整数 | 4字节 |
BIGINT | 大型整数 | 8字节 |
以上INT数据类型使用的比较多,其他的了解就可以。
浮点数据类型
数据类型 | 意义 | 大小 |
---|---|---|
FLOAT | 单精度浮点数 | 4字节 |
DOUBLE | 双精度浮点数 | 8字节 |
DECIMAL | 可变数 | 自定义长度 |
注意:FLOAT和DOUBLE存在误差问题,尽量不进行浮点数的比较。在对货币这样的使用数据类型,为了确保其精准度,应该使用DECIMAL类型。
字符串类型
MySQL字符串类型包括:
普通的文本字符串类型
:CHAR、VARCHAR。
CAHR
指长度被固定为创建表所声明的长度,VARCHAR
指长度可变的字符串,他们的取值都为1~255。即存储字符串长度相同的全部使用CHAR类型,字符长度不相同的使用VARCHAR类型。
可变类型
:TEXT、BLOB。
这两种类型为可变类型,大小可以被改变,TXET
类型适合存储长文本,而BLOB
类型适合存储二进制数据,支持所有的数据类型,如文本、图像和声音,大小为2字节。
特殊类型
:ESUM、SET。
ESUM("value1","value2",...)
: 表示可以容纳所列值之一或者为空(NULL),即当使用时这列的值只能为ESUM括号当中的值之一或者为NULL,例如ESUM(“a”,“b”),那么这一列的值就只能为【“a”,“b”,“ab”,NULL】这四个值当中的任意一个,大小为2字节。
SET("value1","value",...)
: 表示可以容纳一组值或者为空(NULL),跟GET的区别就是可以容纳多个括号中列举出的值,但是他的长度最大只有64。
注意: BLOB、TEXT、ESUM、SET这些类型在MySQL数据库中的检索性能不是很高,很难使用索引进行相关的优化。所以一般不使用,如果必须要使用,则可以用其他的数据类型进行代替或采用特殊的结构设计。
日期和时间类型
日期和时间类型包括:
DATE
:日期,格式为YYYY-MM-DD。范围为:1000-01-01 ~ 9999-12-31
。
TIME
:时间,格式为HH:MM:SS。范围为:00:00:00 ~ 23:59:59
。
DATETIME
:日期和时间,格式为YYYY-MM-DD HH:MM:SS。范围为:1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
TIMESTAMP
:时间戳,即时间标签,表示当前操作的时间。他的格式取决于M的值。范围为:1970-01-01 00:00:00 ~ 2037年的某个时间
。
YEAR
:年份,格式为两位数字或者四位数字。范围为:1901 ~ 2155
。
注意: 上面的每种数据类型都有自己的取值范围,如果赋予的值不在其范围内,则会被”0“代替。