Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL int(10)

MySQL中int(10) 的 10代表什么

作者:猿java

在MySQL中,我们定义int类型时需要设置长度,比如INT(10),那么10到底代表什么,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧

在 MySQL 中,我们定义int类型时需要设置长度,比如INT(10),那么10 到底代表什么?如果超过这个范围会出现什么问题?这篇文章我们来详细地聊一聊。

1. 含义

在数据类型如 INT 后面的括号中的数字(例如 INT(10))指定了显示宽度,即当使用 ZEROFILL 属性时,系统会在数值前补零以达到指定的宽度。

2.ZEROFILL的应用

当在 INT 类型后使用 ZEROFILL 时,MySQL 会在数值前补零,以符合指定的显示宽度。如下示例:

CREATE TABLE users (
  id INT(10) ZEROFILL,
  name VARCHAR(50)
);

插入数据:

INSERT INTO users (id, name) VALUES (123, 'Alice');

查询结果:

+-----------+-------+
| id        | name  |
+-----------+-------+
| 0000000123 | Alice |
+-----------+-------+

在这个例子中,id 字段显示为 0000000123,达到 10 位宽度。

3.MySQL 8.0.17 及以后的变化

MySQL 8.0.17 版本开始,整数类型的显示宽度被废弃(deprecated),即使指定了显示宽度,默认情况下也不再影响存储或显示。这意味着:

为了更好地理解INT,下面通过几个例子详细解释。

创建表并插入数据:

CREATE TABLE example (
    id INT(10) NOT NULL,
    name VARCHAR(50)
);

INSERT INTO example (id, name) VALUES (1, 'John'), (123456, 'Jane');

查询显示:

SELECT * FROM example;

结果:

+-------+-------+
| id    | name  |
+-------+-------+
|     1 | John  |
| 123456 | Jane  |
+-------+-------+

在没有使用 ZEROFILL 的情况下,显示宽度 10 并未影响输出格式。

使用 ZEROFILL 的情况:

CREATE TABLE example_zf (
    id INT(10) ZEROFILL NOT NULL,
    name VARCHAR(50)
);

INSERT INTO example_zf (id, name) VALUES (1, 'John'), (123456, 'Jane');

SELECT * FROM example_zf;

结果:

+-----------+-------+
| id        | name  |
+-----------+-------+
| 0000000001 | John  |
| 0000123456 | Jane  |
+-----------+-------+

这里,id 字段根据显示宽度 10 补充了前导零。

注意:由于 MySQL 8.0.17 及以后的版本中显示宽度被废弃,建议在设计数据库时避免依赖显示宽度,除非有明确的需求和兼容性考虑。

5. 总结

到此这篇关于MySQL中int(10) 的 10代表什么的文章就介绍到这了,更多相关MySQL int(10) 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文