🔥系列专栏:【MySQL从入门到精通】---- 持续更新
目录
1.概述2.数值类型2.1.整数类型2.2.浮点数类型2.3.定点数类型 3.字符串类型3.1.CHAR类型3.2.TEXT类型3.3.BLOB类型3.4.BINARY类型 4.日期和时间类型4.1.DATE类型4.2.TIME类型4.3.DATETIME类型4.4.TIMESTAMP类型4.5.YEAR类型 5.小结1.概述
数据类型,指的是当我们在数据库里创建一个表时,用于存储什么样的数据。
在实际开发过程中,选择合适的数据类型,可以提高数据库性能,因此我们必须了解SQL
的数据类型。
MySQL
支持所有标准的SQL
数据类型,大致可分为三种:
数值型字符串类型日期和时间型
声明:
之前已经讲过,SQL不区分大小写
2.数值类型
2.1.整数类型
整数类型存储整数
其关键字分别为:
TINYINT
----(tinyint
)----1字节SMALLINT
----(smallint
)----2字节MEDIUMINT
----(mediumint
)----3字节INT
----(int
)----4字节BIGINT
----(bigint
)----8字节
2.2.浮点数类型
浮点数类型是近似值类型,会四舍五入,所以有时会有误差。
其关键字分别是:
FLOAT
----(float
)----4字节DOUBLE
----(double
)----8字节
2.3.定点数类型
定点数类型是精确值类型,当我们想避免误差时可以使用定点数类型。
其关键字是:
DECIMAL
----(decimal
)----decimal(M,D)
----M
为精度,D
为标度注:
M
表示整数位 + 小数位,D
表示位于.
后面的小数位数
3.字符串类型
在MySQL里,我们使用单引号或双引号来把字符串类型的字段值括起来,这使得我们能更加灵活地保存数据。
如果我们想保存的数据记录里既有单引号又有双引号,这时我们可以使用转义字符反斜杠"\
"进行转义。
下面我们看看具体的字符串关键字
3.1.CHAR类型
CHAR
----(char
)----范围:0~255
VARCHAR
----(varchar
)----范围:0~65535
这两种数据类型很相似,区别:
存储的方式不同检索的方式不同(CHAR类型的字符串检索速度要比VARCHAR 类型快。)是否尾部空格被保留不同(在字符串检索的时候,CHAR 会去掉尾部的空格)最大长度不同:
char
类型是定长类型,即一但定义便固定了,定义长度的范围是:0~255
而varchar
类型是一种可变长字符串类型,范围在0~65535
。
3.2.TEXT类型
TINYTEXT
----(tinytext
)----范围:0~255
TEXT
----(text
)----范围:0~65535
MEDIUMTEXT
----(mediumtext
)----范围:0~16777215
LONGTEXT
----(longtext
)----范围:0~4294967295
TEXT
以文本方式存储,上述4种TEXT
类型的区别在于可容纳的存储范围不同,我们根据实际情况选择适合的类型。
3.3.BLOB类型
TINYBLOB
----(tinyblob
)----范围:0~255
BLOB
----(blob
)----范围:0~65535
MEDIUMBLOB
----(mediumblob
)----范围:0~16777215
LONGBLOB
----(longblob
)----范围:0~4294967295
BLOB是一个二进制大对象,以二进制方式存储,可容纳可变数量的数据。
3.4.BINARY类型
BINARY
----(binary(M)
)----范围:0~M字节VARBINARY
----(varbinary(M)
)----范围:0~M字节注:
BINARY
和VARBINARY
与CHAR
和VARCHAR
有点类似,区别在于BINARY
和VARBINARY
只包含二进制字符串,而且定义范围时,它们定义的是字节长度,而CHAR
和VARCHAR
则定义字符长度。
4.日期和时间类型
4.1.DATE类型
DATE
----(date
)----范围:1000-01-01 ~ 9999-12-31
当我们想表示年月日
时,可以使用DATE
类型,其字节数为3
。
4.2.TIME类型
TIME
----(time
)----范围:'-838:59:59' ~ '838:59:59'
当我们想表示时分秒
时,可以使用TIME
类型,其字节数为3
。
4.3.DATETIME类型
DATETIME
----(datetime
)----范围:1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
当我们想表示年月日时分秒
时,可以使用DATETIME
类型,其字节数为8
。
4.4.TIMESTAMP类型
TIMESTAMP
----(timestamp
)----范围:1970-01-01 00:00:00 ~ 2038-1-19 11:14:07
当我们想表示当前时间
,可以使用TIMESTAMP
类型,其字节数为4
。
4.5.YEAR类型
YEAR
----(year
)----范围:1901 ~ 2155
当我们只想表示年份
,可以使用YEAR
类型,其字节数为1
。
5.小结
好了,常用的SQL数据类型就看到这。
最后来张思维导图梳理一下:
如果觉得《【MySQL从入门到精通】:SQL的数据类型》对你有帮助,请点赞、收藏,并留下你的观点哦!