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
使用 【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
相关文章推荐
- MySQL修改表结构操作命令总结
- MySQL_1 关系型数据库的存储结构 数据库的添加,修改,删除,查询操作 数据库表的添加,修改,删除,查询操作 数据库表记录的添加,修改,删除,查询
- MySQL数据表的基本操作二:表结构查看、修改与表操作
- 基于Linux的MySQL操作实例(修改表结构,MySQL索引,MySQL数据引擎)
- MYSQL 入门操作学习指南(建库,建表 增删改查 、表结构修改、函数、字符集校对等)
- MySQL修改表结构操作命令总结
- MYSQL 修改表结构基本操作一览
- MySQL修改表结构操作命令总结
- MySQL数据表的基本操作二:表结构修改
- mysql原生在线DDL修改主键操作的最佳实践
- MySql 5.7中新建数据库,添加用户,用户授权,删除用户,修改密码等操作
- oracle中关于表的所有操作(创建删除表,修改表结构,创建约束,操作表数据,增删改查等)
- Mysql 数据库之修改标的结构
- MySQL新建用户,授权,删除用户,修改密码操作
- Mysql-数据库及数据表结构和操作
- mysql在线修改表结构大数据表的风险与解决办法归纳
- mysql修改表结构alter,转自:http://waryist.javaeye.com/blog/104739 waryist的blog
- MySQL修改表结构之(添加新字段或修改表名)
- MySQL中修改表结构时需要注意的一些地方
- mysql 不能插入中文的解决办法,修改mysql的字符集,操作见蓝色字体部分