MySQL数据库从入门到精通学习第4天(MySQL数据类型)

数字类型

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“代替。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ProgramStack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值