zoukankan      html  css  js  c++  java
  • 简单谈谈MySQL中的int(m)

    设置int型的时候,需要设置int(M),以前知道这个M最大是255,但是到底应该设置多少并没有在意。注意zerofill,今天我们来简单探讨下
     

    我们在设计表的时候,如果碰到需要设置int(整型)的时候,通常会按照惯例(大家都这样写)设置成int(11)。那么这里为什么是11呢?代表的又是什么呢?

    以前我一直以为这里是在限制int显示的宽度,后来仔细研究和通过上网查询发现,事实并不是那样的。

    确切的来说,这里的“宽度”只是一个“预期值”,它所代表的仅仅是你在设计数据表结构时,想让该列日后显示的值宽度为多少,但是具体存入值的宽度多少不会受任何影响。

    当然,它的作用不仅如此,在存入数据的时候,还是有一定区别的,这一点可以通过设置字段的zerofill可以看出。比如这里我们创建一个数据表,结构如下:

    create table test (
     num int(5) zerofill
    );
    

    上面代码创建一个名为test的表,结构很简单,表中只有一个名为num的字段,类型为int,宽度为5,为了看出宽度方便,我们又添加一个zerofill属性(该属性会让存入数值在不足宽度情况下,左侧补0)

    然后我们开始插入数据:

    mysql> insert into test values(1),(11),(123),(12345),(123456),(1234567);
    Query OK, 6 rows affected (0.00 sec)
    Records: 6 Duplicates: 0 Warnings: 0
    

    打印结果:

    mysql> select * from test;
    +---------+
    | num   |
    +---------+
    |  00001 |
    |  00011 |
    |  00123 |
    |  12345 |
    | 123456 |
    | 1234567 |
    +---------+
    6 rows in set (0.00 sec)
    

    由以上结果,不难看出,如果字符少于设置(期望值)宽度,在设置了zerofill属性的情况下,左侧会统统补0;但是如果超出则不受任何影响。也就是说这里的int(m)中m只是一个预期值,和真实数据宽度并没多大关系。

  • 相关阅读:
    Tor网络突破IP封锁,爬虫好搭档【入门手册】
    ubuntu python3相关
    toutiao url
    处理跨域请求
    Python使用虚拟环境
    Python删除文件,空文件夹,非空文件夹
    如何在jupyter中使用Python2和Python3
    推荐使用国内的豆瓣源安装Python插件
    Python数据库查询之组合条件查询-F&Q查询
    获取Django项目的全部url
  • 原文地址:https://www.cnblogs.com/feibazhf/p/9369810.html
Copyright © 2011-2022 走看看