MYSQL有哪些数据类型

说实话,MySQL 中的数据种类非常多,要写下来非常困难。
我们先来说说整数类型。
Tinyint 非常小;只有8 位。
当我第一次开始使用数据库时,有人问为什么它们这么小。
反正如果数据不够大的话,我说。
Smallint 更大;它有1 6 位,一般存储状态码和其他东西。
mediumint 占用2 4 位;它很少被使用,并且在大多数情况下都不被使用。
Int是最常见的; 3 2 位 这是用户ID;存储订单号等就足够了。

小数的种类也有很多种。
浮点数是单精度的。
这就是我在编写计算价格的程序时使用的。
Double比较准确,所以在算钱的时候用它作为保证。
小数(m,d) 是最高位;它可以准确地存储小数。
我使用这个是因为我计算了上次发表声明的时间。
m 总数 d 小数点位置必须写清楚。

文本二进制类型也分为几个级别。
CHAR 具有固定长度。
例如,性别 Ma 保存“男”或“女”;无需更改长度即可解决问题。
VARCHAR 更灵活,因为它可以存储更长的用户名。
BLOB系列存储二进制数据,例如图像文件。
当时我有一个项目是存储照片,TINYBLOB 足以节省空间。
TEXT数组用于存储文本,MEDIUMTEXT一般就足够了。
VARBINARY 与 BINARY 类似;一种是变长,一种是定长;用于存储二进制数据。

但是,有很多类型;所以使用的时候一定要看场景。
不要盲目使用。
不然数据太大,删除起来很头疼。

mysql中常见的数据类型有哪些?

说实话,刚开始做电商项目的时候,我就很头疼整容问题。
客户要求我存储从 1 到 1 00 的会员级别,所以我轻松地使用了 TINYINT。
结果,一次活动之后,礼物突然增加,会员等级一下子跳到了2 00多,TINYINT彻底停产——2 5 5 的上限对于懂玩的程序员来说是最大的坎。

有趣的是浮点数。
调整库存报表后,发现显示的金额总是错误,缺零。
经过检查,发现开发者将订单总价存储为FLOAT。
你知道FLOAT有多“可靠”吗?我试了一下9 .9 9 元一个,又加了1 0个。
数据库中的计算结果为 9 9 .9 1 000000000001 这种准确性问题长期以来一直是银行系统面临的问题。
但电子商务可以做到这一点。

我对定点类型非常满意。
之前我们做跨境电商的时候,浮点数是不能用来进行货币换算的。
否则,1 美元就会变成1 .0000000000001 美元,顾客就会被打死。
DECIMAL(1 0,2 ) 是完整保留两位小数的完美解决方案。
但有一个教训。
十进制的运算比浮点慢。
当查询大量数据时,必须对索引进行优化。

字符串类型是我最常使用的类型。
CHAR(1 0)固定长度的优点是查询快,但是还剩下6 个空间来存放“张三”,浪费资源。
VARCHAR(5 0) 更灵活。
“小明”可以节省2 0个名额。
然而,MySQL 8 .0开始推荐使用JSON类型来存储更复杂的结构,例如{“name”:“张三”,“city”:“上海”}。
TEXT适合存储记录。
我有一个项目,使用TEXT来存储用户反馈,但突然有一天我找不到数据了。
TEXT 类型没有索引——这是一个严肃的教训。

时间和日期 这些兄弟经常吵架。
我有一个使用 TIMESTAMP 来存储创建时间的项目。
结果,跨时区调整界面时,数据出现乱码。
后来我改成了DATETIME的格式。
一个显示系统抱怨说,一位顾客明天要下订单:事实上;数据库时区与服务器不匹配引发的一个笑话。

BLOB类型通常是为二进制文件保留的。
保存玩家头像有一个游戏项目。
它使用 BLOB 直接存储 PNG,这比将 VARCHAR 转换为 Base64 容易得多。
我不太使用 ENUM 和 SET。
后来发现ENUM专业化较差,SET适合做分类标签。
例如,使用 SET(“科技”、“娱乐”、“体育”)作为文章标签比将其拆分为多个字段更容易。

说白了,数据类型的选择确实要看业务情况。
有一个功能是向老人介绍新人,INT是用来存储推荐次数的。
结果4 2 9 4 9 6 7 2 9 5 的上限一天有5 000人同时参与,直接炸爆了3 2 位INT。
因此,现在在设计图表时,我倾向于留出安全边际,尤其是与金钱相关的领域。
浪费一点空间总比造成麻烦好。