MySQL-修改列定义和更名数据表

本文详细介绍了如何使用SQL语句修改表结构,包括修改列定义、调整列位置、更改列名及表名的方法。特别强调了修改数据类型时可能遇到的数据丢失风险。

修改列定义

ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definftion [FIRST | AFTER col_name]

修改位置

在这里插入图片描述
把id放在第一的位置

ALTER TABLE users2 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST;

在这里插入图片描述
在这里插入图片描述

那么修改数据类型呢
将SMALLINT 修改为 TINYINT

ALTER TABLE users2 MODIFY id TINYINT UNSIGNED NOT NULL;

在这里插入图片描述
在这里插入图片描述
但是这里要注意,tinyint无符号位范围在0-255(0-2^8 -1)之间,而smallint无符号位范围在0-65535(0-2^16 -1)之间,这里修改成tinyint可能会因为范围的缩小造成数据的丢失

修改列名称

ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name]
使用change命令既可以修改列定义也可以修改列名称,功能远远强于刚才的MYDIFY
例如:现在我们准备将pid字段进行修改,并且名称也进行修改,类型改为tinyint名字改为p_id:

ALTER TABLE	 users2 CHANGE pid p_id TINYINT UNSIGNED NOT NULL;

在这里插入图片描述

数据表更名

1、ALTER TABLE tbl_name RENAME [TO|AS] new_tal_name
2、RENAME TABLE tbl_name TO new_tbl_name[,tbl_name2 TO new_tbl_name2] …

ALTER TABLE users2 RENAME users3;

在这里插入图片描述
在这里插入图片描述

RENAME TABLE users3 TO users2;

在这里插入图片描述
在这里插入图片描述

这里提醒修改列名或者表名可能导致一些关联的数据失效,建议不要随意的修改列与表的名字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值