loading...

MySQL int(X) 中 X 的含义

发布时间:August 28, 2007 分类:MySQL

迅速提高新站的pr到4,本人测试通过

IE5,IE6,IE7多版本共存的解决:Multiple_IE

这个可选的宽度规格说明是用于在数值显示时,对某些值的宽度短于该列宽度的值进行左填补显示的,而不是为了限制在该列中存储值的宽度,也 不是为了限制那些超过该列指定宽度的值的可被显示的数字位数。注意,如果在一个整型列中存储一个超过显示宽度的更大值时,当 MySQL 为某些复杂的联结(join)生成临时表时,你可能会遇到问题,因为在这种情况下,MySQL 信任地认为所有的值均适合原始的列宽度。

而int本身就是4个字节 bigint是8个字节 所以说int(X)的含义就是 int决定数据存储的字节 X表示期望数据的列宽度

在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度。

这个代表显示宽度
整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,比如,不管设定了显示宽度是多少个字符,bigint都要占用8个字节。

Tags: none


已有 9 条评论 »

  1. 啤酒盖子 啤酒盖子

    貌似这篇文章缺少点前提,没看太懂。
    这个X指的是(join)查询的时候生成的临时表么?

  2. 11 11

    看的还是迷迷糊糊的,麻烦博主通俗点讲...
    谢谢

  3. sostart sostart

    嘿 又搜到你博客来了 鄙视下,天下文章一大抄啊
    这个列宽到底有什么意义呢? 请教下

    1. kimi kimi

      @sostart, 这个代表显示宽度,

      1. sostart sostart

        @kimi, 能详细解释下'显示宽度'到底是个什么意思么 这个设置会起什么作用 ..我想很多人和我一样困惑 辛苦kimi

        1. kimi kimi

          @sostart, 显示宽度是用于在数值显示时,对某些值的宽度短于该列宽度的值进行左填补显示的,而不是为了限制在该列中存储值的宽度,也不是为了限制那些超过该列指定宽度的值的可被显示的数字位数。注意,如果在一个整型列中存储一个超过显示宽度的更大值时,当 mysql 为某些复杂的联结(join)生成临时表时,你可能会遇到问题,因为在这种情况下,mysql 信任地认为所有的值均适合原始的列宽度。整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系。同时,不管设定了显示宽度是多少个字符,bigint都要占用8个字节。

  4. sostart sostart

    @kimi, 填补的意义是什么?为什么要填补?int最大值是11位,我设置int(15)会产生什么效果?
    varchar(x)这个x与int(x)是同意么?

    求指教

    1. kimi kimi

      @sostart, 比如int(8)存储的是123这个数字,特定的情况下可能会显示成00000123。varchar的x和int的x是一个意思,x只影响显示宽度,和存储大小没有关系的。

      1. sso sso

        kimi你的说法是错误的. 字符串类型的x与数值型的x不是一个意思. 字符串类型的x代表的是可保存的长度, 也就是会限制这个列的保存长度. 而数值型的x你说的倒是对的.
        所以varchar(20)代表的意思就是这个列的最大长度就是20. 长度超过20的字符串在MYSQL不使用严格模式时, 只保存前20位, 而当MYSQL使用严格模式时, 会报错, 也就是通常所见的data too long

添加新评论 »

captcha
请输入验证码