您的位置:首页 >> 数据库 >> MySQL >> 正文
MySQL RSS
 

MySQL数据库学习手册之MySQL语言参考

http://www.rdxx.com 05年08月24日 10:00 linux宝库 我要投稿



4个TEXT类型TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT对应于4个BLOB类型,并且有同样的最大长度和存储需求。在BLOB和TEXT类型之间的唯一差别是对BLOB值的排序和比较以大小写敏感方式执行,而对TEXT值是大小写不敏感的。换句话说,一个TEXT是一个大小写不敏感的BLOB。

如果你把一个超过列类型最大长度的值赋给一个BLOB或TEXT列,值被截断以适合它。

在大多数方面,你可以认为一个TEXT行列是你所希望大的一个VARCHAR列。同样,你可以认为一个BLOB列是一个VARCHAR BINARY列。差别是:

* 用MySQL版本3.23.2和更新,你能在BLOB和TEXT列上索引。更旧的MySQL版本不支持这个。
* 当值被存储时,对BLOB和TEXT列没有拖后空格的删除,因为对VARCHAR列有删除。
* BLOB和TEXT列不能有DEFAULT值。

MyODBC定义BLOB为LONGVARBINARY,TEXT值为LONGVARCHAR。

因为BLOB和TEXT值可以是非常长的,当使用他们时,你可能遇到一些限制:

* 如果你想要在一个BLOB或TEXT列上使用GROUP BY或ORDER BY,你必须将列值变换成一个定长对象。这样做的标准方法是用SUBSTRING函数。例如:

mysql> select comment from tbl_name,substring(comment,20) as substr ORDER BY substr;

如果你不这样做,在排序时,只有列的首max_sort_length个字节被使用,缺省的max_sort_length是1024;这个值能在启动mysqld服务器时使用-O选择改变。你可以在包含BLOB或TEXT值得一个表达式上分组(group),通过指定列的位置或使用一个别名:

mysql> select id,substring(blob_col,1,100) from tbl_name
GROUP BY 2;
mysql> select id,substring(blob_col,1,100) as b from tbl_name
GROUP BY b;

* 一个BLOB或TEXT对象的最大尺寸由其类型决定,但是你能在客户与服务器之间是实际传输的最大值由可用的内存数量和通讯缓冲区的大小来决定。你能改变消息缓冲区大小,但是你必须在服务器和客户两端做。见10.2.3 调节服务器参数。

注意,每个BLOB或TEXT值内部由一个独立分配的对象表示。这与所有的其他列类型相反,它们是在打开表时,按列被分配一次存储。
7.3.7.3 ENUM类型

一个ENUM是一个字符对象,其值通常从一个在表创建时明确被列举的允许值的一张表中选择。

在下列的某个情形下,值也可以空字符串("")或NULL:

* 如果你把一个无效值插入到一个ENUM(即,一个不在允许的值列表中的字符串),空字符串作为一个特殊错误的值被插入。
* 如果一个ENUM被声明为NULL,NULL也是列的合法值,并且缺省值是NULL。如果一个ENUM被声明为NOT NULL,缺省值是允许值的列表的第一成员。

9 7 3 11 12 13 14 15 16 17 18 19 20 4 8 :


 
 
标签: 学习手册 , 参考 , MySQL , 语言 , 数据库 , SQL , 数据 , 学习 , 手册 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站