每日一记-mysql中的int(11)-int(4)和int类型
来源:互联网 发布:c语言if else if 编辑:程序博客网 时间:2024/06/02 05:45
mysql中的int(4)-int(11)与int类型
前言
对于数据库,使用倒也不少,增删查改各种操作,但是没有认真学习过,只是会用,最近遇到一个情况才去研究了一个小问题。
新建一个表的时候:
CREATE TABLE test (id int(11) NOT NULL AUTO_INCREMENT)
之前一直有一个习惯的认知,觉得在建表中的int(#)就表示用#位的int型数据,有时会好奇为什么这么设置,但是也没研究过。这次是调试过程中,遇到了问题还以为程序性错误了,最后才发现是自己认知错误。
int(4)-int(11)-int类型
int类型
int类型的不用多少,常规的数据类型,4字节,无符号数范围0~4294967295,有符号数范围-2147483648~2147483647,
int(4)-int(11)
int后边的(#)内的数字#与int类型的数字范围无关,不会因为里边是11或者4,就表示11位或者4位的int型数据,这个#字只表示数字显示出来的宽度。数据显示的宽度有俩种情况:
- 如果没有在数据库设置0填充,那么其实不管设置显示的宽度为多少,显示就是数据库内的数据,不会在数据左侧自动填充0来补足显示的宽度;
- 设置了0填充,在查询结果时候显示出来的数据宽度不够设置的显示宽度时候,就会在数据左侧填充0直到达到设置的显示宽度,但是有一个问题就是设置了0填充,数据会自动变成unsigned类型的;如果数据宽大超过设置的显示宽度,也不会将数据只显示指定的显示宽度。
数据示例
以数据为例,假定有俩张表test、test1:
DROP TABLE IF EXISTS test;CREATE TABLE test (id int(11) NOT NULL AUTO_INCREMENT,name varchar(50) NOT NULL,password varchar(50) NOT NULL,code int(4),PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS test1;CREATE TABLE test1 (id int(11) unsigned zerofill NOT NULL AUTO_INCREMENT,name varchar(50) NOT NULL,password varchar(50) NOT NULL,code int(4) unsigned zerofill,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
分别在俩张表内插入相同的俩条数据:
123,tom,123456,12312345,jack,123456,12345
然后在mysql命令行下查询数据:
实验分析与结论
从上图中可以看出来,同样数据类型,插入同样的数据,显示出来的结果:
- 123如果设置了0填充,则显示是会自动在左侧插入0,补足显示位宽,如int(11)的123为00000000123;没有设置零填充时,就是显示123
- 即便设置了显示的宽度,如果数据宽度超出了设置的显示宽度,如int(4)的12345,显示的时候并不会发生只显示1234或者2345的状况。
需要记住的一点是如果设置了零填充,那么数据的类型会自动变为unsigned的类型,所以在使用时候需要注意这一点。
0 0
- 每日一记-mysql中的int(11)-int(4)和int类型
- mysql int(11) 和int(10) 区别
- Mysql int 类型 小结!
- mysql int类型
- mysql int类型
- Mysql int类型
- flex中的int类型和Number类型
- flex中的int类型和Number类型
- String.indexOf(int ch)中的int类型
- mysql中的int(M)
- MySQL中的int
- mysql中的各种int
- 为什么int类型字段在mysql中默认int(11) 无符号默认int(10)?
- 为什么int类型字段在mysql中默认int(11) 无符号默认int(10)?
- Mysql中,int(10)和int(11)的区别
- Mysql中,int(10)和int(11)的区别
- Mysql中,int(10)和int(11)的区别
- Mysql中,int(10)和int(11)的区别
- Java泛型编程快速入门
- MySQL技术内幕InnoDB存储引擎学习笔记(第八章)
- windows下设置java环境变量的步骤
- h>>y>>sdfdlkp>ldskfje>lsdkfjrle>lsdkfjdger
- 使用FFmpeg动态库
- 每日一记-mysql中的int(11)-int(4)和int类型
- java web项目发布到服务器上步骤
- CGContextSaveGState与CGContextRestoreGState详解
- 自然对数e的来源以及证明
- Android ListView长按弹出CheckBox,实现全选,反选,批量删除功能
- MySQL技术内幕InnoDB存储引擎学习笔记(第九章)
- 2017网易校招内推笔试题
- 后缀数组水题(待完善)
- Android View框架总结(一)