MySQL字段类型VARCHAR
varchar(n),n表示什么
- MySQL5.0.3之前varchar(n)这里的n表示字节数
- MySQL5.0.3之后varchar(n)这里的n表示字符数,比如varchar(200),不管是英文还是中文都可以存放200个
VARCHAR字段限制原因
字段的限制在字段定义的时候有以下规则:
- 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. ”
举两个例说明一下实际长度的计算。
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-303)/3=21812
减1和减2与上例相同;
减4的原因是int类型的c占4个字节;
减303的原因是char(30)占用90个字节,编码是utf8。
如果被varchar超过上述的b规则,被强转成text类型,则每个字段占用定义长度为11字节,即字段不再是“varchar”。
转载于:https://www.cnblogs.com/one-villager/p/8554192.html
MySQL字段类型VARCHAR相关推荐
- php数据库字段类型,mysql 字段类型说明
mysql 字段类型说明 更新时间:2007年04月27日 00:00:00 作者: MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用 ...
- 原 hibernate与mysql字段类型对应关系
原 hibernate与mysql字段类型对应关系 发表于8个月前(2015-04-17 08:56) 阅读(1102) | 评论(0) 2人收藏此文章, 我要收藏 赞0 1月16日厦门 OSC ...
- MySQL字段类型解析
前言: 要了解一个数据库,我们必须了解其支持的数据类型.MySQL 支持大量的字段类型,其中常用的也有很多.前面文章我们也讲过 int 及 varchar 类型的用法,但一直没有全面讲过字段类型,本篇 ...
- MySQL字段类型详解
MySQL字段类型详解 2009-01-05 09:25 来源:泡菜博客 0个评论 分享文章 A- A+ 百度权重查询 词库网 网站监控 服务器监控 SEO监控 Swift编程语言教程 MySQL支持 ...
- MySQL 字段类型解析
MySQL字段类型 MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型 字符串 char和varchar: 1.char(n) 若存入字符数小于n,则以空格补于 ...
- MySQL字段类型与Java中类型的对应
MySQL字段类型与Java中类型的对应 在设计数据的时候,需要与Java里的类型进行匹配,我自己在设计过程中参考的内容如下 编号 类型名称 显示长度 数据库类型 Java类型 备注/描述 0 VAR ...
- MySQL字段类型汇总及用法(超详细)
/********************************FileName: MySQL字段类型汇总及用法*Author: weibo*Version: v1.0*Date: 2016.5.1 ...
- MySQL字段类型对应Java字段
前言 MySQL Connector/J 对于 MySql 数据类型和 Java 数据类型之间的转换是很灵活的: 一般来讲,任何 MySql 数据类型都可以被转换为一个 java.lang.Strin ...
- 详解mysql字段类型int(4) int(10)等区别
一.mysql字段类型大致可以分为:数值.日期/时间.字符串 数值类型:tinyint,smallint,mediumint,int/integer,bigint,float,double,decim ...
最新文章
- python flask实现博客系统_基于Flask的博客网站设计与实现
- SAP BSP和JSP页面里UI元素的ID生成逻辑
- 使用GetDIBts/SetDIBits高速逐点处理 from http://blog.sina.com.cn/s/blog_552ad2090100e3eu.html...
- java实现二叉查找树_二叉查找树BST----java实现(示例代码)
- 三星S10指纹识别玩脱了!多家金融APP关闭指纹登陆功能
- 走进markdown
- 西瓜书+实战+吴恩达机器学习(十七)规则学习(序贯覆盖)
- Maven技巧和窍门:高级Reactor选项
- php增加html元素,使用php将appendChild($ element)添加到现有的html元素中
- maya前台渲染_maya前台渲染MEL
- 猿创征文|C++软件开发值得推荐的十大高效软件分析工具
- 专业模拟飞行11 linux,飞行模拟器 FlightGear 2019.1,Ubuntu PPA安装
- Java拦截器和过滤器
- 影子系统PowerShadow v2.6.0511中文破解版
- 中国智能POS终端行业市场供需与战略研究报告
- 网卡MAC地址是什么?
- c语言.jpg图片转成数组_图片可以转Word吗?教你两种方法轻松转换
- Android计步器获取手机步数
- 如何用AE导出程序员可以复用的Json代码
- 制作“大白菜”启动U盘教程
热门文章
- 【OpenSSL 之五】:HMAC算法分析
- 智慧(灯杆)路灯建设有可能会掀起城市革命,从而点亮新型智慧城市
- 没有链克口袋,但我一样玩游戏掘金
- 假定某计算机的cpu,43.(11分)假定某计算机的CPU主频为80 MHz,CPI为4
- WordPress让插件随主题一同启用
- RFI/RFP/RFQ
- 中学计算机竞赛教程,全国中小学信息技术课程教学大赛获奖案例初中信息技术八年级-设置自定义动画动作路径...
- 五分钟学会一篇期末学生学籍管理系统
- 优思学院|利用Excel进行双样本t检验
- jupyter 中重新 import 模块