修改字段类型及名称
如果需要修改字段类型及名称, 你可以在ALTER命令中使用 MODIFY 或 CHANGE 子句 。
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10); 把字段 c 的类型从 CHAR(1) 改为 CHAR(10),
使用 CHANGE 子句, 语法有很大的不同。 在 CHANGE 关键字之后,紧跟着的是你要修改的字段名,然后指定新字段名及类型。尝试如下实例:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
ALTER TABLE 对 Null 值和默认值的影响
当修改字段时,你可以指定是否包含空值或者是否设置默认值。
mysql> ALTER TABLEtestalter_tbl-> MODIFY j BIGINT NOT NULL DEFAULT 100; 指定字段 j 为 NOT NULL 且默认值为100 。
修改字段默认值
mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
使用ALTER命令及 DROP子句来删除字段的默认值
mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
修改数据表类型
可以使用 ALTER 命令及 TYPE 子句来完成。我们将表 testalter_tbl 的类型修改为 MYISAM :
注意:查看数据表类型可以使用 SHOW TABLE STATUS 语句。
mysql> ALTER TABLE testalter_tbl TYPE = MYISAM;
修改表名
如果需要修改数据表的名称,可以在 ALTER TABLE 语句中使用 RENAME 子句来实现。
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
索引
索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索包含多个列。
创建索引时,你需要确保该索引是应用在SQL 查询语句的条件(一般作为 WHERE 子句的条件)。
实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。
过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。
普通索引
最基本的索引,它没有任何限制,MyIASM中默认的BTREE类型的索引,也是我们大多数情况下用到的索引。
添加索引:create index index_time on Record(time(20));alter table Record add index index_time (time(20));create table User2(id integer primary key auto_increment, province varchar(20), index index_province (province(20)));
删除索引:drop index index_time on Record;
如果是CHAR,VARCHAR类型,length可以小于字段实际