精华内容
下载资源
问答
  • varchar(n)中的数字在5.0以下的版本表示字节,在5.0以上表示字符例子:varchar(100),在5.0...那么5.0以下的版本怎么去计算字节填写的数字可以存储多少个汉字或者数字呢。一个汉字等于三个字节,这是换算规律,也就...

    varchar(n)中的数字在5.0以下的版本表示字节,在5.0以上表示字符

    例子:varchar(100),在5.0以下表示存储100个字节,5.0以上表示存储100个字符;所以5.0以上的就不用说啦,你在定义类型的时候,用作标题还是小文本,期望不超过多少字,直接写入在夸号中就可以啦;

    那么5.0以下的版本怎么去计算字节填写的数字可以存储多少个汉字或者数字呢。

    一个汉字等于三个字节,这是换算规律,也就是说上面的varchar(100),表示只能存储最多33个汉字,你在做的时候,你期望需要存储100个以下的汉字,那么varchar中的值就是3*100;如果你期望存储一个标题,比如十几个字,不超过20个字,那么你可以用20*3,填写到varchar中,比如varchar(60),就可以啦,其实varchar可以存储多少个汉字,就是那么的简单。

    那么如果在存储数据的时候,存储数据过多了,超出了范围会怎么样呢,当然就是数据库报错了,这个是不用多说了呢。

    至于的mysql是什么版本,你可能也比较关注,怎么查看呢,其实就是你在使用命令行,连接数据库的时候,就会显示php的版本号。

    比如我的是5.5.53 版本号,那么使用varchar(100)就是可以最多存储100的意思。

    小朋友们可能还涉及到,varchar和char的区别,其实你只要知道char比较占内存,但是性能块,varchar不占内存,性能相对性会慢,当然是相对性,实际上对于你来说,你感觉不到他们的差异性。

    详细点说,varchar(100) 可以存储33个字,但是我只存储了10个字,那么varchar在内存中消耗的就是10个字,用多少占多少,如果是char的话,char(100) 你只存储了10个字,但是他会在内存中自动补齐,占了100个位置,所以char好内存,这个就是他们大致的区别,对于只要会运用数据库的你,已经足够了,至于你想深入研究数据库,那么本文可能对你不会产生太大的帮助。

    后置

    作者:赵锐庆; 希望亲们在未来美好的日子里,能多帮助一下正在处于苦难的其他人!

    展开全文
  • 5.0 版本以上,varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。 注:借阅文章地址:https://zhidao.baidu.com/usercenter?uid=a7e74069236f25705e79c662&...

    首先要确定mysql版本,一般一个汉字2个字节,50即可存25个汉字。

    4.0 版本以下,varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个汉字3字节)

    5.0 版本以上,varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。

    注:借阅文章地址:https://zhidao.baidu.com/usercenter?uid=a7e74069236f25705e79c662&role=pgc

    展开全文
  • 1、varchar(5)可以存储多少个汉字,多少个字母数字?相信有好多人应该跟我一样,对这个已经很熟悉了,根据经验我们能很快的做出决定,比如说用varchar(200)去存储url等等,但是,即使你用了很多次也很熟悉了,也有...

    1、varchar(5)可以存储多少个汉字,多少个字母数字?

    相信有好多人应该跟我一样,对这个已经很熟悉了,根据经验我们能很快的做出决定,比如说用varchar(200)去存储url等等,但是,即使你用了很多次也很熟悉了,也有可能对上面的问题做出错误的回答。

    这个问题我查了好多资料,有的人说是可以存储5个字符,2.5个汉字(每个汉字占用两个字节的话),有的人说这个要区分版本,5.0是个分界限,5.0之前是前面说的那样,5.0之后是可以存储5个“字”,不区分是数字、英文、汉字,果真是这样吗,我们来做个实验:

    CREATE TABLE `test` (

    `name` varchar(5) NOT NULL DEFAULT '',

    `info` char(5) NOT NULL DEFAULT '',

    PRIMARY KEY (`name`)

    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    可以看出varchar(5)中的5代表的是5个“字”,而不是5个字节(bytes),当我们存储长度超过制定长度的时候会将超过的部分“咔嚓”掉,我的mysql版本是5.6,字符集(charset)utf8和gbk是一样的。

    其他版本我电脑上没有,去官方文档看看有没有什么说明,在官方文档中查了半天终于发现了点区别:

    下面这段来自http://dev.mysql.com/doc/refman/4.1/en/char.html,是对mysq4.1的说明:

    The CHAR and VARCHAR types are declared with a length that indicates the maximum number of characters you want to store. For example, CHAR(30) can hold up to 30 characters. (Before MySQL 4.1, the length is interpreted as number of bytes.)

    再看看其他版本的类似的说明:

    The CHAR and VARCHAR types are declared with a length that indicates the maximum number of characters you want to store. For example, CHAR(30) can hold up to 30 characters.

    显而易见了,官方文档说了,mysql版本小于4.1的时候存储的时候符合说法:varchar(5)保存5个bytes,及5个英文数字或者2.5个汉字(假设一个汉字2个字节);

    mysql版本大于等于4.1的时候varchar(5)中的5不再是字节数了,应该理解为“字”这里的字的意思是一个汉字和一个英文或者数字“相同对待”

    2、mysql中的limit,你真的会用吗?

    你在项目中怎么使用limit?limit num?还是limit num1,num2?还是其他的?要知道limit使用不同的形式性能差距很大的。

    我自己测试了下,在一张innodb表中去使用limit,表中10000条数据,四个字段,id(int)、time(int)、title(varchar)、body(mediumtext),大小大约170M左右,首先关掉查询缓存,免得查询缓存对查询时间有影响,这里要注意time字段上面加了索引,

    SET @@query_cache_type=ON;

    SET GLOBAL query_cache_size=0;

    打开Query profiler来查看语句执行所花费的时间

    set profiling=1;

    接下来对下面几个语句进行执行

    a、SELECT id,TIME,title FROM cnblogs WHERE TIME>=1315646940 ORDER BY TIME ASC LIMIT 2000,10

    b、SELECT id,TIME,title FROM cnblogs WHERE TIME>=1315646940 ORDER BY TIME ASC LIMIT 10

    c、 SELECT id,TIME,title FROM cnblogs ORDER BY TIME ASC LIMIT 3000,10

    执行顺序a,b,c,a,b,c,c,a,a(这里需要注意下,虽然我关闭了缓存,但是上一次的查询还是会缓存,这个可以从Query profiler中看出来,所以进行交叉执行),使用下面的语句查看结果

    SHOW profiles;

    从上面的语句执行时间分析可以看出,不考虑缓存因素,当使用limit的时候,"limit begin,num"这种形式比"limit num"这种形式效率低很多,因此,在使用的时候尽可能的使用第二种形式,比如说要循环获取一个表里面的数据,一次取出来内从放不下,这个时候就要按照id(或者其他排序字段)进行limit了,我们就可以通过获取上次的该字段临界值作为下次取数据的最小值,使用limit num这种形式效率会高很多。

    展开全文
  • varchar类型可以存储多少个汉字,多少个数字,是要具体看我们的mysql版本 如下: 4.0版本以下,比如 varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个汉字3字节) 5.0版本以上,比如varchar(100)...
    varchar类型可以存储多少个汉字,多少个数字,是要具体看我们的mysql版本

    如下:
    4.0版本以下,比如 varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个汉字3字节)
    5.0版本以上,比如varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。

    展开全文
  • 展开全部4.0版本以下,varchar(50),指的是50字节,如果存放UTF8汉字时,只能存16个(每个汉字3字节) 5.0版本以上32313133353236313431303231363533e59b9ee7ad9431333365643662,varchar(50),指的是50字符,无论存放...
  • VarChar存储多少

    2020-12-18 10:00:31
    参考链接:MySQL 数据库 varchar 到底可以存多少个汉字,多少个英文 首先我们需要了解utf-8和GBK的区别,因为不同的编码格所占的字节数是不同的 中文 英文 utf-8 1~3个字节 1个字节 GBK 2个字节 1个字节 ...
  • 多字节字符算作多字节。2、char_length(str)返回字符串 str 的长度,单位为字符。一多字节字符算作一单字符。这意味着对于一包含52字节字符的字符串,length()的返回值是 10,而 char_length() 的返回值...
  • varchar2存储汉字

    2021-05-01 03:41:00
    NVARCHAR2和VARCHAR2的区别,从使用角度来看区别在于: NVARCHAR2在计算长度时和字符集相关, 例如数据库是中文字符集时,以长度10为例,则 NVARCHAR2(10)可以存进去10个汉字,如果用来存英文也只能存10个字符。...
  • 展开全部4.0版本以下,varchar(50),指的是50字节e68a843231313335323631343130323136353331333363396463,如果存放UTF8汉字时,只能存16个(每个汉字3字节) 5.0版本以上,varchar(50),指的是50字符,无论存放的是...
  • 今天群里问说“Mysql的varchar(20)到底可以存储多少个中文字符” 很多直观回答是10字符。这问题其实很容易得到结果。博主就动手测试了一下。 ? 动手测试之新建表Create TABLE var背景: ? ? ? ?今天群里问说...
  • 它对英文使用8位(即一字节) ,中文使用24位(三字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集额的浏览器上显示。如果是UTF8编码,则在...
  • 1.存储单位MySQL在5版本以后,varchar(45),指的是45个字符,可以存放45个汉字,或者45个英文字母(一个UTF8汉字和一个英文字母一样,都占用1个字符)。MySQL在4版本以前,varchar(45),指的是45个字节,可以存放15...
  • "link":"https://www.aliyun.com/service/chiefexpert/platform"},{"txt":"存储首席专家","link":"https://www.aliyun.com/service/chiefexpert/storage"}],"countinfo":{"search":{"length_pc":0,"length":0},"card...
  • 看完这篇文章,你能搞清楚以下问题: 1、varchar(100)和varchar(10)的区别在哪里? 2、varchar能存多少汉字、数字?...比如说我存储5char,二者都是实际占用了5char了【不准确的想法:varchar在实际存储
  • oracle date类型占用存储空间是7个字节oracle varchar2类型占用存储空间是每个字符占用一个字节oracle number类型占用存储空间是几个字节number最少占用两个字节,以后每增加...
  • 它对英文使用8位(即一字节) ,中文使用24位(三字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集额的浏览器上显示。如果是UTF8编码,则在...
  • 根据Oracle的习惯,设置了以下字段长度设置规范:名称字段:varchar(200)长名字段/简介字段:varchar(500)特别长的描述字段:varchar(2000)具有超过2000个汉字的字段:文本为什么长度为200,而不是100或300,也被认为拍了...
  • 我期待能够通过VARCHAR(156)存储它的全部内容。但是很大一部分文本被截断了。这是我的原始文本:위키백과, 백과사전.대수(λ -, lambda -)는 함. 1930년대 다. 함수 s(x, y) = xx + 입력 x 것이다. x ↦ x 와...
  • 标题:MYSQL字段的长度varchar类型能存多少个中文字符 MySQL | ver < 4.1: VARCHAR以字节为单位存储,所以假设全部...VARCHAR以字符为单位存储,假设输入仍然为常用汉字,则VARCHAR(255)可以存放255个汉字。## ...
  • 场景介绍: ...1,varchar(100)能存多少个汉字? 具体还是要看版本的,一个字符占用3个字节 ,一个汉字(包括数字)占用3个字节=一个字符 (1)MySQL 4.0版本以下 varchar(100),指的是100字节,如果存放
  • UTF8编码:一个汉字 = 3个字节,英文是一个字节GBK编码: 一个汉字 = 2个字节,英文是一个字节在UTF8状态下langtext: 4294967295/3=1431655765个汉字,约14亿,存储空间占用:4294967295/1024/1024/1024=4G的数据;...
  • 大小为64k,即65535字节,而varchar要用1-2字节来存储字段长度,小于255的1字节,大于255的2字节。Mysql 5.0后,英文字符固定都是一字节,汉字字符根据编码方式占不同字节,Utf-8占3字节,gbk占了2字节。第一...
  • 这是专栏的第一篇文章,在专栏的前几个小节,我会先和你先聊一聊 MySQL 的数据类型。了解 MySQL 的数据类型是开发人员在使用 MySQL 数据库的时候,必备的基础技能之一。也正因为此,这部分知识也是面试官面试的时候...
  • 它对英文使用8位(即一字节),中文使用24位(三字节)来编码。 UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。 UTF-8编码的文字可以在各国支持UTF8字符集额的浏览器上显示。 如果是UTF8编码,则...
  • https://blog.csdn.net/kindsuper_liu/article/details/80202150英文字母和中文汉字在不同字符集编码下的字节数英文字母:·字节数 : 1;编码:GB2312字节数 : 1;编码:GBK字节数 : 1;编码:GB18030字节数 : 1;编码:...
  • 个汉字占3个字节 所以最多能存66个,67个及以上不行,会报如下错误。 [2021-07-21 14:40:45] [22001] 错误: 对于可变字符类型来说,值太长了(200)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 66,767
精华内容 26,706
关键字:

varchar可以存储几个汉字