• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL数据库varchar的限制规则说明

MySQL数据库varchar的限制规则说明

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了varchar,限制规则等相关知识,希望本文的分享对您有所帮助

本文我们主要介绍了MySQL数据库中varchar的限制规则,并以一个实际的例子对限制规则进行了说明,希望能够对您有所帮助。

MySQL数据库中varchar最大长度是多少?其实这不是一个固定的数字,varchar的长度是有限制规则的。本文我们就来介绍一下MySQL数据库中varchar的限制规则,并以一个实际的例子对限制规则进行了说明,接下来就让我们一起来了解一下这部分内容。

1、限制规则

字段的限制在字段定义的时候有以下规则:

a)存储限制

varchar字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。

b)编码长度限制

字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766;

字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。

若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并产生warning。

c)行长度限制

导致实际应用中varchar长度限制的是一个行定义的长度。MySQL要求一个行的定义长度不能超过65535。若定义的表长度超过这个值,则提示ERROR1118(42000):Rowsizetoolarge.Themaximumrowsizefortheusedtabletype,notcountingBLOBs,is65535.YouhavetochangesomecolumnstoTEXTorBLOBs。

2、计算例子

举两个例说明一下实际长度的计算。

a)若一个表只有一个varchar类型,如定义为createtablet4(cvarchar(N))charset=gbk;则此处N的最大值为(65535-1-2)/2=32766。

减1的原因是实际行存储从第二个字节开始';

减2的原因是varchar头部的2个字节表示长度;

除2的原因是字符编码是gbk。

b)若一个表定义为createtablet4(cint,c2char(30),c3varchar(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”了。

关于MySQL数据库中varchar的限制规则的知识就介绍到这里了,希望本次的介绍能够对您有所收获!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 深入char、varchar、text和nchar、nvarchar、ntext的区别详解
  • mysql VARCHAR的最大长度到底是多少
  • MySQL中CHAR和VARCHAR类型演变和详解
  • Mysql varchar大小长度问题介绍
  • MySQL数据库varchar的限制规则说明
  • mysql中char与varchar的区别分析
  • char、varchar、nchar、nvarchar、text之间有哪些区别
  • mysql中关于char和varchar的区别
  • 解析MySQL动态修改varchar长度的方法
  • MySQL中char与varchar数据类型选择原则

相关文章

  • 2018-12-05MySQL事务、锁以及应用(二)
  • 2017-05-11Last_Errno: 1062,Last_Error: Error Duplicate entry
  • 2018-12-05关于mysql_field_flags的文章推荐
  • 2017-05-11深入mysql主从复制延迟问题的详解
  • 2018-12-05sqlserver中比较一个字符串中是否含含另一个字符串中的一个字符
  • 2018-12-05xammp怎样设置mysql数据库密码?
  • 2018-12-05mybatis属性详解
  • 2018-12-05Centos7安装和配置Mysql5.7的方法分享
  • 2017-09-02Mysql修改默认数据目录
  • 2018-12-05虚拟机linux中装mysql数据库

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Oracle三种上载文件技术
    • SQL Join的一些总结(实例)
    • MySQL中把varchar类型转为date类型方法详解_MySQL
    • MySQL存储引擎 InnoDB与MyISAM的区别
    • 实现MySQL语句加锁的方法
    • 教您修复mysql数据库的方法
    • sql数据库的增删改图文教程(phpMyAdmin使用教程)
    • 怎样解决MySQL 5.0.16的乱码问题
    • MySQL随机查询记录的效率测试分析
    • MySQL索引设计一些策略_MySQL

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有