美文网首页
mysql建表时的字段数据宽度选择

mysql建表时的字段数据宽度选择

作者: 苏坡闷 | 来源:发表于2018-06-18 20:15 被阅读0次

    1.起因,今天准备写个博客出来,但是真正开始写的时候,发现自己独立建数据表都有了问题,主要问题就是不知道每个字段的数据宽度选择。

    2.这时候怎么办呢?真是急死我这个小白了,这时候我决定上CSDN上去看看,毕竟上面有大量的大牛。搜索的时候开始也是问题重重,怎么搜都搜不到自己想要的,其实都怪自己没有仔细阅读大神们blog内容。

    3.几经搜索,终于又回到开始这篇文章,决定好好读读别人的笔记,看了之后,恍然大悟,部分答案已经存在了文章里面,以下为在这篇文章里了解到的内容:

    示例
    create table user
    (
        id int(4) primary key ,
        name varchar(20),
        pwd varchar(20)
    );
    

    括号里的数字叫数据的宽度,我们不能一概而论,因为不同的数据类型对宽度的处理也不一样:

    1、整数类型,这里显示的宽度和数据类型的取值范围是没有任何关系的,显示宽度只是指明Mysql最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填充;如果插入了大于显示宽度的值,只要该值不超过该类型的取值范围,数值依然可以插入,而且能够显示出来。
    例如上面的udi,显示的宽度是4,但是我向uid中插入100001,也是可以的,保存和显示的都会是100001如果你不设置宽度,系统将添加默认的宽度 tinyint(4), smallint(6), mediumint(9), int(11), bigint(20),这些默认的宽度是跟该类型的取值范围长度相关。

    2、字符串类型,字符串类型这个宽度才真的用上了。不管是char还是varchar,宽度都定义了字符串的最大长度。
    例如上面的 password varchar(20),如果你输入了一个21个字符的密码,那么保存和显示的只会是前20个字符,你将丢失一个字符信息,char同理。由于varchar是变长存储的,所以实际开发中我们一般都把varchar的宽度设为最长255,反正你没用完它也不会浪费空间。

    3、浮点和日期等数据类型对数据的宽度没有要求,一般也不设置,默认是0

    相关文章

      网友评论

          本文标题:mysql建表时的字段数据宽度选择

          本文链接:https://www.haomeiwen.com/subject/mfzneftx.html