zoukankan      html  css  js  c++  java
  • mysql 字段长度 字符 字节

    在创建表的时候,给字段定义完类型之后,紧接着需要指定字段的长度,比如:varchar(20),biginit(20)等。那么问题来了,varchar代表的是字节长度,还是字符长度呢?

    create table test_varchar(a varchar(20));
    insert into test_varchar values('苏三说技术');
    select length(a),CHARACTER_LENGTH(a) from test_varchar;

    执行后的结果:

    我们看到中文的5个字length函数统计后长度为15,代表占用了15个字节,而使用charcter_length函数统计长度是5,代表有5个字符。所以varchar代表的是字符长度,因为有些复杂的字符或者中文,一个字节表示不了,utf8编码格式的一个中文汉字占用3个字节。不同的数据库编码格式,占用不同的字节数对照表如下:

    mysql除了varchar和char是代表字符长度之外,其余的类型都是代表字节长度。

    int(n) 这个n表示什么意思呢?从一个列子出发:

    ZEROFILL表示长度不够填充0

    执行结果:

     mysql常用数字类型字段占用字节数对照表:

    从表中可以看出bigint实际长度是8个字节,但是我们定义的a显示4个字节,所以在不满4个字节时前面填充0。满了4个字节时,按照实际的长度显示,比如:123456。但是,需要注意的是,有些mysql客户端即使满了4个字节,也可能只显示4个字节的内容,比如显示:1234。

    所以bigint(4),这里的4表示显示的长度为4个字节,实际长度还是8个字节。

  • 相关阅读:
    软件设计师 -算法设计与分析
    windows下git使用
    SourceTree免注册并连码云
    软件设计师-软件工程基础知识
    基本约瑟夫环问题详解
    SGU180(树状数组,逆序对,离散)
    POJ(1195)(单点修改,区间查询)(二维)
    C++ bitset
    冯志远0920
    怎样学好哲学(lucas+费马小定理)
  • 原文地址:https://www.cnblogs.com/ooo0/p/15267358.html
Copyright © 2011-2022 走看看