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

MySql中Blob与Text的区别是什么

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

MySql中Blob与Text的区别是什么

本篇文章给大家分享的是有关MySql中Blob与Text的区别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。

有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。这些对应4种BLOB类型,有相同的最大长度和存储需求。

BLOB 列被视为二进制字符串(字节字符串)。TEXT列被视为非二进制字符串(字符字符串)。BLOB列没有字符集,并且排序和比较基于列值字节的数值值。TEXT列有一个字符集,并且根据字符集的 校对规则对值进行排序和比较。

在TEXT或BLOB列的存储或检索过程中,不存在大小写转换。

当未运行在严格模式时,如果你为BLOB或TEXT列分配一个超过该列类型的最大长度的值值,值被截取以保证适合。如果截掉的字符不是空格,将会产生一条警告。使用严格SQL模式,会产生错误,并且值将被拒绝而不是截取并给出警告。

在大多数方面,可以将BLOB列视为能够足够大的VARBINARY列。同样,可以将TEXT列视为VARCHAR列。BLOB和TEXT在以下几个方面不同于VARBINARY和VARCHAR:

·         当保存或检索BLOB和TEXT列的值时不删除尾部空格。(这与VARBINARY和VARCHAR列相同)。

请注意比较时将用空格对TEXT进行扩充以适合比较的对象,正如CHAR和VARCHAR。

·         对于BLOB和TEXT列的索引,必须指定索引前缀的长度。对于CHAR和VARCHAR,前缀长度是可选的。

·         BLOB和TEXT列不能有 默认值。

LONG和LONG VARCHAR对应MEDIUMTEXT数据类型。这是为了保证兼容性。如果TEXT列类型使用BINARY属性,将为列分配列字符集的二元 校对规则。

MySQL连接程序/ODBC将BLOB值定义为LONGVARBINARY,将TEXT值定义为LONGVARCHAR。

由于BLOB和TEXT值可能会非常长,使用它们时可能遇到一些约束:

·         当排序时只使用该列的前max_sort_length个字节。max_sort_length的 默认值是1024;该值可以在启动d服务器时使用--max_sort_length选项进行更改。

运行时增加max_sort_length的值可以在排序或组合时使更多的字节有意义。任何客户端可以更改其会话max_sort_length变量的值:

mysql> SET max_sort_length = 2000;

mysql> SELECT id, comment FROM tbl_name

    -> ORDER BY comment;

当你想要使超过max_sort_length的字节有意义,对含长值的BLOB或TEXT列使用GROUP BY或ORDER BY的另一种方式是将列值转换为固定长度的对象。标准方法是使用SUBSTRING函数。例如,下面的语句对comment列的2000个字节进行排序:

mysql> SELECT id, SUBSTRING(comment,1,2000) FROM tbl_name

    -> ORDER BY SUBSTRING(comment,1,2000);

·         BLOB或TEXT对象的最大大小由其类型确定,但在客户端和服务器之间实际可以传递的最大值由可用内存数量和通信缓存区大小确定。你可以通过更改max_allowed_packet变量的值更改消息缓存区的大小,但必须同时修改服务器和客户端程序。例如,可以使用mysql和mysqldump来更改客户端的max_allowed_packet值。

每个BLOB或TEXT值分别由内部分配的对象表示。这与其它列类型形成对比,后者是当打开表时为每1列分配存储引擎。

以上就是MySql中Blob与Text的区别是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

免责声明:

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

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

MySql中Blob与Text的区别是什么

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

下载Word文档

猜你喜欢

MySQL 中的 BLOB 和 TEXT 数据类型有什么区别?

BLOB代表Binary Large Objects,顾名思义,它可以用于存储二进制数据,而TEXT用于存储大量字符串。 BLOB可以用来存储二进制数据,这意味着我们还可以存储图片、视频、声音和程序。例如,下面的图像可以存储为 BLOB,
2023-10-22

oracle中blob与clob区别是什么

oracle中blob与clob区别是:1、BLOB是用来存储二进制数据的,而CLOB是用来存储文字的;2、BLOB全称为二进制大型对象,可存储的最大大小为4G字节,而CLOB全称为字符大型对象,不支持宽度不等的字符集,可存储的最大大小为4
2023-07-10

mysql中text和longtext有什么区别

在MySQL中,text和longtext是两种用来存储文本数据的数据类型,它们之间的区别主要在于存储的数据长度和占用的空间大小。text类型:text类型用来存储最大长度为65,535个字符的文本数据。text类型在存储数据时会占用1字节
mysql中text和longtext有什么区别
2024-04-19

mysql中myisam与innodb的区别是什么

MyISAM和InnoDB是MySQL数据库中两种最常用的存储引擎,它们之间有一些重要的区别:ACID属性:InnoDB支持事务,具有ACID(原子性、一致性、隔离性、持久性)属性,可以确保数据的完整性和一致性。而MyISAM不支持事务。锁
mysql中myisam与innodb的区别是什么
2024-03-15

jdbc与mysql的区别是什么

JDBC(Java Database Connectivity)是Java编程语言的一种标准接口,用于连接和操作各种数据库,包括MySQL。而MySQL是一种关系型数据库管理系统,采用SQL语言进行数据存储和操作。具体来说,JDBC是一种
jdbc与mysql的区别是什么
2024-04-09

Oracle与MySQL的区别是什么

这篇文章主要讲解了“Oracle与MySQL的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle与MySQL的区别是什么”吧!什么是MySQL?MySQL是一个关系型数据库
2023-07-06

nosql与mysql的区别是什么

这篇文章主要介绍“nosql与mysql的区别是什么”,在日常操作中,相信很多人在nosql与mysql的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”nosql与mysql的区别是什么”的疑惑有所
2023-02-09

mysql中drop、truncate与delete的区别是什么

本篇内容介绍了“mysql中drop、truncate与delete的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. drop
2023-06-29

编程热搜

目录