精华内容
下载资源
问答
  • MySQL中varchar占字节大小是多少

    千次阅读 2020-05-10 15:56:59
    VARCHAR(M) L+1个字节,其中L <= M 且0 <= M <= 65535 参考链接: https://blog.csdn.net/free_ant/article/details/52936722
    VARCHAR(M)

    L+1个字节,其中L <= M 且0 <= M <= 65535

    参考链接:

    https://blog.csdn.net/free_ant/article/details/52936722

    展开全文
  • 这几天在写接口校验,碰到个有意思的事,前端开发人员问我某个字段的长度控制在多少? 我查了查数据库,发现是varchar(100),于是就说数据库字段限制100,汉字咱们限制50吧。 每个汉字2个字节,100/2=50,看起来...

    这几天在写接口校验,碰到个有意思的事,前端开发人员问我某个字段的长度控制在多少?

    我查了查数据库,发现是varchar(100),于是就说数据库字段限制100,汉字咱们限制50吧。

    每个汉字占2个字节,100/2=50,看起来没什么问题。

    这时旁边另一个开发说不对,有的偏僻字占3个字节。。。这就很尴尬了,这长度校验咋写?

    于是我上网查了查,发现原来我们都理解的不对

    MySQL中varchar(100)中的100指的是字符数,不是字节数。也就是说,varchar(100)能输入100个英文,100个汉字,我实际测试了下,上面的说法是正确的。不管是汉字,英文,字符,数字,都能输入100,超过100会报错。

    也就是说,MySQL中varchar(x)中的x指的是字符数,不是字节数。至于每个字符占多少字节要看编码格式。

    UTF-8编码中,每个汉字占3个字节,英文字母1个字节。

    转自:MySQL中汉字占多少字节?varchar(x)中的x如何理解?

    展开全文
  • Oracle 一个中文汉字 占用几个字节,要根据Oracle中字符集编码决定 查看oracle server端字符集   select userenv('language') from dual;   如果显示SIMPLIFIED CHINESE_CHINA.ZHS16GBK,一个汉字占用两个字节...

    Oracle 一个中文汉字 占用几个字节,要根据Oracle中字符集编码决定 查看oracle server端字符集

     

    select userenv('language') from dual;

     

    如果显示SIMPLIFIED CHINESE_CHINA.ZHS16GBK,一个汉字占用两个字节;
    如果显示SIMPLIFIED CHINESE_CHINA.AL32UTF8,一个汉字占用三个字节.

    可以用以下语句查询一个汉字占用的字节长度

     

    select lengthb('你') from dual;//返回2,表示2个字节
    
    select length('你') from dual;//返回1,表示1个字符
     
     
    字符串类型字段默认的长度是以字节为单位的,具体取决于参数nls_length_semantics 的值(使用show
    parameters可以看到这个参数的值),默认是BYTE,也就是以字节为单位的,如果是CHAR则是以字符为单位的。
     
    表的某列可以使用字符为单位吗?
    当然可以,比如这样创建即可:create table test_ly(a varchar2(4 char))
    这样a列就最多能保存4个字符,而不是4个字节了。
    展开全文
  • Mysql varchar 字节长度

    千次阅读 2018-03-23 17:35:53
    1.我们经常 mysql创建 varchar(20) name这个 20长度 究竟是表示的字符数还是字节数?根编码字符集又有没有关系?首先 mysql 5.X 以上的版本的 定义中 表示的字符长度,如上varchar(20)你既可以添加20个英文字符,...

    1.我们经常 mysql创建 varchar(20)  name这个 20长度 究竟是表示的字符数还是字节数?根编码字符集又有没有关系?

    首先 mysql 5.X 以上的版本的 定义中 表示的字符长度,如上varchar(20)你既可以添加20个英文字符,也可以添加二十个中文字符。 表示的字符长度

    mysql 4.X 的版本表示的是字节长度,会根据字符集转变 内容字节长度存储。

    2.关于 int(2) 中的2  ,表示的并非是int类型只能输入2位数字,而是只能显示2位数字范围,可以添加11位的int的任何数字。

    3.mysql 5.X以上版本  存储时 char最大255字节,这个和字符集是否有关系?

    本人测试没有关系,字符集是GBK或者UTF-8在char(255)下都可已添加255个字符(字母或者汉字或者都有)。

    ------------------------

    1、限制规则 

    字段的限制在字段定义的时候有以下规则: 
    a) 存储限制 
    varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。 
    b) 编码长度限制 
    字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766; 
      字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。 
      对于英文比较多的论坛 ,使用GBK则每个字符占用2个字节,而使用UTF-8英文却只占一个字节。 
      若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并产生warning。 
    c) 行长度限制 
       导致实际应用中varchar长度限制的是一个行定义的长度。 MySQL要求一个行的定义长度不能超过65535。若定义的表长度超过这个值,则提示 
      ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to    change some columns to TEXT or BLOBs。 
    2、计算例子 
      举两个例说明一下实际长度的计算。 
    a) 若一个表只有一个varchar类型,如定义为 
    create table t4(c varchar(N)) charset=gbk; 
    则此处N的最大值为(65535-1-2)/2= 32766。 
    减1的原因是实际行存储从第二个字节开始'; 
    减2的原因是varchar头部的2个字节表示长度; 
    除2的原因是字符编码是gbk。 


    b) 若一个表定义为 
    create table t4(c int, c2 char(30), c3 varchar(N)) charset=utf8; 
    则此处N的最大值为 (65535-1-2-4-30*3)/3=21812 。(一行长度限制)
    减1和减2与上例相同; 
    减4的原因是int类型的c占4个字节; 
    减30*3的原因是char(30)占用90个字节,编码是utf8。 

    如果被varchar超过上述的b规则,被强转成text类型,则每个字段占用定义长度为11字节,当然这已经不是“varchar”了。



    展开全文
  • char、short、int、long各占多少字节

    万次阅读 2019-07-02 10:06:56
    C语言中char、short、int、long各占多少字节https://blog.csdn.net/weixin_40997360/article/details/79948968
  • 它对英文使用8位(即一个字节) ,中文使用24位(三个字节)来编码。 UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。 UTF-8编码的文字可以在各国支持UTF8字符集额的浏览器上显示。 如果是UTF8...
  • 往Oracle一个表的VACHAR2(20)字段中插入七个汉字,提示错误:插入的值太大。...字符集设置成ZHS16GBK:汉字2个字节。 字符集设置成AL32UTF8:汉字3个字节。 查询字符集:select * from v$nls_parameter...
  • name varchar(3) ); select pg_size_pretty(pg_relation_size('tmp1')); -- 0 bytes insert into tmp(name) values('欧阳子'); --8192 bytes 8192 bytes = 8KB = 1页(数据库的最小单位) 8页 = 1区 = 64...
  • ORACLE的VARCHAR2字段类型占字节问题

    千次阅读 2014-01-22 10:59:35
    一直以来,都以为一个汉字两个字节。觉得非常奇怪。 用length()、lengthb()函数查看,发现lengthb()是length()的三倍。   于是百度,原来这与ORACLE的字符集设置有关。(以前的项目都是设置成的ZHS16GBK) ...
  • mysql里一个中文汉字占多少字节数?

    千次阅读 2020-11-30 17:28:13
    mysql各字符集下汉字和字母占字节varchar(N), 这里的N是指字符数,并不是字节数.占用的字节数与编码有关 在mysql 5.1.5-alpha下测试得出如下结论 latin1: 1character=1byte, 1汉字=2character, 也就是说一个...
  • 1.在开始之前先简单介绍下字符和字节的区别: - 字符 人们使用的记号,抽象意义上的一个符号。一个汉字和英文就是一个字符,如'1', '中', 'a', '$', '¥',…… - 字节 计算机中存储数据的单元,一个8位的二进制...
  • mysql varchar(20) 是20个字节 还是 20个字符? 这个问题一直有那么一点点的乱。刚好今天有空整理一下MySQL4.1前的 varchar(20) 是20个字节。最大的限制是255字节MySQL5.0以后 varchar(20)是20个字符。最大的限制是...
  • Mysql,Oracle varchar2 字节长度

    千次阅读 2018-06-27 14:18:09
    转载:https://www.cnblogs.com/kxdblog/p/4042331.html1.错误提示: mysql的Data truncation: Data too long for column 'path' at row 1错误原因: 1....解决办法:varchar(10) ——&gt;var...
  • 如何理解mysql utf-8的varchar类型的长度? 比如varchar(3),括号里...当然了,这并非代表存入3个汉字的值所占字节跟存如3个英文/数字所占字节是一样的,比如 value varchar_length length(所占字节) ...
  • Oracle中NVARCHAR2和VARCHAR2的区别 【转】NVARCHAR2和VARCHAR2的区别,从使用角度来看区别在于:NVARCHAR2在计算长度时和字符集相关的,例如数据库是中文字符集时以长度10为例,则 1、NVARCHAR2(10)是可以存进去10...
  • 项目里突然varchar字段设置255也不够用了,记得规定不能超过255,今天查了一下,现...InnoDB存储引擎的表索引的前缀长度最长是767字节(bytes)(前缀长度适用于mysql5.6及以前,后续版本有变化) 你如果需要建索引,就
  • 1、varchar(100)和varchar(10)的区别在哪里? 一般初学会认为,二者占用的空间是一样的。...答案是否定的【至少varchar类型需要在数据之前利用一个或者两个字节来存储数据的长度】并且二者在内存中的操作方式
  • 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) ;5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,...
  • 在oracle中一个字符特别是中文几个字节是不同的。 比如我创立一个表create table test_ly(a varchar2(4),b nvarchar2(4)) 错!最多能插入一个汉字加一个字母(或数字)。 你说b列最多能插入多少个汉字,2个...
  • mysql-varchar在设计数据库字段的时候,varchar...2、varchar能存多少汉字、数字?3、varchar的最大长度是多少呢?4、字符、字节、位,之间的关系?5、mysql字段类型存储需要多少字节?6、varchar(10)能存多少个字...
  • 每个汉字在DB2数据库中占多少字节? 问题解决: 与DB2的code page有关系,如果是GBK, 每个汉字2个字节。如果是UTF,则占用3个字节。 测试: $ db2 "create db test1 USING CODESET GBK TERRITORY ZH_CN" $ ...
  • 1.我们经常 mysql创建 varchar(20) name这个 20长度 究竟是表示的字符数还是字节数?根编码字符集又有没有关系? 首先 mysql 5.X 以上的版本的 定义中 表示的字符长度,如上varchar(20)你既可以添加20个英文字符,...
  • 可以看出不管是数字还是字符串是按照单个字符来做基本单位的,只要一个字符就一个长度,varchar(x)里的x就是你存入字符串的长度。 但是如果你用utf8存入"你好"实际会占用3*2个字节,因为mysql对utf8字符占用3...
  • 它对英文使用 8 位(即一个字节) ,中文使用 24 位(三个字节)来编码。 UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。 UTF-8编码的文字可以在各国支持 UTF8 字符集额的浏览器上显示。 如果是...
  • 创建一个表 create table test(  name varchar2(6),  name1 nvarchar2(6) ) 例1、insert into test (name,name1) ...可以成功插入,且name,name1的长度都是6,所占字节也是6 验证sql: select name,length(nam
  • 一个字符占多少字节取决于数据库字符集编码和字段类型。 mysql、oracle 字段的长度一般是指字节,也有例外(如:oracle的nvarchar,varchar(size char))。 mysql中 GBK : 一个汉字 = 2个字节,英文是一个字节; ...
  • ORACLE初始化参数:NLS_...当设置该参数为BYTE时,定义CHAR列或VARCHAR2列采用字节长度方式;当设置该参数为CHAR时,定义CHAR列或VARCHAR2列采用字符个数方式。需要注意,设置该参数对于已存在参数没有作用。生产库nls_
  • 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,682
精华内容 9,472
关键字:

varchar占多少字节