1. 需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令。
  2. root@host# mysql -u root -p password;
  3. Enter password:*******
  4. mysql> use RUNOOB;
  5. Database changed
  6. mysql> create table testalter_tbl
  7. -> (
  8. -> i INT,
  9. -> c CHAR(1)
  10. -> );
  11. Query OK, 0 rows affected (0.05 sec)
  12. mysql> SHOW COLUMNS FROM testalter_tbl;
  13. +-------+---------+------+-----+---------+-------+
  14. | Field | Type | Null | Key | Default | Extra |
  15. +-------+---------+------+-----+---------+-------+
  16. | i | int(11) | YES | | NULL | |
  17. | c | char(1) | YES | | NULL | |
  18. +-------+---------+------+-----+---------+-------+
  1. 删除,添加或修改表字段
  2. 如下命令使用了 ALTER 命令及 DROP 子句来删除以上创建表的 i 字段:
  3. mysql> ALTER TABLE testalter_tbl DROP i;
  4. 如果数据表中只剩余一个字段则无法使用DROP来删除字段。
  5.  
  6. MySQL 中使用 ADD 子句来向数据表中添加列,如下实例在表 testalter_tbl 中添加 i 字段,并定义数据类型:
  7. mysql> ALTER TABLE testalter_tbl ADD i INT;
  8. 执行以上命令后,i 字段会自动添加到数据表字段的末尾。
  9. mysql> SHOW COLUMNS FROM testalter_tbl;
  10. +-------+---------+------+-----+---------+-------+
  11. | Field | Type | Null | Key | Default | Extra |
  12. +-------+---------+------+-----+---------+-------+
  13. | c | char(1) | YES | | NULL | |
  14. | i | int(11) | YES | | NULL | |
  15. +-------+---------+------+-----+---------+-------+
  1. 如果需要指定新增字段的位置,可以使用MySQL提供的关键字 FIRST (设定位第一列), AFTER 字段名(设定位于某个字段之后)。
  2. 尝试以下 ALTER TABLE 语句, 在执行成功后,使用 SHOW COLUMNS 查看表结构的变化:
  3. ALTER TABLE testalter_tbl DROP i;
  4. ALTER TABLE testalter_tbl ADD i INT FIRST;
  5. ALTER TABLE testalter_tbl DROP i;
  6. ALTER TABLE testalter_tbl ADD i INT AFTER c;
  7.  
  8. FIRST AFTER 关键字可用于 ADD MODIFY 子句,所以如果想重置数据表字段的位置就需要先使用 DROP 删除字段然后使用 ADD 来添加字段并设置位置。
  1. 修改字段类型及名称
  2. 如果需要修改字段类型及名称, 可以在ALTER命令中使用 MODIFY CHANGE 子句
  3. 例如,把字段 c 的类型从 CHAR(1) 改为 CHAR(10),可以执行以下命令:
  4. mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
  5.  
  6. 使用 CHANGE 子句, 语法有很大的不同。 CHANGE 关键字之后,紧跟着的是要修改的字段名,然后指定新字段名及类型。尝试如下实例:
  7. mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
  8. mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
  1. ALTER TABLE Null 值和默认值的影响
  2. 当修改字段时,你可以指定是否包含值或者是否设置默认值。
  3. 以下实例,指定字段 j NOT NULL 且默认值为100
  4. mysql> ALTER TABLE testalter_tbl
  5. -> MODIFY j BIGINT NOT NULL DEFAULT 100;
  6. 如果你不设置默认值,MySQL会自动设置该字段默认为 NULL
  1. 修改字段默认值
  2. 可以使用 ALTER 来修改字段的默认值,尝试以下实例:
  3. mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
  4. mysql> SHOW COLUMNS FROM testalter_tbl;
  5. +-------+---------+------+-----+---------+-------+
  6. | Field | Type | Null | Key | Default | Extra |
  7. +-------+---------+------+-----+---------+-------+
  8. | c | char(1) | YES | | NULL | |
  9. | i | int(11) | YES | | 1000 | |
  10. +-------+---------+------+-----+---------+-------+
  1. 也可以使用 ALTER 命令及 DROP子句来删除字段的默认值,如下实例:
  2. mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
  3. mysql> SHOW COLUMNS FROM testalter_tbl;
  4. +-------+---------+------+-----+---------+-------+
  5. | Field | Type | Null | Key | Default | Extra |
  6. +-------+---------+------+-----+---------+-------+
  7. | c | char(1) | YES | | NULL | |
  8. | i | int(11) | YES | | NULL | |
  9. +-------+---------+------+-----+---------+-------+
  1. 修改数据表类型,可以使用 ALTER 命令及 TYPE 子句来完成。尝试以下实例,将表 testalter_tbl 的类型修改为 MYISAM
  2. 注意:查看数据表类型可以使用 SHOW TABLE STATUS 语句。
  3. mysql> ALTER TABLE testalter_tbl ENGINE = MYISAM;
  4. mysql> SHOW TABLE STATUS LIKE 'testalter_tbl'\G
  5. *************************** 1. row ****************
  6. Name: testalter_tbl
  7. Type: MyISAM
  8. Row_format: Fixed
  9. Rows: 0
  10. Avg_row_length: 0
  11. Data_length: 0
  12. Max_data_length: 25769803775
  13. Index_length: 1024
  14. Data_free: 0
  15. Auto_increment: NULL
  16. Create_time: 2007-06-03 08:04:36
  17. Update_time: 2007-06-03 08:04:36
  18. Check_time: NULL
  19. Create_options:
  20. Comment:
  1. 修改表名
  2. 如果需要修改数据表的名称,可以在 ALTER TABLE 语句中使用 RENAME 子句来实现。
  3. 尝试以下实例将数据表 testalter_tbl 重命名为 alter_tbl
  4. mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
  5. ALTER 命令还可以用来创建及删除MySQL数据表的索引

吴裕雄--天生自然MySQL学习笔记:MySQL ALTER命令的更多相关文章

  1. 吴裕雄--天生自然python学习笔记:Python MySQL - mysql-connector 驱动

    本章节我们为大家介绍使用 mysql-connector 来连接使用 MySQL, mysql-connector 是 MySQL 官方提供的驱动器. 我们可以使用 pip 命令来安装 mysql-c ...

  2. 吴裕雄--天生自然HADOOP学习笔记:hadoop集群实现PageRank算法实验报告

    实验课程名称:大数据处理技术 实验项目名称:hadoop集群实现PageRank算法 实验类型:综合性 实验日期:2018年 6 月4日-6月14日 学生姓名 吴裕雄 学号 15210120331 班 ...

  3. 吴裕雄--天生自然python学习笔记:Python3 MySQL 数据库连接 - PyMySQL 驱动

    什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. PyMySQL 遵循 Python 数据库 AP ...

  4. 吴裕雄--天生自然HADOOP学习笔记:使用yum安装更新软件

    实验目的 了解yum的原理及配置 学习软件的更新与安装 学习源代码编译安装 实验原理 1.编译安装 前面我们讲到了安装软件的方式,因为linux是开放源码的,我们可以直接获得源码,自己编译安装.例如: ...

  5. 吴裕雄--天生自然 oracle学习笔记:oracle理论学习详解及各种简单操作例子

    1. 数据库的发展过程 层次模型 -->网状模型 -->关系模型 -->对象关系模型 2. 关于数据库的概念 DB:数据库(存储信息的仓库) DBMS:数据库管理系统(用于管理数据库 ...

  6. 吴裕雄--天生自然HADOOP学习笔记:基本环境配置

    实验目的 学习安装Java 学习配置环境变量 学习设置免密码登陆的方法 掌握Linux环境下时间同步的配置 实验原理 1.Java的安装 java是大数据的黄金语言,这和java跨平台的特性是密不可分 ...

  7. 吴裕雄--天生自然HADOOP学习笔记:Shell工具使用

    实验目的 学习使用xshell工具连接Linux服务器 在连上的服务器中进入用户目录 熟悉简单的文件操作命令 实验原理 熟悉shell命令是熟悉使用linux环境进行开发的第一步,我们在linux的交 ...

  8. 吴裕雄--天生自然python学习笔记:python 用pyInstaller模块打包文件

    要想在没有安装 Python 集成环境的电脑上运行开发的 Python 程序,必须把 Python 文件打包成 .exe 格式的可执行 文件. Python 的打包工作 PyInstaller 提供了 ...

  9. 吴裕雄--天生自然python学习笔记:python 用pygame模块动画一让图片动起来

    动画是游戏开发中不可或缺的要素,游戏中的角色只有动起来才会拥有“生命”, 但动画处理也是最让游戏开发者头痛的部分.Pygame 包通过不断重新绘制绘图窗口,短短几行代码就可以让图片动起来! 动画处理程 ...

  10. 吴裕雄--天生自然python学习笔记:python 文件批量查找

    在多个文本文件中查找 我们首先来学习文本文件的查找字符 . 我们通过 os.walk 扩大查找范围, 查找指定目录和子目录下的文件. 应用程序总览 读取 当 前目录及子目录下的所有 PY 和 txt ...

随机推荐

  1. 使用delphi TThread类创建线程备忘录

    备忘,不常用经常忘了细节 TMyThread = class(TThread) private { Private declarations } protected procedure Execute ...

  2. Netty 模型

    Demo代码 使用Maven的话请在pom.xml中注入netty依赖 <!-- https://mvnrepository.com/artifact/io.netty/netty-all -- ...

  3. 剑指offer自学系列(二)

    题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内,数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次,请找出数组中任一个重复的数字,例如,如果输入长度为7的 ...

  4. (转)让一个进程启动时Windbg自动Attach上去

    如何让一个进程启动时Windbg自动Attach上去 以IE为例:需要在注册表中创建一项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current ...

  5. Arduino nano的bootloader文件烧录

    1.买了了nano还没用就用 avrisp烧录器给烧了其他程序,仅仅是的avr单片机了:2.将他恢复成Arduino nano吧. 在Arduino软件安装目录中的hardware\arduino中. ...

  6. bzoj 4008、4011、1499

    全是扒题解,,,太弱了... 不乱BB了. 4008 #include <bits/stdc++.h> #define LL long long #define lowbit(x) x&a ...

  7. 070-PHP数组相加

    <?php $arr1=array('a','b','c'); //定义一个数组 echo '数组$arr1的信息:<br />'; print_r($arr1); //输出数组信息 ...

  8. Windows + Python + flup + flask + fastcgi + Nginx配置

    Nginx配置 # HTTPS server { listen ssl; server_name kvaccount.xx.io; ssl_certificate "C:/xx/conf/s ...

  9. PHP笔记02

    PHP数组 能够在一个变量存储多个值 取值用下标,下标从0开始计算 好处:在处理物品清单等大量相同属性的变量内容时可以集中存取 <?php $arr=array("like" ...

  10. yum 安装 Mysql error ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 开启远程连接 修改登入密码 忘记root密码 配置防火墙规则 随手mark

    yum 安装 MYsql:        yum install mysql mysql-server mysql-devel -y 1.1 登入报错: ERROR 1045 (28000): Acc ...