[mysql基础文档]-10-数据类型之文本型
引言
前面的文章已经详细解释了MySQL表对一条记录的长度限制,那么如果我们要储存大量的文字数据,而一条记录能够储存的字符数又是有限的,这时候要怎么做呢?别急,本文介绍的文本类型,能够帮到你。
文章目录
0×1.MySQL text类型
● text类型介绍
text类型采用了长度索引和数据分离储存的方式,建表时,声明一个text字段,实际上,表记录中只储存了text类型的长度索引,而真实的数据存放在另外的文件中,根据这个长度索引再去读取另一个文件,这种分离储存的方法避免了因为一条记录的长度限制,导致文本无法全部储存的情况。
到目前为止(MySQL5.6),一共有四种长度的text类型供选择,详细参数如下:
tinytext:索引占用1字节,最大储存的字符长度为2^8-1;
text:索引占用2字节,最大储存的字符长度为2^16-1;
mediumtext:索引占用3字节,最大储存的字符长度为2^24-1;
longtext:索引占用4字节,最大储存的字符长度为2^32-1
● text类型建表实例
--创建表t12,仅一列,tinytext类型列,能储存255个字符 mysql> create table t12(tx tinytext); --插入数据 mysql> insert into t12 values('此处能输入255个字符,超出的部分将被直接丢弃')
0×2.MySQL blob类型
● blob类型介绍
blob(binary large object)全称二进制大对象,同text类型一样也能够储存字符,储存机制也完全相同,所不同的是blob将要储存的数据先转换成二进制,然后再储存到数据库文件中;
在不同的字符环境中,储存可能会丢失数据(比如将汉字储存到ASCII编码下),但几乎所有计算机,都能支持二进制编码,blob的做法就是将要储存的数据转化成二进制(0和1)再储存,这样不论字符集怎么转换,存入的都只是一堆0和1,读取时再翻译成当前环境编码即可。
到目前为止(MySQL5.6),一共有四种长度的blob类型可供选择,详细参数如下:
tinyblob:索引占用1字节,最大储存的字符长度为2^8-1;
blob:索引占用2字节,最大储存的字符长度为2^16-1;
mediumblob:索引占用3字节,最大储存的字符长度为2^24-1;
longblob:索引占用4字节,最大储存的字符长度为2^32-1
● blob类型建表实例
--看上去同text没有区别,输入的都是字符,但在储存到数据库文件之前,blob数据先被转换成了二进制再储存 mysql> create table t13(bl tinyblob); mysql> insert into t13 values('此处能输入255个字符,超出的部分将被直接丢弃')