首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一篇文章看懂mysql中varchar存多少汉字、数字,以及varchar(100)和varchar(10)的区别

看完这篇文章,你搞清楚以下问题: 1、varchar(100)和varchar(10)的区别在哪里? 2、varchar存多少汉字、数字? 3、varchar的最大长度是多少呢?...2、varchar存多少汉字、数字?...mysql的vachar字段的类型虽然最大长度是65535,但是并不是存这么多数据,最大可以到65533,其中需要1到2个字节来存储数据长度(如果列声明的长度超过255,则使用两个字节来存储长度,否则...'; 字段可以空时候:varchar(65535) -2 bytes (存储长度,按2个算) - 1byte (latin1类型) =65532 字节可以用 根据这个最大字节数,以及编码方式,可以计算存储的汉字数...一般 gbk 编码下,一个汉字  字符  占用 2 个 字节; 5、mysql字段类型存储需要多少字节?

8K52
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    面试中碰到的坑之注入系列(2)

    效果一样,编码也绕过。 但是要主义的是,这两个(GPC和addslashes不要同时开启)不要同时开启,否则会因为\被斜杠转义,使得引号逃逸出来就可以正常的注入了。...我们这里的宽字节注入是利用mysql的一个特性,mysql在使用GBK编码的时候,会认为两个字符是一个汉字(前一个ascii码要大于128,才到汉字的范围)。首先模仿phithon牛的代码。...> 数据库之前的即可,如果我们输入%df’看会怎样输入前: ? 输入后: ?...因为%df%df是一个汉字,%5c%27不是汉字,仍然是\’。 这个是宽字符编码集:http://www.qqxiuzi.cn/zh/hanzi-gbk-bianma.php ?...那么mysql怎么判断一个字符是不是汉字,根据gbk编码,第一个字节ascii码大于128,基本上就可以了。比如我们不用%df,用%a1也可以: ? 虽然%a1%5c不是汉子,但是也是宽字符的一种。

    1.2K50

    数据库中varchar类型 最大长度是多少?

    一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,...无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同。...在MySQL中用来判断是否需要进行对据列类型转换的规则 1、在一个数据表里,如果每一个数据列的长度都是固定的,那么每一个数据行的长度也将是固定的. 2、只要数据表里有一个数据列的长度的可变的,那么各数据行的长度都是可变的.... 3、如果某个数据表里的数据行的长度是可变的,那么,为了节约存储空间,MySQL会把这个数据表里的固定长度类型的数据列转换为相应的可变长度类型.例外:长度小于4个字符的char数据列不会被转换为varchar...表设计如下 id mediumint name varchar 问题是: MySQL5.1 , 在GBK字符环境下,这里的varchar最长设多长?

    8.9K20

    mysql学习笔记

    可以用 flush tables with read lock; 现将内存中的表数据扫描恢复到表里面。然后锁定表。同事给予读权限。也就是说在数据库备份的时候,还是有读权限的。...char(n) 是定长字符串类型, 表示占用 n个字符(注意不是字节) 的 存储空间,n的最大值为255.例如,对于中文简体字符集gbk编码来说,char(255)表示可以存储255个汉字,而每个汉字占用两个字节的存储空...对于一个utf8字符集的字符串而言,char(255)表示可以存储255个汉字,而每个汉字占用3个字节的存储空间。...例如 对于中文简体字符集gbk的字符串而言,varchar(255)表示可以存储255个汉字。而每个汉字占用两个字节的存储空间。...而char(255) 必须占用255个字符长度的存储空间,哪怕里面只存储一个汉字。 各种字符类型占用的存储空间: ? MySQL的日期类型 MySQL主要支持5中日期类型。

    1.4K50

    常用的10个 Excel 万公式套路

    今天分享10个超好用的万公式套路,需要的赶紧收藏吧。...条件n),同时满足条件返回的值,不满足条件返回的值) =IF(OR(条件1,条件2…条件n),同时满足任一条件返回的值,不满足条件返回的值) 示例:同时满足金额小于500且B列内容为“未到期"时在C列输入...5、分离字母和汉字 汉字在前 =LEFT(单元格,LENB(单元格)-LEN(单元格)) 汉字在后 =Right(单元格,LENB(单元格)-LEN(单元格)) 示例: =LEFT(A2,LENB(A2...单元格地址) 示例: 如下图所示,要求在汇总表里设置合计公式,汇总前19个工作表B列的和。 B2 =SUM(Sheet1:Sheet19!B2) ? 今天分享的公式中,肯定有你不懂不会的。...关键在于将来用到时你得找到。

    1K20

    搜索引擎的原理

    如果以后需要高效率要用C,再用C做,数据库可以不变,MYSQL可以和C连接。 PHP有优点也有缺点,做蜘蛛,问题应该不大,最大的问题 是有可能速度很慢。...当然,网站建设不只有英文,还有和数字,这些只能手工输入了。如果还是循环抓取,估计有很多都要落空。抓到的代码需要分析编码类型是utf-8还是gb2312.我的搜索引擎只想抓简体中文。...之前我才知道,在百度和谷歌输入一个比较生僻的词 ,会花费0.2秒左右的时间,一般的常见词语只需要0.1秒。并且,第二次重复输入一个词所需要的查询时间要少得多。这个多半就是索引的影响。...3、词库 汉字千千万,常用的汉字也至少三千个。组成的词语常用的估计有2万。这个词库来怎么添加进去?用什 么格式存放?CSV文件还是数据库还是文本文件?...4、排序算法 所有的影响排序的算法,应该是放一个表里,然后分固定算法,就是网站本身的因素,还有变动算法,就是用户输入的词语或因为时间季节等不同而变化的因 素。固定算法就放一个表里,对每个网站算出总分。

    1.3K30

    浅析白盒审计中的字符编码及SQL注入

    我们这里的宽字节注入是利用mysql的一个特性,mysql在使用GBK编码的时候,会认为两个字符是一个汉字(前一个ascii码要大于128,才到汉字的范围)。如果我们输入%df'看会怎样: ?...这就是mysql的特性,因为gbk是多字节编码,他认为两个字节代表一个汉字,所以%df和后面的\也就是%5c变成了一个汉字“運”,而'逃逸了出来。...我们继续做试验,phithon内容管理系统v1.2:,就用mysql_real_escape_string来过滤输入: ? 我们来试试能不能注入: ? 一样没压力注入。...0×04 宽字符注入的修复 在3中我们说到了一种修复方法,就是先调用mysql_set_charset函数设置连接所使用的字符集为gbk,再调用mysql_real_escape_string来过滤用户输入...这次直接用宽字符注入的姿势来的,但实际上问题出在php而不是mysql。我们知道一个gbk汉字2字节,utf-8汉字3字节,如果我们把gbk转换成utf-8,则php会每两个字节一转换。

    87831

    《数学之美》与算法

    为什么五笔字形早些年很多人在学,现在基本被拼音输入法取代?拼音输入输入速度越来越快,最快几个键录入一个汉字? 用户搜索“原子的应用”时,“原子”、“的”、“应用”这三个词谁的信息价值更大?...输入一个汉字究竟最少需要敲几个键呢?...拼音输入直线进步的一个重要原因是靠上下文猜出我们想输入的词组(包括模糊音、容错、只输入部分就猜出全部),这依赖马上要介绍的维特比算法。...由于我们输入的拼音没有声调,平均一个无声调拼音对应约13个汉字,如果我们要输入10个拼音,对应汉字的组合有多少呢?\(13^{10}约等于10^{16}\)!...每个拼音若对应13个汉字,那么求10个汉字组合,相当于从13*10的有图中找出10个汉字相连后的最短路径(概率最大)。

    1K60

    【CPP】简单的小循环写出C的字表

    注:此程序其实并没有什么用 想必大家都知道,在C里面,我们的汉字等东西是可以拆分为两个整数的(类似ascii码),那怎样获得每个字的字表码呢?...但是这样获得的字表还有很多的非汉字字符,通过简单地肉眼找规律,我们很容易发现汉字(不一定是中文,但是都是汉文化圈的文字)在字表中分布于 (first >= -127 && first <= -2) ||...first <= 253) (seconnd >= -192 && seconnd = 64 && seconnd <= 254) 然后我们利用C的文件输入输出函数将此字表写入文件中...,便能获得一个汉字字表了,为了方便,直接利用“写字板”程序自带的“查找”功能来查询所需汉字的字表位置。...还有,我们可以发现,汉字在字表中的排列似乎是以拼音顺序来排序,但是却找不出其中的规律,希望能以后发现其中的规律。

    44410

    Mysql常见问题解决

    更高版本 ---- 2、解决mysql汉字存储问题 解决mysql汉字存储问题 Windows下Mysql数据库服务的关闭和重启 net stop mysql 服务名无效解决方法:注意,Win10下以管理员身份运行...cmd 怎样Mysql注册到win服务里面去呢?...mysql无法启动 服务没有报告任何错误 MySql 5.7.14 服务没有报告任何错误的解决方法(推荐) 解决办法:MySql 5.7.14服务没有报告任何错误解决方法 (1)、到mysql安装目录下...--user=mysql mysql安装目录下会自动产生data文件夹 (3),执行net start mysql 服务成功启动 (4),mysql -u root -p进入mysql (5),输入show...(3)关闭cmd,重新进入(如果不行就关闭远程桌面,重新进入) (4)再次进入mysql数据库:     查看数据库:mysql> show database;     切换数据库:mysql> use

    1.5K90

    MySQL 怎么存文本不乱码?

    导读 MySQL里怎么存储那些看起来会乱码的字符?...MySQL采用UTF8MB4字符集时,存储文本实际消耗字节数是由文本内容的字节数决定的,并非总是需要4字节,列举几种情况: 输入字符集任意,且存储ASCII字符时,每个字符需要1byte; 输入字符集是...GB2312,且存储的字符是汉字时,每个字符需要2bytes; 输入字符集是UTF8/UTF8MB4,且存储的字符是低编码汉字时,每个字符需要3bytes; 输入字符集是UTF8/UTF8MB4,且存储的字符是高编码汉字时...,每个字符需要4bytes; 输入字符集是binary,且存储的字符是高编码汉字时,每个字符需要4bytes; 总结建议 从前端到后端(浏览器=>WEB Server=>MySQL连接层=>Server...2bytes,用于存储常见的CJK字符; UTF8,可变长字符集,最多占3bytes,可以囊括ASCII、CJK及其他绝大多数常用语言文字;这中间其实还有个UNICODE字符集,它也是2bytes的,也囊括

    1.9K10

    我被骗好久了!count(*) 性能最差?

    count(主键字段) 执行过程是怎样的? 在通过 count 函数统计有多少个记录时,MySQL 的 server 层会维护一个名叫 count 的变量。...server 层会循环 InnoDB 读取一条记录,如果 count 函数指定的参数不为 NULL,那么就会将变量 count 加 1,直到符合查询的全部记录被读完,就退出循环。...但是,如果表里有二级索引时,InnoDB 循环遍历的对象就不是聚簇索引,而是二级索引。...count(1) 执行过程是怎样的? 用下面这条语句作为例子: select count(1) from t_order; 如果表里只有主键索引,没有二级索引时。...但是,如果表里有二级索引时,InnoDB 循环遍历的对象就二级索引了。 count(*) 执行过程是怎样的? 看到 * 这个字符的时候,是不是大家觉得是读取记录中的所有字段值?

    44050

    专治 MySQL 乱码, 再也不想看到乱码了!

    在客户端将一条命令输入MySQL时,MySQL只知道这条命令是0101的字节流,并不知道具体采用的是什么编码。...如果在UTF-8的终端中输入:INSERT INTO student VALUES ('小明', 12),MySQL首先会用UTF-8解码这条命令,再将“小明”两个字转换为对应的GBK编码,最后存入表中...因此,错进错出的一个必要条件是将character_set_client设置为Latin-1,如果设置为GBK或者UTF-8就无法保证正确解码。...也就是说表里存入数据的人可能使用GBK的终端下执行了下列语句: SET NAMES latin1; INSERT INTO student VALUES ('小明', 12); 那么,如果我们现在使用的终端编码为...UTF-8,要怎样从表中查询关于小明的信息呢?

    3.3K70

    MySQL怎么存文本不乱码?

    MySQL采用UTF8MB4字符集时,存储文本实际消耗字节数是由文本内容的字节数决定的,并非总是需要4字节,列举几种情况: 输入字符集任意,且存储ASCII字符时,每个字符需要1byte; 输入字符集是...GB2312,且存储的字符是汉字时,每个字符需要2bytes; 输入字符集是UTF8/UTF8MB4,且存储的字符是低编码汉字时,每个字符需要3bytes; 输入字符集是UTF8/UTF8MB4,且存储的字符是高编码汉字时...,每个字符需要4bytes; 输入字符集是binary,且存储的字符是高编码汉字时,每个字符需要4bytes; 总结建议 从前端到后端(浏览器=>WEB Server=>MySQL连接层=>Server...2bytes,用于存储常见的CJK字符; UTF8,可变长字符集,最多占3bytes,可以囊括ASCII、CJK及其他绝大多数常用语言文字;这中间其实还有个UNICODE字符集,它也是2bytes的,也囊括...3bytes,而存储个别汉字则需要4bytes,存储emoji也至少需要4bytes; 附2,字符集兼容在线测试 为了方便大家,我写了个简单的PHP接口供测试,可以提交一些不常见的汉字,或者emoji表情符

    1.7K20

    Java进阶笔记——MySql中的varchar类型

    MySql的varchar类型资料收集整理如下。...MySQL 数据库的varchar类型在4.1以下的版本中,nvarchar(存储的是Unicode数据类型的字符)不管是一个字符还是一个汉字,都存为2个字节 ,一般用作中文或者其他语言输入,这样不容易乱码...;varchar: 汉字是2个字节,其他字符存为1个字节 ,varchar适合输入英文和数字。...汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 ;varchar(20)在Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同,具体有以下规则: a)...一个BLOB是一个保存可变数量的数据的二进制的大对象。4个BLOB类型TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB仅仅在他们保存值的最大长度方面有所不同。

    2.3K30
    领券