MySQL——常用数据类型

MySQL常用数据类型

数据类型是指某个变量或值的类型,通常情况下,绝大多数的变量都属于字符型、数值型和日期时间型三种。详细来说,数值型有整数型int、浮点型float等,日期时间型有日期date、时间戳类型timestamp等。
MySQL——常用数据类型

(1)数值型

数值型就是指变量或值以数字的形式呈现,且用四则运算进行计算之后的结果也是有意义的,比如用户的年龄、收入、商品的价格等,都属于数值型数据。

在MySQL数据库中,关于数值型数据的描述如下:MySQL——常用数据类型
关于表中的几种数值类型,有几点需要说明:

  • 如果在实际应用中,限定变量为非负的数值型时,必须在数据类型前面加上关键词UNSIGNED
  • 如果使用DECIMAL表示浮点型,需要指定参数M和D的值,其中M表示浮点数值中包含的所有数字个数,D表示浮点数值中小数位的数字个数,例如,DECIMAL(5,2)表示数值最多包含5个数字,其中小数位占两位,也就是说DECIMAL(5,2)的取值范围为[-999.99,999.99]

(2)字符串类型

字符串数据主要是指离散的类别型数据,并且这些数据以字符串的形式呈现,比如用户的姓名、性别、产品的名称等。
MySQL——常用数据类型
对于常用的字符型数据类型,有几点需要注意:

  • 如果变量的类型为CHAR(n)或VARCHAR(n) ,表示该变量的每一个观测值最多可以存储n个长度的字符。如果实际长度超过指定长度,它们均会将超过的部分截断;如果实际长度小于指定的长度,两者的处理就会有一些不同了,对于CHAR(n)来说,会以空格填满,而对于VARCHAR(n)来说,该是多少的长度就是多少的长度,并不会作任何处理,这就是可变长的缘由。
  • 如果变量的数据类型为ENUM,表示该变量所对应的每一个观测值最多可以在65535个不同的值中选择一个(类似于单选问题)或使用NULL值,并且这些数值必须提前通过ENUM类型指定。例如比如用户性别,我们可以从ENUM(“男”,“女”)进行枚举。ENUM 类型在系统内部可以存储为数 字,并且从 1 开始用数字做索引。除此之外,MySQL还保留了一个元素,用来存储错误信息这个错误值用索引0或者一个空字符串表示。因为MySQL认为 ENUM 类型集合中出现的值是合法输入,除此之外其它任何输入都将失败。这说明通过搜索包含空字符串或对应数字索引为0的行就可
    以很容易地找到错误记录的位置。
  • 如果变量的数据类型为SET,表示该变量所对应的每一个观测值最多可以在64个不同的值中选择多个(类似于多选问题),并且这些值需通过SET类型指定。比如用户的兴趣爱好,我们可以用SET(“足球”,“篮球”,“乒乓球”,“羽毛球”,“游泳”,“骑行”)来进行枚举,可以选择一个或者多个。需要注意的是,SET具有去重的功能,所以SET类型中不可能包含相同的元素。此外,如果希望从SET类型字段中找出非法的记录只需查找包含空字符串或二进制值为0的行。

(3)日期时间型

日期时间型的数据是非常常见的,比如用户的出生日期、注册日期、登陆时间、产品的订单时间等等,都属于日期时间型数据。MySQL——常用数据类型
这里需要重点了解一下TIMESTAMP这种类型。

  • 这种时间戳类型可以将客户端当前时区转化为UTC(世界标准时间),对于跨时区业务来说,TIMESTAMP类型通常为首选;
  • 此外,TIMESTAMP时间戳类型具有自动初始化和更新的功能,也就是说这种类型的数据在没有赋值时,会以系统时间填补;当数据表中其他字段的数据发生变化时(也就是被修改时),TIMESTAMP这个类型所对应的字段的观测值也会被更新成系统时间。

数据类型的应用场景

根据经验,通常在数据库操作中有3中情况会涉及数据类型:MySQL——常用数据类型

上一篇:3-phase的超时退出(timeout,仅限于run_phase)


下一篇:JAVASE基础知识