您的位置:首页 > 数据库 > MySQL

mysql 修改表结构操作

2011-11-27 21:01 411 查看
mysql 修改表结构操作

使用 【desc 表名】查看表结构
1、mysql > alter table passwd add id int(3) not null auto_increment primary key not null first ;
在字段的上面添加一个新的字段。需要关键字 first

mysql> desc passwd ;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | char(30) | NO | MUL | NULL | |
| pass | char(1) | NO | | NULL | |
| uid | int(5) | NO | | NULL | |
| gid | int(5) | NO | | NULL | |
| common | varchar(50) | YES | | NULL | |
| homedir | char(50) | YES | | NULL | |
| shell | char(50) | NO | | NULL | |

mysql> alter table passwd add id int(3) not null auto_increment primary key not null first ;
Query OK, 37 rows affected (0.04 sec)
Records: 37 Duplicates: 0 Warnings: 0
mysql> desc passwd ;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(3) | NO | PRI | NULL | auto_increment |
| username | char(30) | NO | MUL | NULL | |
| pass | char(1) | NO | | NULL | |
| uid | int(5) | NO | | NULL | |
| gid | int(5) | NO | | NULL | |
| common | varchar(50) | YES | | NULL | |
| homedir | char(50) | YES | | NULL | |
| shell | char(50) | NO | | NULL | |

2、在指定的位置添加一个新的字段
在id字段后添加一个新的字段date
mysql> alter table passwd add date year after id ; 需要用到after关键字

mysql> alter table passwd add date year after id ;
Query OK, 37 rows affected (0.01 sec)
Records: 37 Duplicates: 0 Warnings: 0
mysql> desc passwd
-> ;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(3) | NO | PRI | NULL | auto_increment |
| date | year(4) | YES | | NULL | |
| username | char(30) | NO | MUL | NULL | |
| pass | char(1) | NO | | NULL | |
3、默认添加在最后面.
mysql> alter table passwd add QQ int(16) ;

mysql> alter table passwd add QQ int(16) ;
Query OK, 37 rows affected (0.01 sec)
Records: 37 Duplicates: 0 Warnings: 0
mysql> desc passwd ;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(3) | NO | PRI | NULL | auto_increment |
| date | year(4) | YES | | NULL | |
| username | char(30) | NO | MUL | NULL | |
| pass | char(1) | NO | | NULL | |
| uid | int(5) | NO | | NULL | |
| gid | int(5) | NO | | NULL | |
| common | varchar(50) | YES | | NULL | |
| homedir | char(50) | YES | | NULL | |
| shell | char(50) | NO | | NULL | |
| QQ | int(16) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
10 rows in set (0.00 sec)

4、删除表结构
mysql> alter table passwd drop date ;

mysql> desc passwd ;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(3) | NO | PRI | NULL | auto_increment |
| date | year(4) | YES | | NULL | |
| username | char(30) | NO | MUL | NULL | |
| shell | char(50) | NO | | NULL | |
| QQ | int(16) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+

mysql> alter table passwd drop date ;
Query OK, 37 rows affected (0.02 sec)
Records: 37 Duplicates: 0 Warnings: 0
mysql> desc passwd ;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(3) | NO | PRI | NULL | auto_increment |
| username | char(30) | NO | MUL | NULL | |
| shell | char(50) | NO | | NULL | |
| QQ | int(16) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+

5、修改字段类型
mysql> alter table passwd modify QQ int(11) not null ; 修改passwd表的QQ字段。

mysql> desc passwd ;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(3) | NO | PRI | NULL | auto_increment |
| username | char(30) | NO | MUL | NULL | |
| shell | char(50) | NO | | NULL | |
| QQ | int(16) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+

mysql> alter table passwd modify QQ int(11) not null ;
Query OK, 37 rows affected, 37 warnings (0.00 sec)
Records: 37 Duplicates: 0 Warnings: 37
mysql> desc passwd ;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(3) | NO | PRI | NULL | auto_increment |
| username | char(30) | NO | MUL | NULL | |

| QQ | int(11) | NO | | NULL | |
+----------+-------------+------+-----+---------+----------------+

6、修改字段名
mysql> alter table passwd change QQ qq int(11) not null ; 修改QQ字段为qq,用到change关键字。 需要将权限类型写上,也可以更改类型。

mysql> alter table passwd change QQ qq int(11) not null ;
Query OK, 37 rows affected (0.00 sec)
Records: 37 Duplicates: 0 Warnings: 0
mysql> desc passwd ;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(3) | NO | PRI | NULL | auto_increment |
| username | char(30) | NO | MUL | NULL | |
| pass | char(1) | NO | | NULL | |
| uid | int(5) | NO | | NULL | |
| gid | int(5) | NO | | NULL | |
| common | varchar(50) | YES | | NULL | |
| homedir | char(50) | YES | | NULL | |
| shell | char(50) | NO | | NULL | |
| qq | int(11) | NO | | NULL | |
+----------+-------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)
本文出自 “技术交流” 博客,请务必保留此出处http://zhaoyun.blog.51cto.com/2090116/727252
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: