当前位置:学学看123知识中心电脑教学数据库教程MYSQL创建、删除、索引和更改表» 正文

MYSQL创建、删除、索引和更改表

[06-11 18:19:01]   来源:http://www.xxk123.com  数据库教程   阅读:8238

导读: 这里的问题是需要在相同的ALTER TABLE 语句中一次更改所有的列。不可能一次一列地改完,或者说这个企图将不起作用。如果执行DESCRIBE chartbl,会发现两个列仍然是VARCHAR 的列!原因是如果每次更改一列, MySQL注意到表仍然包含有可变长的列,则会把已经更改过的列重新转换为VARCHAR 以节省空间。为了处理这个问题,应该同时更改所有VARCHAR 列: 现在DESCRIBE 将显示该表包含的都是CHAR 列。确实,这种类型的操作很重要,因为它使ALTER TABLE 能在相同的语句中支持多个动作。 这里要注意,在希望转换这样的表时:如果表中存在BLOB 或TEXT 列将使转换表为定长行格式的企图失败。即使表中只有一个可变长的列都将会使表有可变长的行,因为这些可变长的列类型没有定长的等价物。 ■ 将表从定长行转换为可变长的行。虽然, chartbl 用定长行更快,但它要占用更多的空间,因此决定将它转换回原来的形式以节省空间。这种转换更为容易。只需将某个CHAR 列转换为VARCHAR 列,MySQL就自动地转换其他的

MYSQL创建、删除、索引和更改表,标签:sql数据库教程,access数据库教程,http://www.xxk123.com

    这里的问题是需要在相同的ALTER TABLE 语句中一次更改所有的列。不可能一次一列地改完,或者说这个企图将不起作用。如果执行DESCRIBE chartbl,会发现两个列仍然是VARCHAR 的列!原因是如果每次更改一列, MySQL注意到表仍然包含有可变长的列,则会把已经更改过的列重新转换为VARCHAR 以节省空间。为了处理这个问题,应该同时更改所有VARCHAR 列:

    现在DESCRIBE 将显示该表包含的都是CHAR 列。确实,这种类型的操作很重要,因为它使ALTER TABLE 能在相同的语句中支持多个动作。
    这里要注意,在希望转换这样的表时:如果表中存在BLOB 或TEXT 列将使转换表为定长行格式的企图失败。即使表中只有一个可变长的列都将会使表有可变长的行,因为这些可变长的列类型没有定长的等价物。
    ■ 将表从定长行转换为可变长的行。虽然, chartbl 用定长行更快,但它要占用更多的空间,因此决定将它转换回原来的形式以节省空间。这种转换更为容易。只需将某个CHAR 列转换为VARCHAR 列,MySQL就自动地转换其他的CHAR 列。要想转换chartbl 表,用下列任一条语句都可以:

    ■ 转换表的类型。如果从MySQL3.23 版以前的版本升级到3.23 版或更高,那么可能会有一些原来创建为ISAM 表的旧表。如果希望使它们为MyISAM 格式,如下操作:

   为什么要这样做呢?正如在“创建和删除索引”小节中所介绍的那样,一个原因是MyISAM 存储格式具有某些ISAM 格式没有的索引特性,例如能够对NULL 值、BLOB 和TEXT 列类型进行索引。另一个原因为, MyISAM 表是独立于机器的,因此可通过将它们直接拷贝来将它们移到其他机器上,即使那些机器具有不同的硬件体系结构也同样。这在第11章中将要作进一步的介绍。

  上一篇      目录      下一篇 来源:unknown   ◆ 本站相关教程 获取MYSQL数据库和表的有关信息检索MYSQL记录为MYSQL加注释MYSQL解决方案随笔MySQL不支持的功能使用MYSQL索引MySQL查询优化程序MYSQL列类型选择与MYSQL查询效率

上一页  [1] [2] [3] [4] [5] [6] [7] 


Tag:数据库教程sql数据库教程,access数据库教程电脑教学 - 数据库教程

Copyright 学学看123 All Right Reserved.

1 2 3 4 5 6 7 8 9 10