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