MySQL MySQL 中的 INT(7) 是什么意思?

MySQL MySQL 中的 INT(7) 是什么意思?

MySQL 中,INT(7) 是一种数据类型,表示整数类型,其中的数字 7 指的是显示宽度。那么,INT(7) 到底是什么意思呢?

阅读更多:MySQL 教程

INT(7) 的意义

MySQL 中,INT(7) 主要用于指定整数类型的列宽,而不是它的存储范围。也就是说,如果我们将一个超过宽度的整数插入到 INT(7) 类型的列中,MySQL 也会将其完美地存储下来。

举个例子,如果我们定义了一个 INT(7) 类型的列,将其插入超过宽度的整数后,MySQL 仍然会保持与超过宽度的整数相等的存储范围。

CREATE TABLE `mytable` (
  `id` int(7) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `mytable` (`name`) VALUES ('test');
INSERT INTO `mytable` (`name`) VALUES ('1234567890');

我们可以看到,当我们查询 id 字段时,它的存储范围超过了它的显示宽度,但 MySQL 仍然可以正确地保存它的值。

INT 的存储范围

INT 类型是 MySQL 中最常用的数字类型之一。它支持的存储范围是从 -2147483648 到 2147483647。

CREATE TABLE `mytable` (
  `id` INT NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

宽度的作用

INT 类型中的宽度指的是显示宽度,而不是存储范围。这意味着当我们定义一个 INT(7) 类型的列时,它的显示宽度会被限制为 7 个字符。如果插入的数据不足 7 个字符,MySQL 将用零填充左侧,以便使其达到指定的宽度。

CREATE TABLE `mytable` (
  `id` INT(7) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

我们需要注意的是,宽度只用于显示目的。它并不影响存储范围。当我们插入一个值时,MySQL 将值的实际范围存储在内部,而不是存储其显示宽度。

总结

在 MySQL 中,INT(7) 表示整数类型,其中的数字 7 指的是显示宽度,宽度仅用于显示目的。INT 类型支持的存储范围是从 -2147483648 到 2147483647,无论列的宽度如何,MySQL 都将准确地存储值的实际范围。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程