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

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-28 16:45   114   0

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可以对多个表进行重新命名。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP