详解MySQL数据类型int(M)中M的含义


Posted in Python onNovember 20, 2016

介绍

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)”,我想不出有何意义。

下面补充一下数据类型

1、整型

MySQL数据类型 含义(有符号)
tinyint(m) 1个字节 范围(-128~127)
smallint(m) 2个字节 范围(-32768~32767)
mediumint(m) 3个字节 范围(-8388608~8388607)
int(m) 4个字节 范围(-2147483648~2147483647)
bigint(m) 8个字节 范围(+-9.22*10的18次方)

取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。
int(m)里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度,不知道这个m有什么用。

2、浮点型(float和double)

MySQL数据类型 含义
float(m,d) 单精度浮点型 8位精度(4字节)  m总个数,d小数位
double(m,d) 双精度浮点型 16位精度(8字节) m总个数,d小数位

设一个字段定义为float(5,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位。

3、定点数

浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。

decimal(m,d) 参数m<65 是总个数,d<30且 d<m 是小数位。

4、字符串(char,varchar,_text)

MySQL数据类型 含义
char(n)  固定长度,最多255个字符
varchar(n) 可变长度,最多65535个字符
tinytext 可变长度,最多255个字符
text  可变长度,最多65535个字符
mediumtext 可变长度,最多2的24次方-1个字符
longtext 可变长度,最多2的32次方-1个字符

5、日期和时间数据类型

MySQL数据类型 含义
date  3字节,日期,格式:2014-09-18
time  3字节,时间,格式:08:42:30
datetime 8字节,日期时间,格式:2014-09-18 08:42:30
timestamp 4字节,自动存储记录修改的时间
year  1字节,年份

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
Python查询Mysql时返回字典结构的代码
Jun 18 Python
python实现带验证码网站的自动登陆实现代码
Jan 12 Python
详解python中requirements.txt的一切
Mar 03 Python
python实现对excel进行数据剔除操作实例
Dec 07 Python
Pandas读写CSV文件的方法示例
Mar 27 Python
Pandas之排序函数sort_values()的实现
Jul 09 Python
pandas如何处理缺失值
Jul 31 Python
Python操作qml对象过程详解
Sep 26 Python
利用pandas向一个csv文件追加写入数据的实现示例
Apr 23 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
Nov 30 Python
flask项目集成swagger的方法
Dec 09 Python
弄清Pytorch显存的分配机制
Dec 10 Python
python制作websocket服务器实例分享
Nov 20 #Python
Flask框架的学习指南之用户登录管理
Nov 20 #Python
Flask框架的学习指南之制作简单blog系统
Nov 20 #Python
Flask框架的学习指南之开发环境搭建
Nov 20 #Python
Python 描述符(Descriptor)入门
Nov 20 #Python
独特的python循环语句
Nov 20 #Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
Nov 19 #Python
You might like
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
对盗链说再见...
2006/10/09 PHP
理解PHP5中static和const关键字的区别
2007/03/19 PHP
php实现网站插件机制的方法
2009/11/10 PHP
php中模拟POST传递数据的两种方法分享
2011/09/16 PHP
PHP读取PDF内容配合Xpdf的使用
2012/11/24 PHP
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
Jquery Change与bind事件代码
2011/09/29 Javascript
JSON语法五大要素图文介绍
2012/12/04 Javascript
textarea 控制输入字符字节数(示例代码)
2013/12/27 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
2019/09/05 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
jQuery实现评论模块
2020/08/19 jQuery
基于js实现的图片拖拽排序源码实例
2020/11/04 Javascript
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
Python实现简单多线程任务队列
2016/02/27 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
党员批评与自我批评(5篇)
2014/09/23 职场文书
保送生自荐信
2015/03/06 职场文书
新年晚会开场白
2015/05/29 职场文书
办公室规章制度范本
2015/08/04 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
Python制作一个随机抽奖小工具的实现
2021/07/07 Python