mysql的数据类型有哪些常用类型

嘿,你问我MySQL数据类型选择?我需要和你谈谈这件事。
上周一个客户数据库运行缓慢,最终发现类型没有被正确使用。

让我带您了解一下数字类型:
此时一般不使用TINYINT和SMALLINT,除非确实是个位数。
我记得2 02 3 年我们在上海搭建电商系统的时候,我们对1 到5 的用户级别使用了TINYINT,以节省空间。

INT是最常用的,没有什么问题。
我曾经在我正在开发的后端系统中对所有ID都使用INT,花费了2 1 亿,这已经足够了。
如果你有几亿用户,就需要像淘宝一样使用BIGINT。
到 2 02 2 年,他们似乎将使用 BIGINT 来表示订单号。

谨慎使用浮点数! FLOAT/DOUBLE 特别容易出现精度问题。
我自己掉入的陷阱是2 02 1 年做金融项目时,用FLOAT存入金额。
小数点后两位不符,顾客抱怨,怀疑人生。
后来我改用DECIMAL(1 0,2 )。
金额字段必须以这种方式创建才能绝对正确。

选择字符串类型比较困难:
CHAR(N)?不要使用它!无论节省多少,CHAR(N) 的长度都是固定的。
2 02 2 年北京的一个项目中,用户保存了昵称。
本来我想使用 CHAR(1 0),但有人指定了一个很长的昵称,之后所有内容都被截断,数据也变得混乱。
VARCHAR 是正确的选择。
只要内存足够,改变长度就省事了。
TEXT 行取决于大小。
当我在新闻网站工作时,我使用 TEXT 作为文章内容,使用 CENTER TEXT 作为评论部分,这已经足够了。
不要盲目使用LONGTEXT,4 GB内存对你来说是不够的。

ENUM 现在也很少见了。
我在 2 02 3 年参与了旧系统的重建,并将所有 ENUM 切换为 VARCHAR。
为什么?因为一旦改变了ENUM的预定义值,所有的数据都会出错,而且再改就很糟糕了。
除非您确定在一生中不需要改变它,例如例如。
性别(“男”、“女”),使用 ENUM。

日期/时间类型:
TIMESTAMP是最方便的。
创建/修改时间会自动更新。
我将其用于所有新项目。
2 02 2 年开发深圳订房系统时,TIMESTAMP会自动记录时间戳,大大简化了开发。

日期和时间很少单独使用。
我曾经创建过一个调度系统,其中使用 DATE 表示约会,使用 TIME 表示工作时间,使用 TIME 表示下班时间。
这使得查询更加容易。
DATETIME 最常用,但要注意范围是 1 000 到 9 9 9 9 一些不支持特定年份的数据库会出现问题。

无论如何,在选择类型时,取决于场景:
金额为小数
如果ID足够大,则使用BIGINT
文本使用VARCHAR,超长TEXT
时间戳TIMESTAMP是最省心的
具体选择取决于你的数据范围、精度要求和查询频率。
我还在考虑在重建旧系统时将 ENUM 切换为 VARCHAR。
虽然很乏味,但绝对是值得的。
否则数据会被改变复杂的。

Mysql数据库中有哪些数据类型?

嘿,我们来谈谈 MySQL 数据类型。
这件事对我来说就像是一个老朋友。

首先,数值类型必须分门别类。
整数和浮点数是支柱。
在整数中,TINYINT就像一个微小的点,可以存储-1 2 8 到1 2 7 ,无符号版本是0到2 5 5 甚至更大,SMALLINT可以存储-3 2 7 6 8 到3 2 7 6 7 ,无符号版本可以存储0到6 5 5 3 5 更大范围上,MEDIUMINT可以存储-8 3 8 8 6 08 到8 3 8 8 6 07 ,无符号版本是0到1 6 7 7 7 2 1 5 INT(或INTEGER)更大,可以存储-2 1 4 7 4 8 3 6 4 8 到2 1 4 7 4 8 3 6 4 7 ,无符号版本是从0到4 2 9 4 9 6 7 2 9 5 此外,BIGINT可以存储非常大的数字,从-9 2 2 3 3 7 2 03 6 8 5 4 7 7 5 8 08 到9 2 2 3 3 7 2 03 6 8 5 4 7 7 5 8 07 ,无符号版本为0到1 8 4 4 6 7 4 4 07 3 7 09 5 5 1 6 1 5
对于浮点数,常见的是FLOAT和DOUBLE。
FLOAT 是单精度。
M和D分别代表宽度长度和小数位。
默认值为 1 0,2 DOUBLE是双精度,比FLOAT更精确,默认长度和位数是1 6 .4 DECIMAL 类似,但强调精度且不四舍五入。

日期和时间也有多种类型。
DATE是纯日期,格式为YYYY-MM-DD,范围是1 000到9 9 9 9 DATETIME是日期和时间的组合,格式是YYYY-MM-DD HH:MM:SS,范围更大。
TIMESTAMP 为时间戳,格式为 YYYYMMDDHHMMSS,取值范围为 1 9 7 0 年至 2 03 7 年。
TIME 为时间,格式为 HH:MM:SS。
YEAR 是年份,长度可以是两位数或四位数字。

字符串类型更加丰富。
CHAR 是固定长度字符串,VARCHAR 是可变长度,TEXT 和 BLOB 处理文本和二进制数据。
ENUM 和 SET 有点像多项选择题。
ENUM是单选,SET是多选。

选择数据类型时,必须考虑准确性、空间使用、语言处理难易程度和传输兼容性。
总之,MySQL的数据类型很多,需要根据实际情况进行选择。

我以前在做项目时遇到过这种情况。
有一次,项目需要存储用户密码,我选择了CHAR(6 0),因为密码通常很长,必须保证安全。
这个问题要根据实际情况来决定。

MySQL数据库常用数据类型都有哪些

这就是坑。
别相信。
不要这样做。