MySQL数据类型-整型
MySQL支持SQL标准整数类型integer(或INT)和SMALLINT。作为标准的扩展,MySQL还支持整数类型TINYINT、MEDIUMINT和BIGINT。
| 类型 | 所占字节 | 有符号最小值 | 无符号最小值 | 有符号最大值 | 无符号最大值 |
|---|---|---|---|---|---|
TINYINT |
1 | -128 |
0 |
127 |
255 |
SMALLINT |
2 | -32768 |
0 |
32767 |
65535 |
MEDIUMINT |
3 | -8388608 |
0 |
8388607 |
16777215 |
INT |
4 | -2147483648 |
0 |
2147483647 |
4294967295 |
BIGINT |
8 | -263 |
0 |
263-1 |
264-1 |
下面是创建表的语句:
CREATE TABLE `person` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`age` int(2) COMMENT '年龄',
`stature` int(3) ZEROFILL COMMENT '身高',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
其中列 id 、 age、stature都是整型 。其中int后面括号中的数字指的是列宽,用M表示。对于整数类型,M表示最大显示宽度。最大显示宽度为255。显示宽度与类型可以存储的值范围无关。
我们来添加几条数据测试:
INSERT INTO person( age, stature) VALUES(102,168);
INSERT INTO person( age, stature) VALUES(5,80);
INSERT INTO person( age, stature) VALUES(99999,99999);
查询结果:
| id | age | stature |
|---|---|---|
| 1 | 102 | 168 |
| 2 | 5 | 080 |
| 3 | 99999 | 99999 |
- age我们设置的宽度是2,但是没有增加ZEROFILL属性,这个时候,不论是INT(2)还是INT(11),它在数据库里面存储的都是4个字节的长度,没有任何区别。
- stature我们设置的快读是3,并且设置了ZEROFILL属性,那么我们插入的长度小于3,前面就补0,如080,如果长度大于3,如99999,则也可以正常插入。
注意:我使用 Navicat 查询的时候,第三条记录显示不正确(少了几个9),但是使用命令行查询则正确。
如果为数值列指定了ZEROFILL, MySQL会自动将UNSIGNED属性添加到该列。
INSERT INTO person( age, stature) VALUES(25,-80);
结果如下,说明stature已经是非负整数了:
INSERT INTO person( age, stature) VALUES(25,-80)
> 1264 - Out of range value for column 'stature' at row 1
> 时间: 0.004s
从MySQL 8.0.17开始,对于数字数据类型,不建议使用ZEROFILL属性,并且在将来的MySQL版本中将不再支持该属性。 考虑使用替代方法来产生此属性的效果。 例如,应用程序可以使用 LPAD() 函数将数字零填充到所需宽度,或者将格式化的数字存储在CHAR列中。
总结:
- 不加 ZEROFILL 属性,int(1) 和 int(11)没有任何区别,底层数据都是4个字节,注意字段显示宽度最大为255.
- 加上 ZEROFILL 属性,列默认为无符号,并且值宽度小于显示宽度会在左边补0,大于显示宽度则正常显示。
- 不建议使用 ZEROFILL 属性,使用LPAD函数代替此功能。
MySQL数据类型-整型的更多相关文章
- mysql数据类型——整型INT(m)
1.整形分为四种 tinyint smallint mediumint int bigint 注意: 右侧的取值范围是在未加unsigned关键字的情况下,如果加了unsigned,则最大值翻倍,如t ...
- GOLANG 基本数据类型 整型
基本数据类型-整型 种类 有符号(负号) int8 int16 int32 int64 无符号(无符号) uint8 uint16 uint32 uint64 架构特定(取决于系统位 ...
- Golang的基础数据类型-整型
Golang的基础数据类型-整型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.整型概述 Go语言的整数类型一共有10个. int: 默认是有符号(signed)整形,占用空间 ...
- GO语言学习——基本数据类型——整型、浮点型、复数、布尔值、fmt占位符
基本数据类型 整型 整型分为以下两个大类: 按长度分为:int8.int16.int32.int64 对应的无符号整型:uint8.uint16.uint32.uint64 其中,uint8就是我们熟 ...
- mysql之整型数据int
mysql数据库设计,其中,对于数据性能优化,字段类型考虑很重要,mysql整型bigint.int.mediumint.smallint 和 tinyint的语法介绍,如下:1.bigint 从 - ...
- python基础知识2——基本的数据类型——整型,长整型,浮点型,字符串
磨人的小妖精们啊!终于可以归置下自己的大脑啦,在这里我要把--整型,长整型,浮点型,字符串,列表,元组,字典,集合,这几个知识点特别多的东西,统一的捯饬捯饬,不然一直脑袋里面乱乱的. 对于Python ...
- 第一节 Python基础之数据类型(整型,布尔值,字符串)
数据类型是每一种语言的基础,就比如说一支笔,它的墨有可能是红色,有可能是黑色,也有可能是黄色等等,这不同的颜色就会被人用在不同的场景.Python中的数据类型也是一样,比如说我们要描述一个人的年龄:小 ...
- python02 运算符,基本数据类型,整型,字符串
1.python开发IDE pycharm,python编写工具,, #专业版 #不需要汉化 注册码问题解决 https://www.cnblogs.com/evlon/p/4934705.html整 ...
- [日常] Go语言圣经--作用域,基础数据类型,整型
go语言圣经-作用域 1.一个声明语句将程序中的实体和一个名字关联,比如一个函数或一个变量 2.一个变量的生命周期是指程序运行时变量存在的有效时间段;声明语句的作用域对应的是一个源代码的文本区域,它是 ...
随机推荐
- NancyFx 2.0的开源框架的使用-ConstraintRouting
新建一个空的Web项目 然后在Nuget库中安装下面两个包 Nancy Nancy.Hosting.Aspnet 然后在根目录添加三个文件夹,分别是models,Module,Views 然后往Mod ...
- vue-fiters过滤器的使用
1.定义过滤器 2.使用过滤器 ...... <el-table-column prop="user_gender" align="center" lab ...
- Java JNA (五)—— 释放Memory对象分配的内存
Java进程的内存包括Java NonHeap空间.Java Heap空间和Native Heap空间. JNA中的Memory对象是从Native Heap中分配空间.但java的GC是针对Java ...
- linux 验证 NFS 是否成功
服务器端----->>客户端 1. 服务器端 [root@allentuns ~]# ifconfig |grep "Bcast" inet addr:192.168. ...
- linux安装 inotify
[root@rsync-client-inotify ~]# yum install make gcc gcc-c++ [root@rsync-client-inotify ~]# wget http ...
- keras 下载预训练模型报错SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)
import ssl ssl._create_default_https_context = ssl._create_unverified_context https://stackoverflow. ...
- scapy - 基于python的数据包操作库
简介 地址:https://github.com/secdev/scapy scapy是一个基于python的交互式数据包操作程序和库. 它能够伪造或者解码多种协议的数据包,通过使用pcap文件对他们 ...
- 【leetcode】1078. Occurrences After Bigram
题目如下: Given words first and second, consider occurrences in some text of the form "first second ...
- Linux根据进程号查找其程序文件路径 及 lsof 命令使用
查找进程文件路径 lsof -p pid 1.列出所有打开的文件: lsof 备注: 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位 2. 查看谁正在使用某个文件 lsof ...
- Jira插件安装
以下操作需要反编译 1.反编译的jar包 1)E:\JIRA安装路径\atlassian-jira\WEB-INF\atlassian-bundled-plugins\atlassian-univer ...