我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL ALTER命令

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL ALTER命令


当我们需要修改数据表名或者修改数据表字段时,就需要使用到 MySQL ALTER 命令。让我们先创建一张表,表名为: testalter_tbl 。


root@host# mysql -u root -p password;
Enter password:*******mysql> use OPENKETANG;
Database changed mysql> create table testalter_tbl    
-> (-> i INT,-> c CHAR(1)-> );
Query OK, 0 rows affected (0.05 sec)
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| i     | int(11) | YES  |     | NULL    |       |
| c     | char(1) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

删除,添加或修改表字段

如下命令使用了 ALTER 命令及 DROP 子句来删除以上创建表的 i 字段:


mysql> ALTER TABLE testalter_tbl
  
DROP i;

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

 

MySQL 中使用 ADD 子句来想数据表中添加列,如下实例在表 testalter_tbl 中添加 i 字段,并定义数据类型 :


mysql> ALTER TABLE testalter_tbl ADD i INT;


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


 mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)


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

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


ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT FIRST;ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT AFTER c;


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

 

修改字段类型及名称

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

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


mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);


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


mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;


<p 如果你现在想把字段 j="" 从 ="" bigint="" 修改为 ="" int , sql 语句如下: <="" p="">


mysql> ALTER TABLE testalter_tbl CHANGE j j INT;


 

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

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

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


mysql> ALTER TABLE testalter_tbl 
-> MODIFY j BIGINT NOT NULL DEFAULT 100;


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

 

修改字段默认值

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


mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | 1000    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)


 

你也可以使用 ALTER 命令及 DROP 子句来删除字段的默认值,如下实例:


mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)Changing a Table Type:


 

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

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


mysql> ALTER TABLE testalter_tbl ENGINE = MYISAM;;mysql>  
SHOW TABLE STATUS LIKE 'testalter_tbl'\G
*************************** 1. row ****************
Name: testalter_tbl 
Type: MyISAM
Row_format: Fixed
Rows: 0
Avg_row_length: 0
Data_length: 0
Max_data_length: 25769803775
Index_length: 1024
Data_free: 0
Auto_increment: NULL    
Create_time: 2007-06-03 08:04:36
Update_time: 2007-06-03 08:04:36
Check_time: NULL Create_options:
Comment:1 row in set (0.00 sec)


 

修改表名

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

尝试以下实例将数据表 testalter_tbl 重命名为 alter_tbl :


mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;


 

更多 MySQL 课程:https://edu.aliyun.com/course/153/lesson/list?utm_content=g_1000056652


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL ALTER命令

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SQL 中 ALTER 和 UPDATE 命令的区别

在这篇文章中,我们将了解 ALTER 命令和 UPDATE 之间的区别command in SQL.ALTER命令此命令是数据定义语言(DDL)。它在结构级别上执行操作,而不是数据级别。此命令用于在数据库中添加、删除和修改表的属性。此命令
2023-10-22

我们如何使用 MySQL ALTER TABLE 命令在列上添加注释?

我们可以在修改列时将“COMMENT”关键字与 ALTER TABLE 命令一起使用,以在列上添加注释。例如,如果我们想在表“testing”的“id”列中添加注释,则以下查询将执行此操作 -mysql> ALTER TABLE testi
2023-10-22

MySQL命令

1.mysql登陆完整登陆命令:mysql -u root -p xxxxx -h 127.0.0.1 -P 23306语法:mysql -u 用户名 -p 密码 -h mysql服务器的IP地址 -P 使用的端口号 非完整登陆命令:mysql -u root
MySQL命令
2017-06-06

mysql 运维命令

数据库备份导入 mysqldump -u root -p main_3_2_0 > /main_3_2_0.sqluse main_3_2_0source /main_3_2_0.sql   #查询正在执行的sql show full processlis
mysql 运维命令
2017-01-20

MySql最全命令!!!

1.安装mysql服务端 1.1MySql服务端软件安装 在Ubuntu中打开终端,输入下面的命令: sudo apt-get install mysql-server 查看MySQL服务状态: sudo service mysql sta
MySql最全命令!!!
2023-12-23

mysql常用命令

数据库的基本操作通过mysql客户端进入mysql后,实际位于所有仓库之外:* 选中要操作的数据库实例* 操作数据库实例中的表或其他实体.注意: ";"表示一条SQL命令的结束,当命令结束后才会执行此命令* 登陆数据库mysql[-h主机名或者ip] -u账号
2021-06-16

编程热搜

目录