我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL中怎么求varchar最大长度

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL中怎么求varchar最大长度

MySQL中怎么求varchar最大长度,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1、限制规则
字段的限制在字段定义的时候有以下规则:
   www.2cto.com  
a)                  存储限制
varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。
 
b)                  编码长度限制
字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766;
字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。
若定义的时候超过上述限制,则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。  www.2cto.com  
 
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”了。

关于MySQL中怎么求varchar最大长度问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL中怎么求varchar最大长度

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

oracle中varchar最大长度是多少

oracle 中varchar的最大长度取决于oracle版本和数据库字符集:oracle 11g和更早版本为4000字节,oracle 12c及更高版本为32767字节。单字节字符集(如ascii)的最大长度为4000个字符,多字节字符集
oracle中varchar最大长度是多少
2024-05-08

c++中字符串的长度怎么求

c++中获取字符串长度的方法有:字符串对象方法:string::size() 和 string::length(),返回不含终止符 '\0' 的字符个数;指针操作:遍历字符串直到遇到 '\0',计算字符个数。C++ 中字符串的长度获取方式
c++中字符串的长度怎么求
2024-05-12

Oracle中怎么将VARCHAR类型的列修改为指定长度

要修改VARCHAR列的长度,请使用ALTERTABLE语句。语法为:ALTERTABLEtable_nameMODIFYcolumn_nameVARCHAR2(new_length)。考虑新长度、外键约束和索引。可以使用TRUNCATE或EXTEND子句截断或扩展数据。Oracle的In-placecolumnaddition功能允许在线修改而无需重建表,适用于ROW组织模式、无索引和外键约束、且新长度大于等于现有长度的列。
Oracle中怎么将VARCHAR类型的列修改为指定长度
2024-05-13

MySQL中每种类型标识符的最大长度是多少?

众所周知,MySQL 中的某些对象被称为标识符。这些对象包括数据库、表、索引、列、别名、视图、存储过程、分区、表空间等。标识符使用 Unicode (UTF-8) 存储。每种类型标识符的最大长度如下表所示:Sr.编号标识符最大长度(字符)1
2023-10-22

C++中怎么用sizeof求字符串长度

在C++中,可以使用sizeof运算符来求字符串的长度。但需要注意的是,sizeof运算符返回的是字符串在内存中所占的字节数,而不是字符串的实际长度。在使用sizeof求字符串长度时,需要注意以下几点:sizeof运算符只适用于数组,对于
C++中怎么用sizeof求字符串长度
2023-10-28

c++中字符数组的长度怎么求

c++ 中求字符数组长度的标准方法是使用 strlen() 函数。该函数接受指向字符数组的指针,返回数组中以 '\0' 结尾的字符数。要使用它,声明数组、调用 strlen() 并打印结果。strlen() 不计算空字符本身的长度,对于 c
c++中字符数组的长度怎么求
2024-05-10

怎么用C++求出二叉树的最大深度

这篇文章主要介绍“怎么用C++求出二叉树的最大深度”,在日常操作中,相信很多人在怎么用C++求出二叉树的最大深度问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用C++求出二叉树的最大深度”的疑惑有所帮助!
2023-06-20

mysql中enum的长度怎么计算

mysql 中 enum 数据类型的长度取决于存储的字符数和字符集中的字节数。计算公式为:存储的字符数 × 字符集中的字节数。MySQL 中 ENUM 数据类型的长度计算MySQL 中的 ENUM 数据类型用于存储一组预定义的值。它的长度
mysql中enum的长度怎么计算
2024-05-01

php中怎么求数组最大值

这篇文章主要介绍了php中怎么求数组最大值的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php中怎么求数组最大值文章都会有所收获,下面我们一起来看看吧。php中求数组最大值的函数是“max()”。max()函数
2023-07-02

php怎么求数组中最大下标

php求数组中最大下标的步骤:1、使用array_keys()函数获取数组中的所有下标,并以数组形式返回得到的数组下标,语法“array_keys(原数组)”,会返回一个包含所有下标的数组;2、使用max()函数获取下标数组中的最大值即可,语法“max(下标数组)”。本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑在php中,将数组的下标组成一个数组,通过max函数便可以获得
2022-06-28

MySQL中alter table怎么修改字段长度

要在MySQL中修改表的字段长度,可以使用ALTER TABLE语句。以下是修改字段长度的一般步骤:使用以下语法来修改字段的长度:ALTER TABLE table_name MODIFY column_name new_data_type
MySQL中alter table怎么修改字段长度
2024-04-09

mysql中怎么查看bigint类型的长度

在MySQL中,可以使用以下SQL语句来查看bigint类型的长度:SHOW COLUMNS FROM table_name LIKE 'column_name';其中,table_name是要查询的表名,column
mysql中怎么查看bigint类型的长度
2024-05-08

编程热搜

目录