Mysql 不使用表列长度有什么缺点吗

Mysql 不使用表列长度有什么缺点吗,mysql,pdo,Mysql,Pdo,我在摆弄一个数据库,发现我可以在一列中添加一个长度为8的整数(int(4)) 是否有超过指定长度的缺点?对于整数类型,宽度仅用于显示目的,它对可存储在列中的值没有影响。这是通过在类型tinyint、smallint、mediumint、int和bigint之间进行选择来控制的 请参见有关整数类型,宽度仅用于显示目的,它对可存储在列中的值没有影响。这是通过在类型tinyint、smallint、mediumint、int和bigint之间进行选择来控制的 请参见有关整数类型,宽度仅用于显示目的,它

我在摆弄一个数据库,发现我可以在一列中添加一个长度为8的整数(
int(4)


是否有超过指定长度的缺点?

对于整数类型,宽度仅用于显示目的,它对可存储在列中的值没有影响。这是通过在类型
tinyint
smallint
mediumint
int
bigint
之间进行选择来控制的


请参见

有关整数类型,宽度仅用于显示目的,它对可存储在列中的值没有影响。这是通过在类型
tinyint
smallint
mediumint
int
bigint
之间进行选择来控制的


请参见

有关整数类型,宽度仅用于显示目的,它对可存储在列中的值没有影响。这是通过在类型
tinyint
smallint
mediumint
int
bigint
之间进行选择来控制的


请参见

有关整数类型,宽度仅用于显示目的,它对可存储在列中的值没有影响。这是通过在类型
tinyint
smallint
mediumint
int
bigint
之间进行选择来控制的


请看

巴尔马正中目标。我在这个答案中添加了一些例子。超过规定长度没有明显的缺点。为了简单起见,我倾向于使用INT(不提供其长度)

Int将允许存储-2147483648到2147483647的有符号数据,以及0到4294967295的无符号数据,无论您使用Int(1)、Int(4)、Int还是偶数Int(45)

此示例仅说明为int指定的长度如何不影响int列中信息的存储。如果表为int(1),则可以预期相同的结果

如果长度不包括在INT的声明中,则INT(11)由MySQL承担(我的版本是5.6.14)

显示长度示例

create table test(id int(45) zerofill);
insert into test values (2147483647);
select * from test;
其结果将是

+-----------------------------------------------+
| id                                            |
+-----------------------------------------------+
| 000000000000000000000000000000000002147483647 |
+-----------------------------------------------+
+------------+
| id         |
+------------+
| 2147483647 |
+------------+
另一个例子

create table test(id int(2) zerofill);
insert into test values (2147483647);
select * from test;
其结果将是

+-----------------------------------------------+
| id                                            |
+-----------------------------------------------+
| 000000000000000000000000000000000002147483647 |
+-----------------------------------------------+
+------------+
| id         |
+------------+
| 2147483647 |
+------------+

希望这些信息有帮助。

巴尔马的目标是正确的。我在这个答案中添加了一些例子。超过规定长度没有明显的缺点。为了简单起见,我倾向于使用INT(不提供其长度)

Int将允许存储-2147483648到2147483647的有符号数据,以及0到4294967295的无符号数据,无论您使用Int(1)、Int(4)、Int还是偶数Int(45)

此示例仅说明为int指定的长度如何不影响int列中信息的存储。如果表为int(1),则可以预期相同的结果

如果长度不包括在INT的声明中,则INT(11)由MySQL承担(我的版本是5.6.14)

显示长度示例

create table test(id int(45) zerofill);
insert into test values (2147483647);
select * from test;
其结果将是

+-----------------------------------------------+
| id                                            |
+-----------------------------------------------+
| 000000000000000000000000000000000002147483647 |
+-----------------------------------------------+
+------------+
| id         |
+------------+
| 2147483647 |
+------------+
另一个例子

create table test(id int(2) zerofill);
insert into test values (2147483647);
select * from test;
其结果将是

+-----------------------------------------------+
| id                                            |
+-----------------------------------------------+
| 000000000000000000000000000000000002147483647 |
+-----------------------------------------------+
+------------+
| id         |
+------------+
| 2147483647 |
+------------+

希望这些信息有帮助。

巴尔马的目标是正确的。我在这个答案中添加了一些例子。超过规定长度没有明显的缺点。为了简单起见,我倾向于使用INT(不提供其长度)

Int将允许存储-2147483648到2147483647的有符号数据,以及0到4294967295的无符号数据,无论您使用Int(1)、Int(4)、Int还是偶数Int(45)

此示例仅说明为int指定的长度如何不影响int列中信息的存储。如果表为int(1),则可以预期相同的结果

如果长度不包括在INT的声明中,则INT(11)由MySQL承担(我的版本是5.6.14)

显示长度示例

create table test(id int(45) zerofill);
insert into test values (2147483647);
select * from test;
其结果将是

+-----------------------------------------------+
| id                                            |
+-----------------------------------------------+
| 000000000000000000000000000000000002147483647 |
+-----------------------------------------------+
+------------+
| id         |
+------------+
| 2147483647 |
+------------+
另一个例子

create table test(id int(2) zerofill);
insert into test values (2147483647);
select * from test;
其结果将是

+-----------------------------------------------+
| id                                            |
+-----------------------------------------------+
| 000000000000000000000000000000000002147483647 |
+-----------------------------------------------+
+------------+
| id         |
+------------+
| 2147483647 |
+------------+

希望这些信息有帮助。

巴尔马的目标是正确的。我在这个答案中添加了一些例子。超过规定长度没有明显的缺点。为了简单起见,我倾向于使用INT(不提供其长度)

Int将允许存储-2147483648到2147483647的有符号数据,以及0到4294967295的无符号数据,无论您使用Int(1)、Int(4)、Int还是偶数Int(45)

此示例仅说明为int指定的长度如何不影响int列中信息的存储。如果表为int(1),则可以预期相同的结果

如果长度不包括在INT的声明中,则INT(11)由MySQL承担(我的版本是5.6.14)

显示长度示例

create table test(id int(45) zerofill);
insert into test values (2147483647);
select * from test;
其结果将是

+-----------------------------------------------+
| id                                            |
+-----------------------------------------------+
| 000000000000000000000000000000000002147483647 |
+-----------------------------------------------+
+------------+
| id         |
+------------+
| 2147483647 |
+------------+
另一个例子

create table test(id int(2) zerofill);
insert into test values (2147483647);
select * from test;
其结果将是

+-----------------------------------------------+
| id                                            |
+-----------------------------------------------+
| 000000000000000000000000000000000002147483647 |
+-----------------------------------------------+
+------------+
| id         |
+------------+
| 2147483647 |
+------------+

希望这些信息有帮助。

谢谢Barmar!我原以为会出错,但现在我明白了。我刚刚测试了varchar,长度确实有影响,很高兴看到这种差异,谢谢!谢谢你,巴尔马!我原以为会出错,但现在我明白了。我刚刚测试了varchar,长度确实有影响,很高兴看到这种差异,谢谢!谢谢你,巴尔马!我原以为会出错,但现在我明白了。我刚刚测试了varchar,长度确实有影响,很高兴看到这种差异,谢谢!谢谢你,巴尔马!我原以为会出错,但现在我明白了。我刚刚测试了varchar,长度确实有影响,很高兴看到这种差异,谢谢!谢谢所有的例子和解释谢谢所有的例子和解释谢谢所有的例子和解释谢谢所有的例子和解释