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个字节。

  • 相关阅读:
    [转载]Ubuntu下ssh服务的安装与登陆(ssh远程登陆)
    Linux定时器
    sleep 和 usleep的实现方法
    如何在MATLAB下把模糊推理系统转化为查询表(转载)
    FPGA学习心得汇总(手中写代码,心中有电路)
    3D三栅极晶体管(摘抄)
    模糊控制
    Quartus II 中参数化模块库(LPM)的使用
    Quartus II 与modelsim连接不上的问题
    接近开关,光耦
  • 原文地址:https://www.cnblogs.com/ooo0/p/15267358.html
Copyright © 2011-2022 走看看