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

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

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

导读: 与ALTER TABLE 一样,索引名对于INDEX 和UNIQUE 都是可选的,如果未给出,MySQL将为其选一个。有一种特殊情形:可在列定义之后增加PRIMARY KEY 创建一个单列的PRIMARY KEY索引,如下所示: 前面所有表创建样例都对索引列指定了NOT NULL。如果是ISAM 表,这是必须的,因为不能对可能包含NULL 值的列进行索引。如果是MyISAM 表,索引列可以为NULL,只要该索引不是PRIMARY KEY 索引即可。 如果对某个串列的前缀进行索引(列值的最左边n 个字符),应用column_list 说明符表示该列的语法为col_name(n) 而不用c o l _ name。例如,下面第一条语句创建了一个具有两个CHAR 列的表和一个由这两列组成的索引。第二条语句类似,但只对每个列的前缀进行索引: 在某些情况下,可能会发现必须对列的前缀进行索引。例如,索引行的长度有一个最大上限,因此,如果索引列的长度超过了这个上限,那么就可能需要利用前缀进行索引。在MyISAM 表索引中,对BLOB 或TEXT 列也需要前

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

    与ALTER TABLE 一样,索引名对于INDEX 和UNIQUE 都是可选的,如果未给出,MySQL将为其选一个。有一种特殊情形:可在列定义之后增加PRIMARY KEY 创建一个单列的PRIMARY KEY索引,如下所示:

    前面所有表创建样例都对索引列指定了NOT NULL。如果是ISAM 表,这是必须的,因为不能对可能包含NULL 值的列进行索引。如果是MyISAM 表,索引列可以为NULL,只要该索引不是PRIMARY KEY 索引即可。
    如果对某个串列的前缀进行索引(列值的最左边n 个字符),应用column_list 说明符表示该列的语法为col_name(n) 而不用c o l _ name。例如,下面第一条语句创建了一个具有两个CHAR 列的表和一个由这两列组成的索引。第二条语句类似,但只对每个列的前缀进行索引:

    在某些情况下,可能会发现必须对列的前缀进行索引。例如,索引行的长度有一个最大上限,因此,如果索引列的长度超过了这个上限,那么就可能需要利用前缀进行索引。在MyISAM 表索引中,对BLOB 或TEXT 列也需要前缀索引。对一个列的前缀进行索引限制了以后对该列的更改;不能在不删除该索引并使用较短前缀的情况下,将该列缩短为一个长度小于索引所用前缀的长度的列。
    3. 删除索引
    可利用DROP INDEX 或ALTER TABLE 语句来删除索引。类似于CREATE INDEX 语句,DROP INDEX 通常在内部作为一条ALTER TABLE 语句处理,并且DROP INDEX 是在MySQL3.22 中引入的。删除索引语句的语法如下:

    前两条语句是等价的。第三条语句只在删除PRIMARY KEY 索引时使用;在此情形中,不需要索引名,因为一个表只可能具有一个这样的索引。如果没有明确地创建作为PRIMARY KEY 的索引,但该表具有一个或多个UNIQUE 索引,则MySQL将删除这些UNIQUE 索引中的第一个。
    如果从表中删除了列,则索引可能会受到影响。如果所删除的列为索引的组成部分,则该列也会从索引中删除。如果组成索引的所有列都被删除,则整个索引将被删除。
    3.4.4 ALTER TABLE 语句
    ALTER TABLE 语句是MySQL中一条通用的语句,可用它来做许多事情。我们已经看过了它的几种功能(创建和删除索引以及将表从一种存储格式转换为另一种存储格式)。本节中,我们将介绍它的一些其他功能。ALTER TABLE 的完整语法在附录D 中介绍。
    在发现某个表的结构不再反映所希望的东西时, ALTER TABLE很有用处。可能希望用该表记录其他信息,或者它含有多余的值。或者有的列太小,或者其定义较实际需要来说太大,需要将它们改小以节省存储空间。或者发布CREATE TABLE 语句时给出的表名不对。等等,诸如此类的问题,都可以用ALTER TABLE 语句来解决。下面是一些例子:
    ■ 您正操纵一个基于Web 的问卷,将每份提交的问卷作为表中的一个记录。后来决定修改此问卷,增加一些问题。这时必须对表增加一些列以存放新问题。
    ■ 您正在管理一个研究项目。用AUTO_INCREMENT 列分配案例号来研究记录。您不希望经费延期太长产生多于50 000 个以上的记录,因此,令该列的类型为UNSIGNED SMALLINT,它能存储的最大惟一值为65 535。但是,项目的经费延长了,似乎可能另外产生50 000 个记录。这时,需要使该列的类型更大一些以便存储更多的件号。

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