MySql数据库 数值类型的显示宽度

4,249 阅读2分钟

这可能是我见过最没卵用的东西了

显示宽度

什么是显示宽度
在一些sql语句中你可能会看到这样一些写法

CREATE TABLE `<table_name>` (
	`name` varchar(10),
	`age` int(2)
);

其中name varchar(10) 这行我们很熟悉 varchar(100) 表示最大长度为100, 但是后面的 age int(2)中这个 int后面跟着的这个2是什么样意思,其实这个就是显示宽度

所谓的显示宽度,其实就是显示的时候,看到的最少数字个数。

比如 int(2) ,表示不管你的数值是多少,最少可以看到两个数字。假如你存的数值的9,没有满两位,就会在前面补零。假如你的数值是120,超过了显示宽度,则直接显示原始值,不做补零操作。

注意:显示宽度不会对原本的值进行更改,只会在显示的时候改变数值的样式。

要想让显示宽度用零来填充,还需要加上一个关键字,如下

CREATE TABLE `<table_name>` (
	`name` varchar(10),
	`age` int(2) ZEROFILL
);

int(2) ZEROFILL这样才能发挥显示宽度的功能

注意

  • 显示宽度只适应用于Mysql

  • 显示宽度和数值类型的取值范围是无关的。
    例如int(10) 他的取值范围任然是(-2 147 483 648,2 147 483 647)

  • 显示宽度只是指明MYSQL数值类型最少显示的数字个数。
    当数值的位数小于显示宽度时会有空格或零填充,当数值的位数大于显示宽度时,直接显示该数值

  • 显示宽度的效果(插零)需要配合zerofill使用

番外

我发现 显示宽度 这个没卵用的东西是因为在使用 Navicat这个数据库管理工具在创建表时,数值类型的字段也可以填一个长度。于是便在网上找相关的资料。

mysql 官方介绍