首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  MYSQL/SQL语句/PHPMYADMIN专栏 » [站长新作]6种常用alter table句法使用介绍  


  作者:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

  nqp@nqp.me
  4304410
  www.nqp.me

 

 发表:2004-04-08 19:24:36 阅读 2708 次 回复 0 次 得分0  |   字号 字色
[站长新作]6种常用alter table句法使用介绍
   近来,许多网友不断咨询有关alter table句法的使用知识。站长参考Mysql官方说明文档,将于此有关的内容整理介绍如下,希望对学习mysql的朋友有所帮助。

  总的来说,alter table是一个用来改变现有表的结构的句法。例如,你可以添加或删除列,创建或撤销索引,更改现有列的类型或将列或表自身更名。你也可以改变表的注释和表的类型。
   alter table的使用比较经常,而且使用方法也稍微有点复杂。当然,你可以使用什么样的alter table语句取决于你的mysql版本,Mysql并不支持所有的sql语句,所以,有些你在别的地方学习到的sql语句在这里可能完全行不通。所以,在介绍alter table之前,首先声明,我下面要介绍的内容是在mysql 4.0.12版本上的。至于哪些版本与这个版本兼容,就无从知晓了。所以,如果你在阅读本文时发现有些语句无法执行,那么请不要奇怪,一定是我们使用的Mysql版本不同。

  好,下面开始介绍一下mysql的alter table语句的句法:

   mysql官方说明文档中列举了全部alter table 句法,一共18种。在这里我们不一一介绍,只介绍其中比较常用的6种,如果您很有兴趣做更多的了解,可以参考Mysql官方说明文档或者Mysql帮助。

今天要介绍的ALTER TABLE 精简句法(注意:本句法被站长作了精简,并非原貌)
----------------------------------------------------------------------
ALTER TABLE 表名  修改语句 [附加语句]

[修改语句]和[附加语句]可以使用下面几种语句中的一种

1、   ADD [列] 列定义 [FIRST | AFTER 列名]
2、   ADD [列] (列定义1,列定义2.........)
3、   CHANGE [列] 列定义 [FIRST | AFTER column_name]
4、   MODIFY [列] 列定义 [FIRST | AFTER column_name]
5、   DROP [COLUMN] 列名
6、   RENAME [TO] 新表名
-------------------------------------------------------------------------
需要注意的是:
  1、ALTER TABLE 通过建立原初表的一个临时副本来工作。更改在副本上执行,然后原初表将被删除,临时表被换名。这样做使所有的修改自动地转向到没有任何更新失败的新表。当 ALTER TABLE 执行时,原初表可被其它客户端读取。更新与写入被延迟到新的表准备好。 
  2、使用 ALTER TABLE,你需要在这个表上有 ALTER、INSERT 和 CREATE 权限。   
  3、你可以在单个的 ALTER TABLE 语句中发出多个 ADD、ALTER、DROP 和 CHANGE 子句。这是 MySQL 对 ANSI SQL92 的扩展,ANSI SQL92 只允许在每个 ALTER TABLE 语句中一个子句。 
  4、上面句法中的[列]是可选项,可以删除

下面举例子来说明上面六种句法的使用方法 :

1、ADD [列] 列定义 [FIRST | AFTER 列名]  为表增加一个新列
如:>>> alter table tb1 add user_name varchar(10) [first|after 列名]   
上面语句中[]中间的内容为可选,first|after的意思是两者中可以选一个,作用是为新创建的列制定位置。如果不指定,则新创建的列在最后面。比如,我要把新创建的user_name列放在原来的id列之后,可以这么写:
>>> alter table tb1 add user_name varchar(10) after id

2、ADD [列] (列定义1,列定义2.........)   为表增加多个新列
如:>>> alter table tb1 add (user_name varchar(10),user_sex varchar(2))
这样,就同时增加了两个新列user_name,user_sex在表的末端。
注意,增加多个列时不能再使用after|first参数。13864964813

3、CHANGE [列] 列定义 [FIRST | AFTER column_name]  修改列的名称和定义
如:>>> alter table tb1 change user_name username varchar(20)
这个语句将user_name 改名为username并将字段长度重定义为20

4、 MODIFY [列] 列定义 [FIRST | AFTER column_name]  修改列的定义
如:>>>alter table tb1 modify username varchar(200)
这个语句把username列的长度修改为200字节

5、DROP [COLUMN] 列名  从表中删除一列
如:>>> alter table tb1 drop username

6、RENAME [TO] 新表名   修改表名称
如:>>> alter table tb1 rename tb2
这个语句把tb1改名为tb2

以上简要列举了6种常用的alter语句句法。刚才站长说了,还有12种句法没有介绍。感兴趣的朋友可以自己查阅有关资料。

希望这篇文章对您有所帮助。
 
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.006sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版