34.笔记 MySQL学习——更改表结构

来源:互联网 发布:阿里java面试题2016 编辑:程序博客网 时间:2024/06/15 12:18

34.笔记 MySQL学习——更改表结构

ALTER TABLE是一条万能型的语句,拥有许多用途。

在使用ALTER TABLE之前,如果需要查看表的当前定义,可以执行SHOW CREATE TABLE语句。

1.  更改列的数据类型

如果要更改某列的数据类型,可以使用CHANGE子句或MODIFY字间距。

例如:

ALTER TABLE mytbl MODIFY i MEDIUMINTUNSIGNED;

ALTER TABLE mytbl CHANGE i i MEDIUMINTUNSIGNED;

CHANGE写两个列名,因为可以把列名重命名。

mysql> show create table mytbl;

+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------+

| Table | Create Table                                                                                                                                               |

+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------+

| mytbl | CREATE TABLE `mytbl` (

  `i` int(11) NOT NULL,

  `j`char(10) NOT NULL,

 PRIMARY KEY (`i`),

 UNIQUE KEY `j` (`j`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

mysql> alter table mytbl change i k mediumintunsigned;

Query OK, 0 rows affected (0.03 sec)

Records: 0 Duplicates: 0  Warnings: 0

mysql> show create table mytbl;

+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| Table | Create Table                                                                                                                                                            |

+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| mytbl | CREATE TABLE `mytbl` (

  `k` mediumint(8) unsigned NOT NULL,

  `j`char(10) NOT NULL,

 PRIMARY KEY (`k`),

 UNIQUE KEY `j` (`j`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

2.  更改表的存储引擎

使用ENGINE子句来指定一个新的存储引擎名字

ALTER TABLE tbl_name ENGINE = InnoDB;

mysql> alter table mytbl ENGINE = InnoDB;

Query OK, 0 rows affected (0.03 sec)

Records: 0 Duplicates: 0  Warnings: 0

3.  重新命名表

使用RENAME子句可以为表指定一个新的名字

语法如下:

ALTER TABLE tbl_name RENAME TOnew_tbl_name;

也可以使用RENAME TABLE语句,语法如下:

RENAME TABLE tbl_name TO new_tbl_name;

使用RENAME可以对多个表进行重新命名。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击