当前位置:网站首页>What is the difference between int (1) and int (10)? Senior developers can't tell!
What is the difference between int (1) and int (10)? Senior developers can't tell!
2022-07-06 06:46:00 【Java notes shrimp】
Click on the official account , utilize Fragment time to learn
confused
I have a problem recently , If you have a watch, you need to add user_id Field ,user_id Fields can be very large , So I mentioned mysql The repair order alter table xxx ADD user_id int(1)
. The leader saw my sql The repair order , So he said : this int(1) I'm afraid it's not enough , Next is an explanation .
In fact, this is not the first time I have encountered such a problem , Many of them have jobs 5 An old driver of more than years . Including I often see that my colleagues have been using int(10)
, It feels like it's working int(1)
, The upper limit of the field is limited , This is certainly not the case .
Data speak
We know that mysql in int Occupy 4 Bytes , So for unsigned int, The maximum is 2^32-1 = 4294967295
, nearly 40 Billion , Did you use it int(1)
, Can't you reach this maximum ?
CREATE TABLE `user` (
`id` int(1) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
id The field is unsigned int(1)
, Let me insert a maximum to see .
mysql> INSERT INTO `user` (`id`) VALUES (4294967295);
Query OK, 1 row affected (0.00 sec)
You can see the success , explain int Back number , No effect int Size supported by itself ,int(1)
、int(2)
...int(10)
No difference .
Zero fill
commonly int Back number , coordination zerofill It works when used together . Let's take an example :
CREATE TABLE `user` (
`id` int(4) unsigned zerofill NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
Be careful int(4)
There's a... In the back zerofill, Let's insert 4 Data .
mysql> INSERT INTO `user` (`id`) VALUES (1),(10),(100),(1000);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
Insert separately 1、10、100、1000 4 Data , Then let's check :
mysql> select * from user;
+------+
| id |
+------+
| 0001 |
| 0010 |
| 0100 |
| 1000 |
+------+
4 rows in set (0.00 sec)
Through the data, we can find int(4) + zerofill Realized the deficiency 4 Place complement 0 The phenomenon of , only int(4) It's no use .
And for 0001 such , The underlying storage is still 1, Just in the show will make up 0.
summary
int The following number cannot represent the length of the field ,int(num)
General plus zerofill, It works .zerofill The function of can generally be used in some numbers related to numbers , For example, the student's number 001 002 ... 999 such , If mysql There is no function of zero padding , But when you have to format and output numbers of equal length , Then you have to deal with it yourself .
source :juejin.cn/post/6992574502282477605
recommend :
Main stream Java Advanced technology ( Learning material sharing )
PS: Because the official account platform changed the push rules. , If you don't want to miss the content , Remember to click after reading “ Looking at ”, Add one “ Star standard ”, In this way, each new article push will appear in your subscription list for the first time . spot “ Looking at ” Support us !
边栏推荐
- 云服务器 AccessKey 密钥泄露利用
- My creation anniversary
- 删除外部表源数据
- 同事上了个厕所,我帮产品妹子轻松完成BI数据产品顺便得到奶茶奖励
- LeetCode 1200. Minimum absolute difference
- 国产游戏国际化离不开专业的翻译公司
- 翻译公司证件盖章的价格是多少
- Data security -- 13 -- data security lifecycle management
- 万丈高楼平地起,每个API皆根基
- Grouping convolution and DW convolution, residuals and inverted residuals, bottleneck and linearbottleneck
猜你喜欢
端午节快乐Wish Dragon Boat Festival is happy
Traffic encryption of red blue confrontation (OpenSSL encrypted transmission, MSF traffic encryption, CS modifying profile for traffic encryption)
LeetCode每日一题(971. Flip Binary Tree To Match Preorder Traversal)
SQL Server manager studio(SSMS)安装教程
[mqtt from getting started to improving series | 01] quickly build an mqtt test environment from 0 to 1
Esp32 esp-idf watchdog twdt
如何做好互联网金融的英语翻译
[ 英语 ] 语法重塑 之 英语学习的核心框架 —— 英语兔学习笔记(1)
Leetcode - 152 product maximum subarray
How to translate biomedical instructions in English
随机推荐
Phishing & filename inversion & Office remote template
Py06 字典 映射 字典嵌套 键不存在测试 键排序
Office-DOC加载宏-上线CS
Lecture 8: 1602 LCD (Guo Tianxiang)
Today's summer solstice
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
26岁从财务转行软件测试,4年沉淀我已经是25k的测开工程师...
How much is it to translate Chinese into English for one minute?
Bitcoinwin (BCW): 借贷平台Celsius隐瞒亏损3.5万枚ETH 或资不抵债
The registration password of day 239/300 is 8~14 alphanumeric and punctuation, and at least 2 checks are included
[web security] nodejs prototype chain pollution analysis
Introduction and underlying analysis of regular expressions
How do programmers remember code and programming language?
【软件测试进阶第1步】自动化测试基础知识
【刷题】怎么样才能正确的迎接面试?
UniPro甘特图“初体验”:关注细节背后的多场景探索
[English] Grammar remodeling: the core framework of English Learning -- English rabbit learning notes (1)
LeetCode每日一题(1997. First Day Where You Have Been in All the Rooms)
Facebook AI & Oxford proposed a video transformer with "track attention" to perform SOTA in video action recognition tasks
Day 239/300 注册密码长度为8~14个字母数字以及标点符号至少包含2种校验