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

MySQL中blob和text数据类型怎么用

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

MySQL中blob和text数据类型怎么用

今天小编给大家分享一下MySQL中blob和text数据类型怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

MySQL中blob和text数据类型怎么用

 1. blob 类型

blob(binary large object) 是一个可以存储二进制文件的容器,主要用于存储二进制大对象,例如可以存储图片,音视频等文件。按照可存储容量大小不同来分类,blob 类型可分为以下四种:

MySQL中blob和text数据类型怎么用

其中最常用的就是 blob 字段类型了,最多可存储 65KB 大小的数据,一般可用于存储图标或 logo 图片。不过数据库并不适合直接存储图片,如果有大量存储图片的需求,请使用对象存储或文件存储,数据库中可以存储图片路径来调用。

 2. text 类型

text 类型同 char、varchar 类似,都可用于存储字符串,一般情况下,遇到存储长文本字符串的需求时可以考虑使用 text 类型。按照可存储大小区分,text 类型同样可分为以下四种:

MySQL中blob和text数据类型怎么用

不过在日常场景中,存储字符串还是尽量用 varchar ,只有要存储长文本数据时,可以使用 text 类型。对比 varchar ,text 类型有以下特点:

  • text 类型无须指定长度。

  • 若数据库未启用严格的 sqlmode ,当插入的值超过 text 列的最大长度时,则该值会被截断插入并生成警告。

  • text 类型字段不能有默认值。

  • varchar 可直接创建索引,text 字段创建索引要指定前多少个字符。

  • text 类型检索效率比 varchar 要低。

下面我们来具体测试下 text 类型的使用方法:

# 创建测试表 字符集是 utf8
mysql> show create table tb_text\G
*************************** 1. row ***************************
       Table: tb_text
Create Table: CREATE TABLE `tb_text` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `a` tinytext,
  `b` text,
  `c` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
# 创建索引测试 发现text类型必须指定前缀长度
mysql> alter table tb_text add index idx_a (a);
ERROR 1170 (42000): BLOB/TEXT column 'a' used in key specification without a key length
mysql> alter table tb_text add index idx_b (b); 
ERROR 1170 (42000): BLOB/TEXT column 'b' used in key specification without a key length
mysql> alter table tb_text add index idx_c (c);
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> alter table tb_text add index idx_b (b(10));
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0
# 插入数据测试(repeat函数用于生成重复数据)
# 正常插入
mysql> insert into tb_text  (a,b,c) values (repeat('hello',3),repeat('hello',3),repeat('hello',3));
Query OK, 1 row affected (0.01 sec)
# 插入英文字符超标
mysql> insert into tb_text  (a) values (repeat('hello',52));
Query OK, 1 row affected, 1 warning (0.01 sec)
mysql> show warnings;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1265 | Data truncated for column 'a' at row 1 |
+---------+------+----------------------------------------+
1 row in set (0.00 sec)
# 插入中文超标
mysql>  insert into tb_text  (a) values (repeat('你好',100));
Query OK, 1 row affected, 1 warning (0.02 sec)
mysql> show warnings;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1265 | Data truncated for column 'a' at row 1 |
+---------+------+----------------------------------------+
1 row in set (0.00 sec)
# 查看数据 发现数据有所截取 tinytext 类型最多存储255字节数据
mysql> select * from tb_text;
+----+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+
| id | a | b | c |
+----+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+
|  1 | hellohellohello | hellohellohello | hellohellohello |
|  2 | hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello | NULL| NULL|
|  3 | 你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你| NULL| NULL|
+----+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+
3 rows in set (0.00 sec)

通过以上测试,我们注意到,text 类型可存储容量是以字节为单位而不是字符。例如 tinytext 最多存储 255 个字节而不是 255 个字符,在 utf8 字符集下,一个英文字母或数字占用一个字节,而一个中文汉字占用三个字节。也就是说 tinytext 最多存储 255/3=85 个汉字,text 最多存储 65535/3=21845 个汉字。而 varchar(M) 中的 M 指的是字符数,一个英文、数字、汉字都是占用一个字符,即 tinytext 可存储的大小并不比 varchar(255) 多。

以上就是“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数据类型在存储大型数据对象时起着重要作用。Blob用于存储二进制数据,例如图片、音频或视频文件,而Clob用于文本数据,例如长文本、HTML页面等。本文将详细介绍Blob和Clob数据类型的区别及使用
Oracle中Blob和Clob数据类型的区别及用法介绍
2024-03-08

什么是 JDBC Blob 数据类型?如何存储和读取其中的数据?

BLOB 是二进制大对象,可以容纳可变数量的数据,最大长度为 65535 个字符。它们用于存储大量二进制数据,例如图像或其他类型的数据。文件。定义为 TEXT 的字段也保存大量数据。两者之间的区别在于,存储数据的排序和比较在 BLOB 中区
2023-10-22

什么是 JDBC Blob 数据类型如何存储和读取其中的数据

JDBC Blob(Binary Large Object)是一种用于存储大型二进制数据的数据类型,比如图片、音频、视频等。在数据库中,Blob数据类型存储的是二进制数据的指针,而不是实际的数据。实际的数据可以通过Java程序进行存储和读取
2023-10-10

oracle中blob字段都能存什么类型的数据

oracle blob 字段可存储以下数据类型:图像、视频、音频、文档、应用程序包和数据库备份,以及应用程序创建的任何其他自定义二进制数据。Oracle BLOB 字段可存储的数据类型Oracle BLOB(二进制大对象)字段是一种数据类
oracle中blob字段都能存什么类型的数据
2024-04-30

mysql中整数数据类型tinyint怎么使用

本篇内容主要讲解“mysql中整数数据类型tinyint怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中整数数据类型tinyint怎么使用”吧!1.1 tinyint类型说明数
2023-06-21

mysql数据库中Decimal类型怎么使用

今天小编给大家分享一下mysql数据库中Decimal类型怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1 背景数字
2023-06-29

MySQL中JSON字段数据类型怎么用

本文小编为大家详细介绍“MySQL中JSON字段数据类型怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL中JSON字段数据类型怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言JSON 类型
2023-07-02

Oracle数据库中Blob和Clob数据类型的差异及优劣势分析

Blob和Clob是Oracle数据库中两种常见的数据类型,用于存储大量的二进制数据和字符数据。本文将分析Blob和Clob数据类型的差异,并从各自的优势和劣势进行比较。一、Blob数据类型Blob是Binary Large Objec
Oracle数据库中Blob和Clob数据类型的差异及优劣势分析
2024-03-08

mysql数据类型怎么改

是的,可以通过以下步骤修改 mysql 数据类型:连接到数据库选择要修改的表使用 alter table 语句修改列数据类型验证更改如何修改 MySQL 数据类型MySQL 数据类型是用于指定表中列的数据格式和限制。在某些情况下,您可能需
mysql数据类型怎么改
2024-05-30

编程热搜

目录