在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

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

130次阅读
没有评论

共计 4287 个字符,预计需要花费 11 分钟才能阅读完成。

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

 1. blob 类型

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

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

 2. text 类型

text 类型同 char、varchar 类似,都可用于存储字符串,一般情况下,遇到存储长文本字符串的需求时可以考虑使用 text 类型。按照可存储大小区分,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 数据类型怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,丸趣 TV 小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计4287字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 毛片视屏 | 亚洲精品成人一区 | 欧美日韩精品一区二区在线播放 | 日本亲近相奷中文字幕 | 亚洲精品久久久久久久网站 | 免费被黄动漫网站在线观看下 | 99r8这里精品热视频免费看 | 视频一区二区在线 | 国产精品2022不卡在线观看 | 在线免费视频你懂的 | 久久无码人妻精品一区二区三区 | 人人揉揉香蕉 | 在线免费观看黄色 | 国产精品午夜小视频观看 | 六月成人网 | 无限资源在线观看第页 | 老头边吃奶边弄进去呻吟 | 无遮挡h肉动漫在线观看 | 欧美末成年videos丨 | 久久一本精品 | 久久精品道一区二区三区 | 国产精品 人妖系列 | 青青青青青青青青在线观看 | 亚洲免费人成视频观看 | 亚洲国产日韩欧美一区二区三区 | 久操视频网站 | 无码精品a∨在线观看中文 无码精品不卡一区二区三区 | 性视频福利在线看 | 免费看毛片的网址 | 成人aaa片一区国产精品 | 天天综合网天天做天天受 | 麻豆国产一区 | 国产v综合v亚洲欧美大片 | 99久久99 | 香港三日本三级少妇三级99 | 大肉大捧一进一出视频 | 日本-区二区三区免费精品 日本全黄录像视频 | 日韩亚洲色图 | 国产午夜精品一区二区三区小说 | 澳门四虎影院 | 国产精品人成福利视频 |