自我总结,欢迎拍砖!

目的:定义int(3)和int(10)真的有区别吗?

论证:

1.创建student,student2表

分别定义一个student,student2表

  create table student(id int(5) not null primary key,name varchar(20));

  create table student2(id int(10) not null primary key,name varchar(20));

分别在这两个表中插入一条数据:

  insert into student set id =007,name ='tom';insert into student2 set id =007,name ='tom';

查询一下两个表的记录:

   select * from student,student2;

发现没什么区别。

2.增加属性值 [ zerofill ]

那么给student2表id字段加一个属性值 [ zerofill ]:

  alter table student2 modify id int(10) zerofill not null;   //除了id主键属性不需要重新定义,其他属性均需要重新定义

可观察一下student2表修改前后的变化:

加[ zerofill ]属性时,默认会加上unsigned修饰,则此时int的实际长度范围为:0~4294967295(int占4个字节,即32位,2^32),去除了负整数部分

此时,再查一下两个表,会发现:

student2表中id的长度为10,现在知道 [ zerofill ]属性的作用了吧:将id的值用0补全至id的长度10,舍去负整数部分

可以修改id的长度试一试,例如改成int(3),int(5),int(10),其实并不影响id的实际长度。

例如给student表写入一条记录:

  insert into student set id = 555555,name ='test007';

我们会发现:

即使student表id的长度是5,也不会影响id长度大于5的记录的显示。

总结:定义数据库int字段时,一般不需要设置它的长度,若非要设置则可以加属性 [ zerofill ]区分。

PS:1)不管设置成int(?),int实际长度都是用4个字节(32位,最高位区分正负数),所以最大值为:2^31,大概20亿左右(10位10进制的数)。

   2)清空表命令:truncate table student;

   3)命令行执行多个SQL命令时,可以用英文状态下的分号“;”来分割。

mysql 我们眼中的int(10)的更多相关文章

  1. mysql中int(1)与int(10)的区别

    INT[(M)] [UNSIGNED] [ZEROFILL] 普通大小的整数.带符号的范围是-2147483648到2147483647.无符号的范围是0到4294967295. INT(1) 和 I ...

  2. Mysql的BigInt(20),Int(20)以及Bigint(32)有区别吗?

    原文: http://stackoverflow.com/questions/3135804/types-in-mysql-bigint20-vs-int20-etcc http://dev.mysq ...

  3. 面试题 int(3) int(10) 区别

    1.MySQL 中 int(3) int(10) 区别 答案 存储大小并无差异,只是不足位数的时候,左边补0. ###补充知识点 创建数据库表时,加zerofill ,可以看出效果.mysql 默认 ...

  4. sql语句中 int(1)与int(10)有什么区别?资深开发竟然能理解错

    过完春节该投入战斗了,上班第一天发现了一个挺有意思的知识点给大家分享一下:一直以来的的误区我们都认为了int后面的跟的数字为最大显示宽度会对后面插入的参数会有限制,其实倒不是这样的 # 困惑 最近遇到 ...

  5. mysql tinyint smallint mediumint int bigint

    类型 存储所占空间 (无论显示多少位) (单位 字节/bytes) 存储数据范围 最大显示长度 tinyint 1 -128   ~  127                 signed 0     ...

  6. 安装完 MySQL 后必须调整的 10 项配置(转)

    英文原文:10 MySQL settings to tune after installation 译文原文:安装完 MySQL 后必须调整的 10 项配置 当我们被人雇来监测MySQL性能时,人们希 ...

  7. (一)MYSQL ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.10.210' (111) 解决方法

    今天在测试MySQL的连接时候,发现连接不通过,并报错ERROR 2003 (HY000): Can't connect to mysql server on '192.168.10.210' (11 ...

  8. MySQL性能调优的10个方法 - mysql数据库栏目

    摘要: https://edu.aliyun.com/a/29036?spm=5176.11182482.related_article.1.hbeZbF 摘要: MYSQL 应该是最流行了 WEB ...

  9. MYSQL ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.10.210' (111) 解决方法

    今天在测试MySQL的连接时候,发现连接不通过,并报错ERROR 2003 (HY000): Can't connect to mysql server on '192.168.10.210' (11 ...

随机推荐

  1. bzoj:1584: [Usaco2009 Mar]Cleaning Up 打扫卫生

    Description 有N头奶牛,每头那牛都有一个标号Pi,1 <= Pi <= M <= N <= 40000.现在Farmer John要把这些奶牛分成若干段,定义每段的 ...

  2. Shell菜单脚本

    今天在这儿给大家分享一个我简单编写的Shell菜单脚本,傻瓜式的人机交互,人人都可以操作linux. #!/bin/sh #Shell菜单演示 function menu () { cat <& ...

  3. Kafka监控安装

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  4. java的finalize()方法与C++的析构函数

    ---<java编程思想> 读书笔记 --- 2017/3/15 读<java编程思想>读到初始化与清理一章,文中提及java的finalize()方法,联想到了C++的析构函 ...

  5. python数据类型(二)

    一.List(列表) List(列表) 是 Python 中使用最频繁的数据类型. 列表可以完成大多数集合类的数据结构实现.列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套). ...

  6. [国嵌攻略][097][U-Boot新手入门]

    嵌入式软件层次 1.Bootloader 2.Linux内核 3.文件系统 编译U-Boot 1.解压uboot tar zxvf uboot.tar.gz 2.清除uboot make distcl ...

  7. CSS鼠标样式 cursor 属性

    值 描述 url 需使用的自定义光标的 URL. 注释:请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标. default 默认光标(通常是一个箭头) auto 默认.浏览器 ...

  8. 记录idea maven项目打包部署web项目mapper扫描失败

    最开始以为这里出了问题,后来加上以后还是不能把mapper.xml打包进去 这是报的异常信息 Mybatis启动老是报绑定错误(找不到Mapper对应的 SQL配置),经过一番Google未能解决问题 ...

  9. 本地apache 可以正常访问,lnmp服务器访问404错误

    if (!-e $request_filename) { rewrite  ^(.*)$  /index.php?s=/$1  last; break; }

  10. 虚拟主机、VPS以及云主机的区别和对比

    对于很多需要建网站的朋友来说,虚拟主机是必须要了解的基础知识.虚拟主机相对于VPS与云主机来说出现的较早,也是被大多数站长所了解的主机.很多人容易将这三者混淆,弄不清楚三者的联系与区别.那么虚拟主机. ...