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

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

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

导读: ■ ISAM 表。ISAM 存储格式是MySQL3.23 所用的最旧的格式,但当前仍然可用。通常,相对于ISAM 表来说,宁可使用MyISAM 表,因为它们的限制较少。对ISAM 表的支持随着此存储格式被MyISAM 表格式所支持很有可能会逐渐消失。 ■ HEAP 表。HEAP 存储格式建立利用定长行的内存中的表,这使表运行得非常快。在服务器停止时,它们将会消失。在这种意义上,这些表是临时的。但是,与用CREATE TEMPORARY TABLE 所创建的临时表相比,HEAP 表是其他客户机可见的。HEAP 表有几个限制,这些限制对MyISAM 或ISAM 表没有,如下所示: ■ 索引仅用于“=”和“< = >”比较。 ■ 索引列中不能有NULL 值。 ■ 不能使用BLOB 和TEXT 列。 ■ 不能使用AUTO_INCREMENT 列。 2. 创建不存在的表 要创建一个不存在的表,使用CREATE TABLE IF NOT EXISTS 即可。在某种应用程序中,无法确定要用的表是否已经存在,因此,要创建

MYSQL创建、删除、索引和更改表,标签:sql数据库教程,access数据库教程,http://www.xxk123.com
    ■ ISAM 表。ISAM 存储格式是MySQL3.23 所用的最旧的格式,但当前仍然可用。通常,相对于ISAM 表来说,宁可使用MyISAM 表,因为它们的限制较少。对ISAM 表的支持随着此存储格式被MyISAM 表格式所支持很有可能会逐渐消失。
    ■ HEAP 表。HEAP 存储格式建立利用定长行的内存中的表,这使表运行得非常快。在服务器停止时,它们将会消失。在这种意义上,这些表是临时的。但是,与用CREATE TEMPORARY TABLE 所创建的临时表相比,HEAP 表是其他客户机可见的。HEAP 表有几个限制,这些限制对MyISAM 或ISAM 表没有,如下所示:
    ■ 索引仅用于“=”和“< = >”比较。
    ■ 索引列中不能有NULL 值。
    ■ 不能使用BLOB 和TEXT 列。
    ■ 不能使用AUTO_INCREMENT 列。
    2. 创建不存在的表
    要创建一个不存在的表,使用CREATE TABLE IF NOT EXISTS 即可。在某种应用程序中,无法确定要用的表是否已经存在,因此,要创建这种表。IF NOT EXISTS 修饰符对于作为用mysql运行的批量作业的脚本极为有用。在这里,普通的CREATE TABLE 语句工作得
不是很好。因为作业第一次运行时,建立这些表,如果这些表已经存在,则第二次运行时将出错。如果用IF NOT EXISTS语句,就不会有问题。每一次运行作业时,像前面一样创建表。如果这些表已经存在,在第二次运行时,创建表失败,但不出错。这使得作业可以继续运行,就像创建表的企图已经成功了一样。
    3. 临时表
    可用CREATE TEMPORARY TABLE 来创建临时表,这些表在会话结束时会自动消失。使用临时表很方便,因为不必费心发布DROP TABLE 语句明确地删除这些表,而且如果您的会话不正常结束,这些表不会滞留。例如,如果某个文件中有一个用mysql运行的查询,您决定不等到其结束,那么可以在其执行的中途停止这个查询,而且毫无问题,服务器将删除所创建的任意临时表。在旧版的MySQL中,没有真正的临时表,除了您在自己的头脑中认为它们是临时的除外。对于需要这样的表的应用程序,必须自己记住删除这些表。如果忘了删除,或在前面使其存在的客户机中出现错误时,这些表在有人注意到并删除它们以前会一直存在。临时表仅对创建该表的客户机可见。其名称可与一个现有的永久表相同。这不是错误,也不会使已有的永久表出问题。假如在samp_db 数据库中创建了一个名为member 的临时表。原来的member 表变成隐藏的(不可访问),对member 的引用将引用临时表。如果发布一条DROP TABLE member 语句,这个临时表将被删除,而原来的member 表“重新出现”。如果您简单地中断与服务器的连接而没有删除临时表,服务器会自动地删除它。下一次连接时,
原来的member 表再次可见。名称隐藏机制仅在一个级别上起作用。即,不能创建两个具有同一个名称的临时表。
    4. 利用SELECT 的结果创建表
    关系数据库的一个重要概念是,任何数据都表示为行和列组成的表,而每条SELECT 语句的结果也都是一个行和列组成的表。在许多情况下,来自SELECT 的“表”仅是一个随着您的工作在显示屏上滚动的行和列的图像。在MySQL3.23 以前,如果想将SELECT 的结果保存在一个表中以便以后的查询使用,必须进行特殊的安排:
    1) 运行DESCRIBE 或SHOW COLUMNS 查询以确定想从中获取信息的表中的列类型。
    2) 创建一个表,明确地指定刚才查看到的列的名称和类型。
    3) 在创建了该表后,发布一条INSERT ... SELECT 查询,检索出结果并将它们插入所创建的表中。
    在MySQL3.23 中,全都作了改动。CREATE TABLE ... SELECT 语句消除了这些浪费时间的东西,使得能利用SELECT 查询的结果直接得出一个新表。只需一步就可以完成任务,不必知道或指定所检索的列的数据类型。这使得很容易创建一个完全用所喜欢的数据填充的表,并且为进一步查询作了准备。可以通过选择一个表的全部内容(无WHERE 子句)来拷贝一个表,或利用一个总是失
败的WHERE 子句来创建一个空表,如:

上一页  [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