Mysql入门系列:MySQL的列类型(2)
2006-12-31 10:47:43 来源:WEB开发网核心提示: 请注意,VARCHAR 列的出现使MySQL将c1也转换成了VARCHAR 类型,Mysql入门系列:MySQL的列类型(2)(4),如果试图用ALTER TABLE 将c1转换为CHAR,将不起作用,BLOB 类型实际是一个类型系列( T I N Y B L O B、B L O B、M
请注意,VARCHAR 列的出现使MySQL将c1也转换成了VARCHAR 类型。如果试图用ALTER TABLE 将c1转换为CHAR,将不起作用。将VARCHAR 列转换为CHAR 的惟一办法是同时转换表中所有VARCHAR 列:
BLOB 和TEXT 列类型像VARCHAR 一样是可变长的,但是它们没有定长的等价类型,因此不能在同一表中与BLOB 或TEXT 列一起使用CHAR 列。这时任何CHAR 列都将被转换为VARCHAR 列。定长与可变长列混用的情形是在CHAR 列短于4 个字符时,可以不对其进行转换。例如,MySQL不会将下面所创建的表中的CHAR 列转换为VARCHAR 列:
短于4个字符的列不转换的原因是,平均情况下,不存储尾空格所节省的空间被VA R C HA R列中记录每个值的长度所需的额外字节所抵消了。实际上,如果所有列都短, MySQL将会把所定义的所有列从VARCHAR 转换为CHAR。MySQL这样做的原因是,这种转换平均来说不会增加存储需求,而且使表行定长,从而改善了性能。如果按如下创建一个表,VARCHAR 列全都会转换为CHAR 列:
2. BLOB 与TEXT 列类型
BLOB 是一个二进制大对象,是一个可以存储大量数据的容器,可以使其任意大。在MySQL中,BLOB 类型实际是一个类型系列( T I N Y B L O B、B L O B、M E D I U MB L O B、L O N G B L O B),除了在可以存储的最大信息量上不同外(请参阅表2 - 8),它们是等同的。
更多精彩
赞助商链接