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

  开始本章教程前让我们先创建一张表,表名为:testalter_tbl。

  root@host# mysql -u root -p password;

  Enter password:*******

  mysql> use CODERCTO;

  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 与 MODIFY 子句,所以如果你想重置数据表字段的位置就需要先使用 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;

  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;

  ALTER 命令还可以用来创建及删除MySQL数据表的索引,该功能我们会在接下来的章节中介绍。

  点击查看所有 MySQL 教程 文章: https://www.codercto.com/courses/l/30.html(编辑:雷林鹏 来源:网络 侵删)

转载于:https://www.cnblogs.com/pengpeng1208/p/11022813.html

雷林鹏分享:MySQL ALTER命令相关推荐

  1. mysql源码添加一个命令,MySQL ALTER命令

    MySQL ALTER命令 当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 开始本章教程前让我们先创建一张表,表名为:testalter_tbl. root@ho ...

  2. MySQL ALTER命令

    当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 开始本章教程前让我们先创建一张表,表名为:testalter_tbl. root@host# mysql -u r ...

  3. 第25章 MySQL ALTER命令教程

    当咱们需要修改数据表名或者修改数据表字段时,就需要使用到第25章 MySQL ALTER命令教程. 开始本章教程前让咱们先创建一张表,表名为:testalter_tbl. root@host# mys ...

  4. 雷林鹏分享:MySQL 及 SQL 注入

    MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入 ...

  5. mysql 分享_雷林鹏分享:MySQL 连接

    使用mysql二进制方式连接 您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库. 实例 以下是从命令行中连接mysql服务器的简单实例: [root@host]# my ...

  6. 雷林鹏分享:MySQL DELETE 语句

    你可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录. 你可以在 mysql> 命令提示符或 PHP 脚本中执行该命令. 语法 以下是 SQL DELETE 语 ...

  7. 雷林鹏分享:MySQL 序列使用

    MySQL 序列使用 MySQL序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. 本章我们将介绍如 ...

  8. php mysql 插入多条数据_雷林鹏分享:PHP MySQL 插入多条数据

    使用 MySQLi 和 PDO 向 MySQL 插入多条数据 mysqli_multi_query() 函数可用来执行多条SQL语句. 以下实例向 "MyGuests" 表添加了三 ...

  9. 雷林鹏分享:PHP MySQL 创建数据库

    数据库存有一个或多个表. 你需要 CREATE 权限来创建或删除 MySQL 数据库. 使用 MySQLi 和 PDO 创建 MySQL 数据库 CREATE DATABASE 语句用于在 MySQL ...

最新文章

  1. 陶哲轩实分析 定理 13.3.5 :紧致度量空间上的连续函数一致连续
  2. 独家 | 决策树VS随机森林——应该使用哪种算法?(附代码链接)
  3. solr索引服务器的配置和solrj集成开发总结
  4. Swiper使用心得
  5. Spring boot登录错误提示
  6. LeetCode40.组合总和|| JavaScript
  7. 网络:NAT使用场景
  8. libsvm回归参数寻优cgp_【lightgbm/xgboost/nn代码整理二】xgboost做二分类,多分类以及回归任务...
  9. ip、url威胁情报库(开源)
  10. win32获取其它进程变量地址存放的信息
  11. 【白皮书分享】车企数据资产及业务价值实现白皮书.pdf(附下载链接)
  12. 【cornerstoneTools】【vue】使用cornerstoneTools搭建标注系统相关代码
  13. 旷视科技提出双向网络BiSeNet:实现实时语义分割
  14. stm32f103 c 语言编程,stm32f103 独立看门狗 - 全文
  15. 【手绘】A old painting ,drawed in middle school ,grade 8
  16. linux进程泄漏如何定位,定位Linux下定位进程被谁KILL
  17. php++l+函数,关于PHP中usort()函数的解读
  18. 现代opengl 设计 assimp 3D 模型加载库
  19. 导入FontForge生成字体
  20. linux 安装软件 垃圾,Ubuntu 18.04 安装垃圾清理工具 BleachBit 2.2

热门文章

  1. 木兰编程语言重现——支持列表操作,演示编辑器高亮
  2. 使用管理扩展性框架构建模块化控制台应用程序
  3. Visual Studio 2019 16.3 Preview 3 发布,使用 IntelliCode 重构更容易
  4. Linus 将 Linux 的软盘驱动 floppy 标记为“孤立”状态
  5. intel cpu 漏洞 linux,Intel CPU架构漏洞越捅越大:打补丁将损失30%性能
  6. 基于数据库数据增量同步_基于 Flink SQL CDC 的实时数据同步方案
  7. c语言合法常量e8,c语言合法常量定义
  8. 计算机内存断点,计算机 | 码农们都需要知道的「中断」相关知识
  9. lisp读点坐标绘多义线_AutoCAD中多义线的坐标标注
  10. php智慧社区,智慧园区综合管理平台智慧社区解决方案