mysql的alter用法总结

ALTER TABLE简介

当表被创建后,在使用过程中可能会有一些新的需求,这时候可能需要修改表的结构。如果表中已经填充了数据,重新建表会造成现有数据的丢失,为此可以用ALTER TABLE对表结构进行修改

为表添加新列


前提

向表中添加列的前提是所添加的列允许使用NULL值或者对该列使用DEFAULT约数指定了默认的值。

命令格式

ALTER TABLE $tablename ADD  $column_name $object_type [NULL|NOT NULL DEFAULT "默认值"];

参数解释:
tablename:需要添加字段的表名称
column_name:添加的列名
object_type:添加列的数据类型
[]:添加列的默认值

说明

向一个表添加新列时,数据库引擎会在该列中为表中的每个现有数据行插入一个值。因此,在向表中添加列时为指定DEFAULT定义会很有用。如果新列没有DEFAULT定义,则必须指定该列允许NULL值,数据库引擎将NULL值插入该列。如果不允许NULL值,则返回错误。

示例操作



删除表中的列


前提

在删除一列之前,必须先删除任何引用该列的约束、默认表达式、计算列表达式或索引

命令

ALTER TABLE $tablename DROP COLUMN $column_name;

示例操作




修改表中的列

修改主要操作

  • 修改列的名称
  • 修改列的数据类型

命令

ALTER TABLE $tablename CHANGE $old_column_name $new_column_name $column_type;

示例操作

修改列名



截图中的错误是因为修改列明是没有指定数据类型,所以$column_type是必须参数

修改列的数据类型




重命名表

命令

ALTER TABLE $table_name1 RENAME $table_name2;

示例




简单的[创建|删除]索引字段


创建索引

命令

ALTER TABLE $table_name ADD INDEX $index_name($column_name1,$colunm_name2)

参数解释:
$index_name:建立索引的名称
$column_name[1|2]:需要建立索引的字段名

示例操作



删除索引

命令

ALTER TABLE $table_name DROP INDEX $index_name;

示例操作




参考书籍

《锋利的SQL》
posted @ 2013-01-27 17:40  java程序员填空  阅读(381)  评论(0编辑  收藏  举报