深入理解MySQL数据库中的int类型 (mysql数据库的int类型)

MySQL是一款广泛使用的关系型数据库管理系统,其中int类型是最常用的数据类型之一。在构建数据库时,要深入理解MySQL数据库中int类型的内部机制和使用方法,才能更好地使用和优化数据库。

一、MySQL中的整型

MySQL支持多种整型,包括tinyint、allint、mediumint、int和bigint。其中,int类型是最常用的整型,因为int类型可以存储-2147483648 ~ 2147483647(4字节)的整数。如果需要存储更大的整数,则需要使用bigint类型,可以存储-9223372023854775808 ~ 9223372023854775807(8字节)的整数。

在MySQL中,整型可以使用有符号或无符号。有符号整型包括负数和正数,而无符号整型仅包括非负数。大多数时候,我们使用有符号整型,但在存储大整数时,可以考虑使用无符号整型。无符号整型比有符号整型可以存储更大的正整数。

二、MySQL中的int类型存储结构

MySQL中的int类型使用二进制补码存储,在计算机中25的二进制补码为10011,5的二进制补码为00101,那么25+5=30的二进制补码为10110,转换成十进制即为30。因此,计算机可以很好地处理二进制补码的数据类型。

在MySQL中,int类型占4个字节,可以存储-2147483648 ~ 2147483647的整数。int类型的取值范围如下表所示。

| 类型 | 最小值 | 更大值 |

| ————- | —————— | —————— |

| int | -2147483648 | 2147483647 |

| unsigned int | 0 | 4294967295 |

三、MySQL中的int类型使用方法

在MySQL中创建表时,我们需要选择每个字段的数据类型,包括int类型。

例如,我们可以使用以下命令创建一个包含id、name、age三个字段的表。

“`

CREATE TABLE student (

id int(11) NOT NULL AUTO_INCREMENT,

name varchar(50) NOT NULL DEFAULT ”,

age tinyint(4) NOT NULL DEFAULT ‘0’,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

“`

在表中,id字段使用int(11)类型,在字段后面添加(11)表示字段宽度为11个字符,这个字符长度是确定的,并不是真正的数据长度。id字段还使用了AUTO_INCREMENT属性,表示在插入新记录时,自动为id字段分配唯一的自增值。

对于int类型的字段,还可以添加一些其他的属性,例如UNSIGNED、ZEROFILL、NOT NULL、DEFAULT等。

1. UNSIGNED

UNSIGNED属性表示该字段只可以存储非负整数,即无符号整型。

例如,我们可以使用以下命令创建一个只存储正整数的表。

“`

CREATE TABLE example (

id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,

name varchar(50) NOT NULL DEFAULT ”,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

“`

2. ZEROFILL

ZEROFILL属性表示在取出数据时,不足位数的数据将用0填充。例如,如果一个字段的宽度为4,其值为9,则它的输出值为0009。

例如,我们可以使用以下命令创建一个width字段使用int类型且自动填充前导零的表。

“`

CREATE TABLE example (

id int(11) NOT NULL AUTO_INCREMENT,

name varchar(50) NOT NULL DEFAULT ”,

width int(11) ZEROFILL NOT NULL DEFAULT ”,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

“`

3. NOT NULL

NOT NULL属性表示该字段不可以为空,必须输入数据。

例如,我们可以使用以下命令创建一个age字段使用int类型且不为空的表。

“`

CREATE TABLE example (

id int(11) NOT NULL AUTO_INCREMENT,

name varchar(50) NOT NULL DEFAULT ”,

age int(11) NOT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

“`

4. DEFAULT

DEFAULT属性表示当该字段没有输入数据时,将默认赋值为指定的值。

例如,我们可以使用以下命令创建一个age字段使用int类型且使用默认值的表。

“`

CREATE TABLE example (

id int(11) NOT NULL AUTO_INCREMENT,

name varchar(50) NOT NULL DEFAULT ”,

age int(11) NOT NULL DEFAULT ’18’,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

“`

四、MySQL中的int类型优化

在使用MySQL数据库时,我们通常需要考虑如何优化数据库性能,int类型也有一些优化技巧。

1. 使用正确的整型

在创建表时,我们需要根据字段的实际需要选择正确的整型,不要使用过大或过小的整型。如果使用过大的整型,将浪费存储空间,增加数据库负担。如果使用过小的整型,则存在存储不下的风险。

因此,需要根据实际需要合理选择整型大小。

2. 不要使用过多的int类型字段

在设计表结构时,应尽量避免使用过多的int类型字段,尽量使用其他类型字段进行数据存储。如果过多使用int类型,将增加数据库负担,也会占用更多的存储空间。在实际使用中,可以使用enum、varchar等类型进行数据存储,以减少int类型字段的使用。

3. 使用无符号整型

在存储非负整数时,应使用无符号整型。无符号整型比有符号整型可以存储更大的正整数,并且能够避免负数对存储空间的浪费。

4. 使用自增主键

在创建表时,建议使用自增主键。自增主键可以简化数据输入,也可以避免数据重复,实现快速查询。

在使用自增主键时,还需要注意以下几点:

(1) AUTO_INCREMENT值的起始值和步长,可以使用以下命令设置:

“`

ALTER TABLE tablename AUTO_INCREMENT = value;

ALTER TABLE tablename AUTO_INCREMENT = (SELECT MAX(id) + 1 FROM tablename);

“`

(2)自增id是无法跨分区使用的,因此,应该考虑在表的分区设计时,对自增id进行分区。

五、

在MySQL数据库中,int类型是最常用的数据类型之一。我们需要深入理解MySQL数据库中int类型的内部机制和使用方法,才能更好地使用和优化数据库。

在使用int类型时,需要根据实际需要选择正确的整型、避免使用过多的int类型字段、使用无符号整型以及使用自增主键等方法来优化数据库性能。

通过优化数据库的设计和使用方式,可以提高数据库的性能和可靠性,为业务提供更好的支持。

相关问题拓展阅读:

mysql中int型的数字怎么转换成字符串

mysql中将int类型的数字转换成

字符串

,只需要对要转换的数字使用concat方法即可,详细操作如下图。

示例如下:

拓展资料

可以使用命令行工具管理 MySQL 数据库(命令 mysql 和 mysqladmin),也可以从 MySQL 的网站下载图形管理工具 MySQL Administrator, MySQL Query Browser 和 MySQL Workbench。

phpMyAdmin是由 php 写成的 MySQ L资料库系统管理程程序,让管理者可用 Web 界面管理 MySQL 资料库。

phpMyBackupPro也是由 PHP 写成的,可以透过 Web 界面创建和管理数据库。它可以创建伪 cronjobs,可以用来自动在某个时间或周期备份 MySQL 数据库。

另外,还有其他的 GUI 管理工具,例如 mysql-front 以及 ems mysql manager, navicat等等。

资料来源:

百度百科:mysql

MySQL 数字类型转换函数(concat/cast)。

1、将Int 转为varchar经常用 concat函数,比如concat(8,’0′) 得到字符串 ’80′。

2、将varchar 转为Int 用 cast(a as signed) a为varchar类型的字符串。

总结:类型转换和SQL Server一样,就是类型参数有点点不同 : CAST( AS 类型) , CONVERT(,类型)。

扩展资料:

可用的类型:

二进制,同带binary前缀的效果 : BINARY

字符型,可带参数 : CHAR()

日期 : DATE

时间: TIME

日期时间型 : DATETIME

浮点数 : DECIMAL

整数 : SIGNED

无符号整数 : UNSIGNED

cast函数运行示例

参考资料:

mysql-百度百科

字段:number  是integer类型    在表test中

select cast(number as char) as number from test;  

或者convert()方法。因为转换的时候mysql不支持转换成varchar所有要转成char.

/* 比如将123转换为char类型 */

SELECT CAST(123 AS CHAR); 

/* 或者使用concat方法 */

SELECT CONCAT(123,”);

扩展资料:

Int是将一个数值向下取整为最接近的整数的函数。INT是数据库中常用函数中的取整函数,常用来判别一个数能否被另一个数整除。

Basic函数

原型:Int(number)

类别:数学函数

返回值:Integer 类型

作用:求不大于number 的更大整数,Int(3.8)=3,Int(-3.8)=-4。

注意:int不能取整。取整要用fix。

举例:

Dim aa = Int(-32.9)Msgbox a  

— 请叫我红领巾,不要问我为什么,有才就是这么任性

/* 比如将123转换为char类型 */

SELECT CAST(123 AS CHAR); 

/* 或者使用concat方法 */

SELECT CONCAT(123,”);

/* 比如将123转换为char类型 */SELECT CAST(123 AS CHAR); /* 或者使用concat方法 */SELECT CONCAT(123,”);

mysql中int,bigint,allint和tinyint的区别与长度

— int

从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。

— bigint

从 -2^63 (775808) 到 2^63-1

(75807) 的整型数据(所有数字)。存储大小为 8 个字节。

P.S.

bigint已经有长度了,在mysql建表中的length,只是用于显示的位数

— allint

从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为

2 个字节。

— tinyint

从 0 到 255 的整型数据。存储大小为 1 字节。

— 在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint

— 在数据类型优先次序表中,bigint 位于 allmoney 和 int 之间。

只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。

mysql数据库的int类型的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mysql数据库的int类型,深入理解MySQL数据库中的int类型,mysql中int型的数字怎么转换成字符串,mysql中int,bigint,allint和tinyint的区别与长度的信息别忘了在本站进行查找喔。


数据运维技术 » 深入理解MySQL数据库中的int类型 (mysql数据库的int类型)