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