MySQL 数据类型中的 integer types 有点奇怪。你可能会见到诸如:int(3)、int(4)、int(8) 之类的 int 数据类型。刚接触 MySQL 的时候,你可能以为 int(3) 占用的存储空间比 int(4) 要小, int(4) 占用的存储空间比 int(8) 小。
MySQL 手册是这么说的
int(M): M indicates the maximum display width for integer types.
在 integer 数据类型中,M 表示最大显示宽度。
原来,在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。说白了,除了显示给用户的方式有点不同外,int(M) 跟 int 数据类型是相同的。
另外,int(M) 只有跟 zerofill 结合起来,才能使我们清楚的看到不同之处。
mysql> drop table if exists t;
mysql> create table t(id int zerofill);
mysql> insert into t(id) values(10);
mysql> select * from t;
+------------+
| id |
+------------+
| 0000000010 |
+------------+
mysql> alter table t change column id id int(3) zerofill;
mysql> select * from t;
+------+
| id |
+------+
| 010 |
+------+
mysql>
mysql> alter table t change column id id int(4) zerofill;
mysql> select * from t;
+------+
| id |
+------+
| 0010 |
+------+
mysql>
mysql> insert into t(id) values(1000000);
mysql> select * from t;
+---------+
| id |
+---------+
| 0010 |
| 1000000 |
+---------+
从上面的测试可以看出,“(M)”指定了 int 型数值显示的宽度,如果字段数据类型是 int(4),则:当显示数值 10 时,在左边要补上 “00”;当显示数值 100 是,在左边要补上“0”;当显示数值 1000000 时,已经超过了指定宽度“(4)”,因此按原样输出。
在使用 MySQL 数据类型中的整数类型(tinyint, smallint, mediumint, int/integer, bigint)时,非特殊需求下,在数据类型后加个“(M)”,我想不出有何意义。
我看到有人使用 int(100)这样的写法,甚吓煞小僧。我们知道int是4个字节,无符号型的话表示的最大范围是0到4294967295,也就是10位,所以int(11+)这样的定义都是没意义的。你可以插入一个9999999999888888888这样的超大“int”到int字段,但是你会发现,你插进去没用,变了,系统会进行调整。把它变为4294967295或者2147483647这样的极值。
分享到:
相关推荐
在本文中,我们将对 Java 数据类型和 MySql 数据类型进行对应一览,帮助开发者更好地理解和使用这两种类型。 字符串类型 在 Java 中,字符串类型对应的是 java.lang.String 类型。在 MySql 中,字符串类型对应的是...
本文将详细介绍MySQL中的各种数据类型及其在Java中的对应类型,并解释这些类型的具体含义以及它们在实际应用中的作用。 #### 数据类型对照表解析 ##### 1. VARCHAR (可变长度字符串) **显示长度:** L+N **数据库...
Mysql、Oracle 中的数据类型与 Java 中的数据类型对应表 MySQL 和 Oracle 是两种常用的关系型数据库管理系统,而 Java 是一种广泛应用于企业级应用开发的编程语言。在数据库应用开发中,理解数据类型的对应关系...
在 Java 编程中,了解 Java 数据类型和 MySql 数据类型的对应关系非常重要。这是因为在 Java 应用程序中,我们经常需要与数据库进行交互,而 MySql 是一种常用的关系数据库管理系统。在本文中,我们将详细介绍 Java ...
Java 和 MySQL 数据类型之间的对比是理解数据库操作和应用程序开发中数据处理的关键。这两种语言的数据类型在功能和使用上都有所不同,尽管它们都用于存储和处理数据,但各自有着特定的适用场景和特点。 首先,Java...
MySQL和Oracle的数据类型则针对存储和操作数据库中的各种数据类型进行了优化。 MySQL的数据类型包括数值类型(如INT、DECIMAL)、字符串类型(如VARCHAR、TEXT)、日期和时间类型(如DATE、TIMESTAMP)以及二进制...
MySQL 数据类型是指在 MySQL 数据库中存储数据的方式,它决定了数据的存储格式、大小和范围。了解 MySQL 数据类型非常重要,因为它直接影响数据库的性能、可维护性和安全性。本篇文章将详细介绍 MySQL 的所有数据...
MySQL 数据类型是数据库设计的基础,理解不同类型的作用和特性对于创建高效、精确的数据库至关重要。本文将详细介绍MySQL中的数据类型,主要包括数值类型、字符串类型和时间日期类型。 1、数值类型 MySQL 中的数值...
下面将详细解析MySQL中常用的各类数据类型,包括它们的大小、范围、格式以及具体用途。 ### 整型数据类型 #### TINYINT - **大小**:1字节 - **范围(无符号)**:0至255 - **用途**:适用于存储小整数值,如状态...
本文将详细介绍MySQL中的主要数据类型,并通过与Oracle数据类型的对比,帮助读者更好地理解和应用这些类型。 #### 二、MySQL数据类型详解 MySQL的数据类型大致可以分为四类:数值类型、字符串类型、日期/时间类型...
在MySQL中定义数据类型具有重要的作用: 1. 对数据进行分类:数据类型有助于对数据进行归类处理,例如整数、字符串、日期等。不同的数据类型执行不同的操作,比如字符串类型可以包含文本,而整数类型只能包含数字。...
总结一下,JDBC和MySQL之间的数据类型对应是数据库编程中的基础,理解并掌握这个对应关系能够提高开发效率,减少运行时错误。通过学习和实践,开发者可以更好地利用JDBC与MySQL进行数据交互,实现各种复杂的数据库...
4. Int/Integer: Int 和 Integer 是 MySQL 中的第四小的整型数据类型,占用 4 字节空间。其有符号范围为 -2147483648~2147483647,无符号范围为 0~4294967295。 5. Bigint: Bigint 是 MySQL 中最大的整型数据类型...
MySQL中数据类型的选择对于数据库设计至关重要,它直接关系到数据存储的有效性和查询的效率。MySQL支持多种数据类型,可以分为几大类:数值型、日期时间型、字符型以及其他数据类型等。 数值型数据类型主要包括:...
【描述】: "本文将深入探讨 MySQL、Oracle 和 SQL Server 三大主流数据库系统中的数据类型,以及它们与 JDBC 数据类型的对应关系,帮助读者全面理解各数据库的数据类型差异和适用场景。" 在数据库设计中,数据类型...
MySQL 数据库支持多种数据类型,包括数值类型、字符串类型、日期和时间类型等。本文将重点探讨数值类型,这是数据库设计中的基础元素,用于存储各种数值数据。 **1. 整数类型** - **TINYINT**: 使用 1 字节存储,...
这里我们将深入探讨MySQL与Oracle数据类型之间的对应关系,以及它们在Java编程语言中的映射。 1. MySQL数据类型: - BIGINT:MySQL中用于存储大整数,对应Oracle的NUMBER类型,可以表示非常大的数值。 - BIT:...
MySQL 数据类型是数据库管理系统中用来定义列属性的关键元素,它决定了可以存储在列中的数据种类。MySQL 支持多种数据类型,包括数值类型、字符串类型、日期和时间类型以及二进制类型。这些数据类型的选择直接影响到...
在IT领域,特别是软件开发与数据库管理中,Java与MySQL之间的数据类型映射是一个至关重要的知识点,它确保了数据在不同平台间能够准确无误地转换与存储。根据提供的文件信息,我们可以深入探讨这一主题,解析Java与...