笔记-mysql基础2-改变数据表结构

本文详细介绍了在MySQL中如何通过一条ALTERTABLE语句实现字段类型的修改、字符集的调整以及存储引擎的切换。包括了改变字段类型、字符集、存储引擎的方法及注意事项,特别强调了CHANGE子句在重命名数据列时的使用,以及重命名数据表的操作。此外,还指出了不同存储引擎之间的兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、改变字段类型

有些数据库系统只允许ALTER TABLE 语句完成一个改动,但MySQL允许用一条ALTER TABLE 语句完成多个改动,只要用逗号把他们隔开。

改变某个数据列的数据类型,可使用MODIFY或CHANGE:

ALTER TABLE mytbl MODIFY i MEDIUMINT UNSIGNED;
或
ALTER TABLE mytbl CHANGE i i MEDIUMINT UNSIGNED;



CHANGE 子句需要写两遍数据列的名字,因为CHANGE能够(MODIFY 不能)在改变数据类型的同时重新命名一个数据列。如果想在改变其数据类型的同时把数据列i重新命名为

k,只需将第二个i换成k即可。如果你只需要改变数据列名称而不改变类型,只需要写出CHANGE old_name new_name 再写出数据列当前定义即可。

2、改变字符集

ALTER TABLE mytbl MODIFY i CHAR(20) CHARACTER SET utf-8;

3、改变存储引擎

ALTER TABLE tbl_name ENGINE = engine_name;

如果你打算让数据表改用另一种存储引擎时,能否达到你的目的还要取决于新老两种存储引擎的功能是否兼容。例如,以下转化就是不允许的:

  • MEMORY引擎支持BLOB数据列
  • 只有MyISAM支持FULLTEXT或SPATIAL索引
  • 只有InnoDB支持外键
4、重命名数据表
ALTER TABLE tbl_name RENAME TO new_tbl_name;
或
RENAME TABLE old_name TO new_name;

也可以使用RENAME交换两个表名称
RENAME TABLE t1 TO tmp, t2 TO t1, tmp TO t2;













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值