0
点赞
收藏
分享

微信扫一扫

Mysql 数据类型

兔八哥软件爱分享 2022-04-23 阅读 81
数据库

数据类型可以通过 ? data types 查看说明,每种数据类型也可以通过 ? 数据类型 查看。

除了data types 其他可以用?查看的内容可以输入 ? contents 查看。

数据类型 作用
整数 (tinyint, smallint, mediumint, int, bigint) 都是整数型,表示范围为1,2,3,4,8 B(结尾还可以加 unsigned)
字符串 (char(位数), varchar(位数), text) char 长度固定,varchar 长度可变
小数 (float, double, decimal(总位数, 小数点后位数)) 不要用 float, double!
时间日期 (year, date, time, datetime, timestamp) date:年月日
time:时间
datetime:年月日时分秒
timestamp:时间戳,现在距离 1970-1-1 的毫秒数
Mysql 中的枚举类型 (enum, boolean)

PS:

  1. 虽然 text 等类型可以存储很大的数据,不过大数据一般还是不会直接往数据库里存储。如图片,数据库中一般存储其路径、链接。如果非要存储,有 blob (binary large object)。

  2. 金额等小数一般不会用小数的数据类型存储,而是整数类型/100使用。因为小数形式有误差,比如0.1+0.2=0.30000000004.

  3. decimal 这种变长的数据,使用时速度比定长数据慢。而且 decimal 表示范围也有限,不如直接用 bigint。

  4. 时间戳是有表示范围的,毕竟是个有上限的数,到2038年左右就不好用了。

这里了解到了一个很有趣的[“千年虫”问题](漫画:什么是“千年虫”问题? - 知乎 (zhihu.com))。

回到刚才的话题,因此时间戳也并不推荐使用。

5.7 之后版本的 Mysql 支持 json 属性,以键值对的方式存储,内容相对灵活。因为虽然数据库结构相对严谨,但是很多时候并不是所有属性都能考虑得到(如二手交易平台,不同的售卖品属性差的很多,如自行车和冰箱)加入相对灵活的 json ,一定程度上就能解决这类问题。包括以前 Mysql 没有这个功能的时候,许多公司也会建一个 varchar() 字段来存储 json 字符

举报

相关推荐

0 条评论