Mysql入门系列:MySQL的列类型(2)
2006-12-31 10:47:43 来源:WEB开发网核心提示: 列定义中的ENUM 成员是从1开始顺序编号的,(0 被MySQL用作错误成员,Mysql入门系列:MySQL的列类型(2)(8),如果以串的形式表示就是空串,)枚举值的数目决定了ENUM 列的存储大小,如此等等,数值SET 值0 对应于空串,一个字节可表示256 个值,两个字节可表示65
列定义中的ENUM 成员是从1开始顺序编号的。(0 被MySQL用作错误成员,如果以串的形式表示就是空串。)枚举值的数目决定了ENUM 列的存储大小。一个字节可表示256 个值,两个字节可表示65 536 个值。(可将其与一字节和两字节的整数类型T I N Y I N T、
UNSIGNED 和SMALLINT UNSIGNED 进行对比。)因此,枚举成员的最大数目为65 536(包括错误成员),并且存储大小依赖于成员数目是否多于256 个。在ENUM 定义中,可以最多指定65 535(而不是65 536)个成员,因为MySQL保留了一个错误成员,它是每个枚举的隐含成员。在将一个非法值赋给ENUM 列时,MySQL自动将其换成错误成员。下面有一个例子,可用mysql客户机程序测试一下。它给出枚举成员的数值顺序,而且还说明了NULL 值无顺序编号:
可对ENUM 成员按名或者按编号进行运算,例如:
可以定义空串为一个合法的枚举成员。与列在定义中的其他成员一样,它将被赋予一个非零的数值。但是使用空串可能会引起某些混淆,因为该串也被作为数值为0 的错误成员。在下面的例子中,将非法的枚举值“ x”赋予ENUM 列引起了错误成员的赋值。仅在以数值
形式进行检索时,才能够与空串区分开:
SET 列的数值表示与ENUM 列的表示有所不同,集合成员不是顺序编号的。每个成员对应SET 值中的一个二进制位。第一个集合成员对应于0 位,第二个成员对应于1位,如此等等。数值SET 值0 对应于空串。SET 成员以位值保存。每个字节的8 个集合值可按此方式存
更多精彩
赞助商链接