【Mysql】4. ALTER命令

本文详细介绍了MySQL中ALTER命令的使用方法,包括修改表名、字段、字段类型、字段顺序、存储引擎以及设置字段属性如NULL、默认值和自增序列等。通过多个实例展示了ALTER命令的强大功能。

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

ALTER命令

当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令。

查看表字段和定义可以使用如下语法:

mysql> SHOW COLUMNS FROM `tpr_resource_attr`;

显示结果将表字段名,字段长度, 类型, 主键等信息都打印出来。

 

先创建表 

mysqlCREATE TABLE testalter_tbl (i INT, c CHAR(1)) ;

1、删除表testalter_tbl的字段i

mysql> ALTER TABLE testalter_tbl DROP i;

2、添加字段字段i

mysql> ALTER TABLE testalter_tbl ADD i INT;

3、修改字段顺序1

ALTER TABLE testalter_tbl DROP i;

ALTER TABLE testalter_tbl ADD i INT FIRST; # 增加字段i并定位到第一列

ALTER TABLE testalter_tbl DROP i;

ALTER TABLE testalter_tbl ADD i INT AFTER c; # AFTER 字段名(设定位于某个字段之后)

#结果通过show columns可以看出字段定义的列顺序变化。

#FIRST 和 AFTER 关键字只占用于 ADD 子句,所以如果你想重置数据表字段的位置就需要先使用 DROP 删除字段然后使用 ADD 来添加字段并设置位置。

4、修改字段顺序2 -- 在不需要add字段的情况下可以修改字段类型和顺序

mysqlALTER TABLE alter_tbl MODIFY j INT AFTER i; # 将字段j从原来的bigint类型修改为int,顺序置于字段i之后

mysqlALTER TABLE alter_tbl MODIFY j INT FIRST; # 将字段j

5、修改字段定义

mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10); # 字段长度从1改为10

mysqlALTER TABLE testalter_tbl CHANGE i j BIGINT; # 将字段i改成j,并修改字段类型为bigint,长度默认为20

mysql> ALTER TABLE testalter_tbl CHANGE j j INT; # 将字段j的类型改为int,长度默认为11

 

ALTER TABLE 对 Null 值和默认值的影响

当你修改字段时,你可以指定是否包含只或者是否设置默认值。

以下实例,指定字段 j 为 NOT NULL 且默认值为100 。

mysql> ALTER TABLE testalter_tbl MODIFY j BIGINT NOT NULL DEFAULT 100; # 修改字段j为bigint,非空,默认值为100

ps:如果你不设置默认值,MySQL会自动设置该字段默认为 NULL。

mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000; # 可空,默认值为1000

也可以使用 ALTER 命令及 DROP子句来删除字段的默认值

mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT; # 删除字段i的默认值配置

 

修改存储引擎

可以使用 ALTER 命令及 TYPE 子句来完成。尝试以下实例,我们将表 testalter_tbl 的类型修改为 MYISAM :

注意:查看数据表类型可以使用 SHOW TABLE STATUS 语句。

默认的表存储引擎是Innodb,可以使用alter命令修改为myisam

实例:

mysql> ALTER TABLE testalter_tbl ENGINE = MYISAM;

mysql> SHOW TABLE STATUS LIKE 'testalter_tbl';

Name           Engine

-------------    ------

testalter_tbl  MyISAM

 

修改表名

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl; # 将数据表 testalter_tbl 重命名为 alter_tbl,表数据不丢失

 

修改字段为自增序列

ALTER TABLE ratable_event_format_item_nx MODIFY COLUMN event_type_format_seq INT AUTO_INCREMENT;

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值