ALTER命令

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: ALTER命令

说明:


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


1、建表

DROP TABLE IF EXISTS `text_ALTER`;

CREATE TABLE `text_ALTER` (

 `id` int ,

   `price`INT

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


2、演示

2.1、删除表字段

使用 ALTER 命令及 DROP 子句来删除以上创建表好的 price 字段

ALTER TABLE text_alter DROP price;

2.2、添加表字段

如果数据表中只剩余一个字段则无法使用DROP来删除字段。

MySQL 中使用 ADD 子句来向数据表中添加列,如下实例在表 text_alter 中添加 price 字段,并定义数据类型

ALTER TABLE text_alter ADD price INT;

执行以上命令后,price  字段会自动添加到数据表字段的末尾。


如果你需要指定新增字段的位置,可以使用MySQL提供的关键字 FIRST (设定位第一列), AFTER 字段名(设定位于某个字段之后)。

尝试以下 ALTER TABLE 语句, 在执行成功后,使用 SHOW COLUMNS 查看表结构的变化

ALTER TABLE text_alter DROP price;

ALTER TABLE text_alter ADD price INT FIRST;

ALTER TABLE text_alter DROP price;

ALTER TABLE text_alter ADD price INT AFTER id;

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


2.3、修改表字段

如果需要修改字段类型及名称, 你可以在ALTER命令中使用 MODIFY 或 CHANGE 子句 。

例如,把字段 price 的类型从  INT 改为 CHAR(10),可以执行以下命令

ALTER TABLE text_alter MODIFY price CHAR(10);

2.4、修改字段类型及名称

使用 CHANGE 子句, 语法有很大的不同。 在 CHANGE 关键字之后,紧跟着的是你要修改的字段名,然后指定新字段名及类型。尝试如下实例

ALTER TABLE text_alter CHANGE id  ids INT;

ALTER TABLE text_alter CHANGE price prices INT;

显示 text_alter  表所有列

mysql>  SHOW COLUMNS FROM text_ALTER; #显示所有列

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

| Field  | Type | Null | Key | Default | Extra |

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

| ids    | int  | YES  |     | NULL    |       |

| prices | int  | YES  |     | NULL    |       |

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

2 rows in set (0.00 sec)

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

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

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

ALTER TABLE text_alter  MODIFY prices INT NOT NULL DEFAULT 100;

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


修改字段默认值


你可以使用 ALTER 来修改字段的默认值,实例如下

ALTER TABLE text_alter ALTER prices SET DEFAULT 1000;

查看列

SHOW COLUMNS FROM text_alter;



删除字段默认值


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

ALTER TABLE text_alter ALTER prices DROP DEFAULT;



修改数据表类型


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


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


ALTER TABLE text_alter ENGINE = MYISAM;

SHOW TABLE STATUS LIKE 'text_alter'\G



修改表名


如果需要修改数据表的名称,可以在 ALTER TABLE 语句中使用 RENAME 子句来实现。

尝试以下实例将数据表 text_alter 重命名为 text_alter_update

ALTER TABLE text_alter RENAME TO text_alter_update;

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
SQL 存储 数据库
DROP、TRUNCATE 和 DELETE 命令的区别
【8月更文挑战第3天】
185 4
DROP、TRUNCATE 和 DELETE 命令的区别
|
3月前
|
关系型数据库 数据库 PostgreSQL
在 Postgres 中使用 Alter Table
【8月更文挑战第11天】
65 0
在 Postgres 中使用 Alter Table
|
3月前
|
SQL 数据管理 数据库
DROP 和 TRUNCATE 命令的详细区别
【8月更文挑战第31天】
176 0
|
4月前
|
存储 数据库
DROP DATABASE 语句
【7月更文挑战第20天】DROP DATABASE 语句。
55 3
|
4月前
|
SQL Oracle 关系型数据库
ALTER TABLE
【7月更文挑战第19天】ALTER TABLE 。
56 5
ALTER TABLE
本文主要介绍如何对表相关的Sequence类型进行修改。
|
SQL 关系型数据库 MySQL
|
SQL 关系型数据库 MySQL