zoukankan      html  css  js  c++  java
  • Mysql数据库int(1)和tinyint(1)的区别&&扩展阅读

    转自:http://blog.csdn.net/phpwish/article/details/7845921

    今天看项目的数据库结构设计,发现一个奇怪的地方。

    `xxx_detail`   `delflag` int(1) NOT NULL DEFAULT '0' COMMENT '删除标志',


    `xxx_category`   `delflag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除标记',


    问题:int(1) 和 tinyint(1) 有什么区别呢?

    像这样的设计,反正我是不会写int(1)的。


     查了下,mysql中设置了储存类型后,储存是定长的,也就是说,int(1) 和 int(4) 在硬盘中所占的字节数都是一样的。


    我们知道,int类型占4个字节,tinyint占1个字节。int(1) 和 int(4) 从本身长度还是存储方式上都是一样的,区别就是显示的长度不同,但是要设置一个参数:如果列制定了zerofill 就会用0填充显示,int(4)指定后就会显示为0002。


    int(1)和tinyint(4) 相比,肯定int 大。


    注意数字类型后面括号中的数字,不表示长度,表示的是显示宽度,这点与 varchar、char 后面的数字含义是不同的。


    也就是说不管 int 后面的数字是多少,它存储的范围始终是 -2^31 到 2^31 - 1。
     
    综上整型的数据类型括号内的数字不管是多少,所占的存储空间都是一样


    tinyint一个字节   smallint  两个字节   MEDIUMINT三个字节 


    显而易见,int(1) 和 tinyint(1) ,在设计数据库的时候应该选择tinyint(1)。所占的储存空间越少越好,当然要够用才行。像这样储存一个 个位数的字段,还是用tinyint(1)的好。


    总结:

    1.规定类型之后,存储是定长的,int(1)和int(4)从本身长度还是存储方式上都是一样的。mysql里,int(1)和int(4)的区 别就是显示的长度,但是要设置一个参数:如果列制定了zerofill 就会用0填充显示,如2 int(3)指定后就会显示为002


    2.int 存储占4个字节, tinyint   存储占1个字节,存储长度决定了他们表示的数字范围不同。int表示的数字范围是:从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。tinyint 表示的范围是0-255之间的数字。


    3.tinyint(1),和tinyint(3)没什么区别,存123都能存的下,而如果tinyint(3) zerofill 的话,插入值 12,会存储012,zerofill自动左边补零,这才是限制显示长度。



    上面总结的有点乱。下面精简总结:

    tinyint(1)  和 tinyint(3) 没什么区别,占用字节都是一位,存储范围都是一样的

    tinyint(3) zerofill ,当插入的数据少于3位的时候,左边自动补零,这才是限制显示长度

    int(1) 和 tinyint(1) ,够用的情况下,优先选择tinyint(1),因为占字节少、节省空间。

    tinyint一个字节   smallint  两个字节   MEDIUMINT三个字节  int 4个字节  BIGINT 8个字节。


    但是,varchar(5)  这里的5 限制的是储存字符的个数,字符不分贵贱(不分 中文、英文、数字...)。

  • 相关阅读:
    Civil 3D 二次开发 创建Civil 3D 对象—— 01 —— 创建几何空间点
    Civil 3D 二次开发 创建Civil 3D 对象—— 00 ——
    Civil 3D 二次开发 创建AutoCAD对象—— 01 —— 创建直线
    Civil 3D 二次开发 新建CLR项目出现错误C2143
    Civil 3D 二次开发 创建AutoCAD对象—— 00 ——
    了解AutoCAD对象层次结构 —— 6 ——块表记录
    datepicker97使用
    使用angular 外接 templateUrl,使用ng-include
    angularJs 遮罩
    网上找的有关css兼容问题
  • 原文地址:https://www.cnblogs.com/wenlj/p/5066087.html
Copyright © 2011-2022 走看看