纵有疾风起
人生不言弃

mysql怎么修改表

修改表(ALTER TABLE)

修改表是指修改表的结构,在实际应用中,当发现某个表的结构不满足要求时,可以用ALTER TABLE语句来修改表的结构,包括添加新的字段、删除原有的字段、修改列的类型、属性及索引,甚至可以修改表的名称等。修改表的语法如下所示:

ALTER TABLE 表名 ACTION;#修改表的语法格式

其中ACTION是ALTER TABLE的从句,包括为指定的表添加一新列、为表添加一个索引、更改指定默认值、更改列类型、删除一列、删除索引、更改表名等语句。下面将简单介绍几种常用的方式。

为指定的数据表添加一新字段,可以在ACTION从句中使用ADD关键字实现,语法格式如下所示:

ALTER TABLE 表名 ADD 字段名 <建表语句> [FIRST|AFTER 列名]                           #为指定的表添加新列

如果没有指定可选的FIRST或AFTER,则在列尾添加一列,否则在指定列添加新列。例如,为上面创建的用户表users列尾添加一个E-mail字段,则在MySQL控制台中输入的命令如下所示:

mysql>ALTER TABLE users ADD email VARCHAR(30) NOT NULL;

如果需要为用户表users,在第一列前面添加一个真实姓名(name)的新列,列类型为字符串,属性设置为非空。并在原有的字段userpass之后添加一个身高(height)的新列,列类型为DOUBLE,属性为非空并设置默认值为0.00,。则在MySQL控制台中输入的命令如下所示:

  1. mysql>ALTER TABLE users ADD name VARCHAR(30) NOT NULL FIRST;//开源代码phpfensi.com 
  2. mysql>ALTER TABLE users ADD height DOUBLE NOT NULL DEFAULT ’0.00′ AFTER userpass; 

为指定的数据表为了更改原有字段的类型,可以使用CHANGE或MODIFY子句,如果原列的名字和新列的名字相同,则change和Modify的作用相同,语法格式如下所示:

ALTER TABLE 表名 CHANGE(MODIFY) 列表 <建表语句>  #为指定的表修改列类型

如果需要修改用户表users中的电话号码字段telNo,将列类型VARCHAR(20)改为数值类型INT,并将默认值设置为0.则可以在MySQL控制台中共输入的命令如下所示:

mysql>ALTER TABLE users MODIFY telno INT UNSIGHED DEFAULT ’0′;

mysql>ALTER TEBLE users CHANGE telno telno INT UNSIGNED DEFAULT ’0′;

在CHANGE命令中的列名telno出现了两次,原因是CHANGE除了更改类型外还能更改列名,在MODIFY不能实现这个功能。如果希望在更改类型的同时重新将telno命名为phone,可按如下命令进行操作。

mysql>ALTER TABLE users CHANGE telno phone INT UNSIGNED DEFAULT ’0′;

使用CHANGE更改了列的定义,并说明了一个包括列名的完整定义,即使不更改列名,也需要在定义中包括相应的列名。

如果需要为指定的数据表重新命名,可使用RENAME AS 子句,给出旧表名和新表名即可,语法格式如下所示:phpfensi.com

ALTER TABLE 旧表名 RENAME AS 新表名  #为指定的数据表重新命名

未经允许不得转载:起风网 » mysql怎么修改表
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录