mysql中的alter_MySQl 中Alter语句的语法

ALTER TABLE 语句用于在已有的表中添加、修改或删除列。alter_specification:

ADD [COLUMN] create_definition [First | After column_name ]

or    ADD INDEX [index_name] (index_col_name,...)

or    ADD PRIMARY KEY (index_col_name,...)

or    ADD UNIQUE [index_name] (index_col_name,...)

or    ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}

or    CHANGE [COLUMN] old_col_name create_definition

or    MODIFY [COLUMN] create_definition

or    DROP [COLUMN] col_name

or    DROP PRIMARY KEY

or    DROP INDEX index_name

or    RENAME [AS] new_tbl_name

or    table_options

ALTER TABLE允许你修改一个现有表的结构。例如,你可以增加或删除列、创造或消去索引、改变现有列的类型、或重新命名列或表本身。你也能改变表的注释和表的类型

你可以在单个ALTER TABLE语句中发出多个ADD、ALTER、DROP和CHANGE子句。这是MySQL对ANSI SQL92的一个扩充,SQL92在每个ALTER TABLE语句中只允许一个子句。

CHANGE col_name、DROP col_name和DROP INDEX是MySQL对 ANSI SQL92 的扩充。

MODIFY是 Oracle 对ALTER TABLE的扩充。DROP INDEX删除一个索引。这是MySQL对 ANSI SQL92 的一个扩充。以下例子展示了ALTER TABLE的使用。首先展示表t1。表t1采用如下方法创建:

Create Table t1 (a integer,b Char(10));

把表t1重新命名为t2:

Alter Table t1 ReName t2;

把列a从Integer更改为TinyInt Not Null (名称保持不变),并把列b从Char(10)更改为Char(20), 同时把列b重新命名为列c:

Alter Table t2 Modify a TinyInt Not Null,Change b c Char(20);添加一个新的TimeStamp列,名称为d:

Alter Table t2 Add d TimeStamp

在列d和列a中添加索引:Alter Table t2 Add index(d),Add index(c)

删除列c:Alter Table t2  Drop Column c

添加一个新的AUTO_Increment整数列,名称为c:Alter Table t2  Add c Int Unsigned Not Null Auto_Increment

->Add Primary Key(c);

当你添加一个Auto_Increment列时列值被自动地按序号填入,对于MyISAM表,您可以在ALTER TABLE之前执行SET INSERT_ID=value来设置第一个序号,也可以使用AUTO_INCREMENT=value表选项来设置

如果你想要改变列的类型而非名字,就算他们是一样的,CHANGE语法仍然需要2个列名。例如:

ALTER TABLE  table1 CHANGE b b BIGINT NOT NULL;

然而,在MySQL3.22.16a,你也可以使用MODIFY来改变列的类型而不是重命名它:

ALTER TABLE t1 MODIFY b BIGINT NOT NULL;

MySQL数据库在指定位置增加字段

create table t1(age int,address varchar(50));

alter table t add column name varchar(20) after age;

alter table t1 add column id int FIRST;

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-10-13 13:52

浏览 1310

分类:数据库

评论

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值