mysql int tinyint_MySQL中int(M)和tinyint(M)数值类型中M值的意义

首先,我们创建一个数据表test:

mysql> CREATE TABLE test(

-> id1 int(1),

-> id2 tinyint(1)

->);

我们给id1定义为int,并设置字符长度为1,id2定义为tinyint,也设置字符长度为1;

然后分别插入值127,127,结果发现,两者都插入到了数据表中:

mysql> INSERT INTO test(id1,id2) values(127,127);//运行成功

结果是插入成功的,从此次测试已经可以知道,我之前的想法都是错误的,接下来我们再做一个实验,插入数据128,128,即id=128,id2=128:

mysql> INSERT INTO test(id1,id2) values(128,128);//运行失败:ERROR 1264 (22003):Out of range value for column 'id2' at row 1

出错了,int类型的id1插入成功了,tinyint类型的id2提示超出了范围,这是为什么呢?

首先,我们先要了解一个基础知识点,就是下面这张表:(摘自W3C教程)

39e54196f2ef05825d5c1acc5a011b9e.png

上述表格中的数值类型都是定长的,也就是说,无论你存的数值是多少,多大或者多小,占用的字节大小都是固定的。例如,之前设置的int(1),虽然M值是1个字符,但是它所占用的空间大小永远都是4个字节的大小,换句话说就是,你可以存入有符号整型从-2 147 483 648到2 147 483 647包括这两个数的中间任何一个数。int(1)和int(11)占用的是4个字节,可以存入上述这些数,tinyint(1)和tinyint(4)占用的是1个字节,可以存入从-128到127的数,这也是为什么之前的一次试验,int(1)插入128成功,而tinyint(1)插入128却提示超出长度。

那么,这个M值到底代表什么意思呢?

到这里,我们已经可以发现,M值即使设置为1,它也可以存入字符长度大于1的值,那么,如果存入的字符长度小于1会怎么样?我们来试一试:

先将id1的类型更改为int(2),然后插入数据id1=1:

mysql> ALTER TABLE test Modify id1 int(2);

mysql> INSERT INTO test(id1) values(1);//运行成功,说明值1已经插入到test表中

我们查询一下表中的数据,看看结果具体如何:

48304ba5e6f9fe08f3fa1abda7d326ab.png

mysql> SELECT * FROM test;

+------+

| id1 |

+------+

| 1 |

+------+

48304ba5e6f9fe08f3fa1abda7d326ab.png

接下来,我们再修改一下id1的填充数据类型zerofill(表示用0填充),这里先知道如何操作即可,我们再从结果得出结论:

48304ba5e6f9fe08f3fa1abda7d326ab.png

mysql> ALTER TABLE test MODIFY id1 int(2) zerofill;

mysql> SELECT * FROM test;

+------+

| id1 |

+------+

| 01 |

+------+

48304ba5e6f9fe08f3fa1abda7d326ab.png

现在是不是有些清楚了。我们设置的M值是2,没有设置zerofill用0填充时,对于操作没有任何影响,而设置了zerofill后,我们可以清楚地看到值1字符数不足M值,左前位置补0。我们也可以将M值设置成别的大小进行多次测试,这里就不进行测试了。

需要强调的是,不同的数据类型中的M值意义是不一样的,我们这里仅讨论整型中的M值。

从上面我们可以得到如下的结论:

1、整数型的数值类型已经限制了取值范围,有符号整型和无符号整型都有,而M值并不代表可以存储的数值字符长度,它代表的是数据在显示时显示的最小长度;

2、当存储的字符长度超过M值时,没有任何的影响,只要不超过数值类型限制的范围;

3、当存储的字符长度小于M值时,只有在设置了zerofill用0来填充,才能够看到效果,换句话就是说,没有zerofill,M值就是无用的。

总结:int(11),tinyint(1),bigint(20),后面的数字,不代表占用空间容量。而代表最小显示位数。这个东西基本没有意义,除非你对字段指定zerofill。

所以我们在设计mysql数据库时,建表时,mysql会自动分配长度:int(11)、tinyint(4)、smallint(6)、mediumint(9)、bigint(20)。

所以,就用这些默认的显示长度就可以了。不用再去自己填长度,比如搞个int(10)、tinyint(1)之类的,基本没用。而且导致表的字段类型多样化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

密码学重大里程碑!科学家暴力破解迄今最长RSA密钥,功劳却不在摩尔定律

来源:arstechnica密码学达到一个新的里程碑:研究人员解开了有史以来人类计算过的最长的RSA密钥,并对有史以来最大的整数离散对数进行了匹配计算。而且这次的突破不是来自硬件性能的提升,而要归功于软件和算法的改进。不过请放心&a…

mysql 树排序_mysql按树深度排序

我有表pe与列id,名称和lcltyid我有表wp_exrz_locality_localities与id,name和parentlocality表是树,父级包含另一个位置行的id . pe.lcltyid是关键字wp_exrz_locality_localities.id基本上我想做的是检索按“树深度”排序的所有pe条目然而&am…

js动态显示时间

<!DOCTYPE HTML> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"> <title>定时器</title> <script type"text/javascript">var attime;function clock(){var timen…

python 加权随机算法_python中的加权随机样本

从你的代码&#xff1a;..weight_sample_indexes lambda weights, k: random.sample([valfor val, cnt in enumerate(weights) for i in range(cnt)], k)..我认为权重是正整数,而“没有替换”你的意思是没有替换解开的序列.这是一个基于random.sample和O(log n)__getitem__的解…

9大领域187项全球工程前沿发布!有你的研究方向吗?

来源&#xff1a;科学网12月10日&#xff0c;中国工程院战略咨询中心、科睿唯安以及高等教育出版社在中国工程院联合发布《全球工程前沿2019》报告。报告围绕机械与运载工程、信息与电子工程、化工冶金与材料工程、能源与矿业工程、土木水利与建筑工程、环境与轻纺工程、农业、…

ES6兼容性

https://kangax.github.io/compat-table/es6/ 转载于:https://www.cnblogs.com/lilei9110/p/6364740.html

linux mysql插入数据乱码_解决Linux下Tomcat向MySQL插入数据中文乱码问题

一、问题在windows上面使用eclipse开发的项目在windows上面运行一切正常&#xff0c;部署到腾讯云时出现向MySQL数据库中插入数据是中文乱码二、解决办法1、尝试一直接在linux上面使用insert语句插入中文&#xff0c;正常2、尝试二在tomcat配置文件server.xml中加入useBodyEnco…

从零开始用python处理excel数据_Python对Excel的操作

Python几个读取Excel库的介绍:xlwings可结合 VBA 实现对 Excel 编程&#xff0c;强大的数据输入分析能力&#xff0c;同时拥有丰富的接口&#xff0c;结合 pandas/numpy/matplotlib 轻松应对 Excel 数据处理工作。openpyxl简单易用&#xff0c;功能广泛&#xff0c;单元格格式/…

没有“好的”数据,AI就没有未来?听听云测数据怎么说

AI的崛起离不开“好的”数据作为地基&#xff0c;这也是云测数据成立的初衷所在。算力、模型和数据构成了人工智能的三要素&#xff0c;过去&#xff0c;我们过多的把目光聚焦于算力和模型上&#xff0c;殊不知&#xff0c;随着人工智能的深入&#xff0c;好的算法和模型已不再…

IP地址的分类——a,b,c 类是如何划分的

现在的IP网络使用32位地址&#xff0c;以点分十进制表示&#xff0c;如172.16.0.0。地址格式为&#xff1a;IP地址网络地址&#xff0b;主机地址 或 IP地址主机地址&#xff0b;子网地址&#xff0b;主机地址。 IP地址类型 最初设计互联网络时&#xff0c;为了便于寻址以及层次…

idea中event log_【JavaScript 教程】事件——Event 对象

作者 | 阮一峰概述事件发生以后&#xff0c;会产生一个事件对象&#xff0c;作为参数传给监听函数。浏览器原生提供一个Event对象&#xff0c;所有的事件都是这个对象的实例&#xff0c;或者说继承了Event.prototype对象。Event对象本身就是一个构造函数&#xff0c;可以用来生…

python爬取网页新闻_Python爬取新闻网数据

前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。PS&#xff1a;如有需要Python学习资料的小伙伴可以加点击下方链接自行获取基本开发环境Python 3.6Pycharmimport parselimport requestsimport re目标网页分析今天就爬…

谷歌新智能体Dreamer将亮相NeurIPS 2019,数据效率比前身PlaNet快8个小时

来源&#xff1a;雷锋网在具有挑战性的环境中&#xff0c;一些人工智能系统通过利用过去经验所提供的世界表象来实现目标。研究人员将这些应用推广到新的情况&#xff0c;使它们能够在以前从未遇到过的环境中完成任务。事实证明&#xff0c;强化学习——一种使用奖励来推动软件…

Highcharts属性与Y轴数据值刻度显示Y轴最小最大值

Highcharts 官网&#xff1a;https://www.hcharts.cn/demo/highcharts Highcharts API文档&#xff1a;https://api.hcharts.cn/highcharts#yAxis.tickmarkPlacement Highcharts属性与Y轴数据值刻度显示Y轴最小最大值 Highcharts.setOptions({global:{useUTC : false}}); $(f…

mysql 游标总条数_mysql 游标的使用总结

一、游标的基本概念游标&#xff1a;游标是一个存储在Mysql服务器上的数据库查询&#xff0c;它不是一条select语句&#xff0c;而是被该语句检索出来的结果集。本人&#xff0c;学习游标中&#xff0c;曾遇到一个问题&#xff0c;循环总是最后多执行一次。下面分析程序&#x…

AR行业成本拆解解析

来源&#xff1a;三极光电科技一、AR 产业简介&#xff08;一&#xff09;AR 定义AR 技术&#xff08;AugmentedReality&#xff0c;AR&#xff09;是借助光电显示技术、交互技术、多种传感技术和计算机图形与多媒体技术将计算机生成的虚拟环境与用户周围的真实环境融为一体&am…

python语言处理excel_Python语言操作excel

本文主要向大家介绍了Python语言操作excel&#xff0c;通过具体的内容向大家展示&#xff0c;希望对大家学习Python语言有所帮助。#!/usr/bin/env python#coding: utf-8import xlsxwriterworkbook xlsxwriter.Workbook(demo1.xlsx)worksheet workbook.add_worksheet()workshe…

MySQL索引的索引长度问题

转自&#xff1a;http://samyubw.blog.51cto.com/978243/223773 MySQL的每个单表中所创建的索引长度是有限制的,且对不同存储引擎下的表有不同的限制。  在MyISAM表中&#xff0c;创建组合索引时&#xff0c;创建的索引长度不能超过1000&#xff0c;注意这里索引的长度的计算…

怎么查询mysql的语法_mysql查询语法

-- 基本查询-- 查询所有字段-- select * from 表名;select * from students;select * from classes;-- 查询指定字段-- select 列1,列2,... from 表名;select name, gender from students;-- 使用 as 给字段起别名-- select 字段 as 名字.... from 表名;select name as 名字, g…

mimo雷达信号处理_雷达学术入门脉冲雷达信号处理概述

Reviewed by &#xff1a;甜草莓 Robert Zhou&#xff1b;前置知识&#xff1a;概率论与统计学。面向人群&#xff1a;本科生、研究生/信号处理博士。 编者&#xff1a;对于信号处理来说&#xff0c;雷达和通信一直是一体两面&#xff0c;从MIMO通信到MIMO雷达&#xff0c;从OF…