转载

[mysql基础文档]-10-数据类型之文本型

前面的文章已经详细解释了MySQL表对一条记录的长度限制,那么如果我们要储存大量的文字数据,而一条记录能够储存的字符数又是有限的,这时候要怎么做呢?别急,本文介绍的文本类型,能够帮到你。

文章目录

  • [1].MySQL text类型
  • [2].MySQL blob类型

[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个字符,超出的部分将被直接丢弃')

[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个字符,超出的部分将被直接丢弃')

[**] 注:如文中未特别声明转载请注明出自:QingSword.COM

正文到此结束
Loading...