一,char类型

char列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存char值时,在它们的右边填充空格以达到指定的长度。当检索到char值时,尾部的空格被删除掉。在存储或检索过程中不进行大小写转换。

二,varchar类型

varchar列中的值为可变长字符串。长度可以指定为0到65,535之间的值。(varchar的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65,532字节)。

三,text类型

有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;该值可以在启动mysqld服务器时使用--max_sort_length选项进行更改。参见5.3.3节,“服务器系统变量”。

运行时增加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值。参见7.5.2节,“调节服务器参数”、8.3节,“mysql:mysql命令行工具”和8.8节,“mysqldump:数据库备份程序”。

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

以上就是mysql中text|varchar|char字段类型的用法区别,希望对大家有所帮助。

mysql中建立text_mysql中text相关推荐

  1. mysql版scott数据库_MySQL中建立Oracle中SCOTT数据示例

    1.创建 scott 数据库 CREATE DATABASE scott; 2.创建 scott 数据库中的 dept 表 CREATE TABLE dept( deptno INT UNSIGNED ...

  2. starccm+中建立报告中遇到的问题

    请教各位大佬,我做了一组电池生热的热仿真. 在对建立四块单体电池最高温度的监测报告后,随着电池温度的升高,报告没有任何图像显示,请问这是什么原因.

  3. mysql bench建立一张表_使用MySQL Workbench建立数据库,建立新的表,向表中添加数据...

    点击上图中的"加号"图标,新建一个连接, 如上图,先输入数据库的账号密码,帐号默认为root,填好密码后 点击"OK",连接就建立好了,建立完成后,会出现一个长 ...

  4. 使用MySQL Workbench建立数据库,建立新的表,向表中添加数据

    初学数据库,记录一下所学的知识.我用的MySQL数据库,使用MySQL Workbench管理.下面简单介绍一下如何使用MySQL Workbench建立数据库,建立新的表,为表添加数据. 点击上图中 ...

  5. mysql中的blob和text区别

    mysql中的blob和text区别 经过查询资料发现 除了blob 还有tinyblob longblob mediumblob 当然text还有tinytext mediumtext longte ...

  6. mysql 关联索引_mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?...

    情况描述:在MySQL的user表中,对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引? 根据查询字段的位置不同来决定,如查询a,     a,b    a,b, ...

  7. mysql insert 主键冲突_在MySql中建立存储过程和解决insert into select 中主键冲突的有关问题...

    首先说需求,我想重复插入大量数据,那么首先想到的,就是用insert into select语句. 但是因为mysql中没有将主键设为自增长,导致每次都会报主键冲突的错误,插入失败. 对于这个问题,就 ...

  8. 如何在mysql 中建立有关联关系的表

    昨天在自己做的一个系统中使用mysql,折腾了半天始终无法建立外键,通过查找文档最终将问题解决,原来mysql中默认建立的表所使用的存储引擎为MyISAM类型,在这种类型的table中建立的外键只起到 ...

  9. navicat for mysql创建触发器_在navicat for mysql中建立触发器

    Mysql的触发器(trigger):监视某种操作,并触发另一种操作.简要说:对表M的操作A触发了对表N的操作B. 触发器创建语法四要素: 1..引发对象(哪一张表引发的?也就是说表M是谁?) 2.触 ...

最新文章

  1. php培训12.22
  2. python 函数的调用的时候参数的传递_Python Unittest;如何获取调用函数时传递的参数?...
  3. Codeforces1045G
  4. 最短路径--Floyd算法
  5. 中关村修电脑记实:那些年,修电脑犯下的错!
  6. 关于Dijkstra最短路径算法
  7. 正则表达式,一篇就够了
  8. python画双坐标图_Python画双坐标曲线图
  9. 计算机就业前景调查报告问题,计算机专业就业前景调查报告.docx
  10. Monster: half man, half beast and very scary.
  11. UE4UE5 VR开发多人联机RPC的坑
  12. 实测:华为鸿蒙系统比 Android 系统快 60%!
  13. CC00033.bigdatajava——|Java方法封装.V15|——|Java.v15|费氏数列.v01|递归实现|
  14. Win10系统,使用VSCode提示错误fatal: detected dubious ownership in repository at
  15. 微软上海,招 Partner 软件开发经理!
  16. Python分析股票行情代码
  17. H265 数据结构与码流分析
  18. 文兄的算法题——算术表达式递归构造二叉树
  19. 品味树莓派:GPIO Zero库使用入门
  20. 还在自学黑客?一般人我劝你还是算了吧!

热门文章

  1. MyBatis笔记——配置文件完成增删改查
  2. 【转】C#各类控件的输入输出(思维导图、知识点分析、案例解析)
  3. [你必须知道的.NET] 第五回:深入浅出关键字---把new说透
  4. 解决Sharepoint每天第一次打开速度慢的问题
  5. 【转】2015-新思想、新技术、新架构——更好更快的开发现代ASP.NET应用程序
  6. 一步步编写操作系统 43 汇编语言和c语言的理解
  7. php接口datatype= text,关于php:dataType:“json”不起作用
  8. ajax里绑定框,Select级联菜单,用Ajax获取Json绑定下拉框(jQuery)
  9. mysql 关联更新_跳出初学MySQL知识的原理整理(一)
  10. 【CodeForces - 27E】Number With The Given Amount Of Divisors (数论,数学,反素数)