在表格被建立在资料库中后,我们常常会发现,这个表格的结构需要有所改变。常见的改变如下:

  • 加一个栏位
  • 删去一个栏位
  • 改变栏位名称
  • 改变栏位的资料种类

以上列出的改变并不是所有可能的改变。ALTER TABLE 也可以被用来作其他的改变,例如改变主键定义。

ALTER TABLE 的语法如下:

ALTER TABLE "table_name"
[改变方式];

[改变方式] 的详细写法会依我们想要达到的目标而有所不同。再以上列出的改变中,[改变方式] 如下:

  • 加一个栏位: ADD "栏位 1" "栏位 1 资料种类"
  • 删去一个栏位: DROP "栏位 1"
  • 改变栏位名称: CHANGE "原本栏位名" "新栏位名" "新栏位名资料种类"
  • 改变栏位的资料种类: MODIFY "栏位 1" "新资料种类"

以下我们用在 CREATE TABLE 一页建出的 Customer 表格来当作例子:

Customer 表格

栏位名称 资料种类
First_Name char(50)
Last_Name char(50)
Address char(50)
City char(50)
Country char(25)
Birth_Date datetime

第一,我们要加入一个叫做 "Gender" 的栏位。这可以用以下的指令达成:

ALTER TABLE Customer ADD Gender char(1);

这个指令执行后的表格架构是:

Customer 表格

栏位名称 资料种类
First_Name char(50)
Last_Name char(50)
Address char(50)
City char(50)
Country char(25)
Birth_Date datetime
Gender char(1)

接下来,我们要把 "Address" 栏位改名为 "Addr"。这可以用以下的指令达成:

ALTER TABLE Customer CHANGE Address Addr char(50);

这个指令执行后的表格架构是:

Customer 表格

栏位名称 资料种类
First_Name char(50)
Last_Name char(50)
Addr char(50)
City char(50)
Country char(25)
Birth_Date datetime
Gender char(1)

再来,我们要将 "Addr" 栏位的资料种类改为 char(30)。这可以用以下的指令达成:

ALTER TABLE Customer MODIFY Addr char(30);

这个指令执行后的表格架构是:

Customer 表格

栏位名称 资料种类
First_Name char(50)
Last_Name char(50)
Addr char(30)
City char(50)
Country char(25)
Birth_Date datetime
Gender char(1)

最后,我们要删除 "Gender" 栏位。这可以用以下的指令达成:

ALTER TABLE Customer DROP Gender;

这个指令执行后的表格架构是:

Customer 表格

栏位名称 资料种类
First_Name char(50)
Last_Name char(50)
Addr char(30)
City char(50)
Country char(25)
Birth_Date datetime

Linux实测如下:

linux之SQL语句简明教程---ALTER TABLE的更多相关文章

  1. linux之SQL语句简明教程---CREATE TABLE

    表格是数据库中储存资料的基本架构.在绝大部份的情况下,数据库厂商不可能知道您需要如何储存您的资料,所以通常您会需要自己在数据库中建立表格.虽然许多数据库工具可以让您在不需用到 SQL 的情况下建立表格 ...

  2. linux之SQL语句简明教程---主键,外来键

    主键 (Primary Key) 中的每一笔资料都是表格中的唯一值.换言之,它是用来独一无二地确认一个表格中的每一行资料.主键可以是原本资料内的一个栏位,或是一个人造栏位 (与原本资料没有关系的栏位) ...

  3. linux之SQL语句简明教程

    本教程参考http://www.1keydata.com/cn/sql/ 目的是让初学者了解linux下Mysql的操作,但是我仍想侧重于SQL语句的讲解 sql语句的学习将按照下图的流程: 当然在这 ...

  4. linux之SQL语句简明教程---INSERT INTO

    到目前为止,我们学到了将如何把资料由表格中取出.但是这些资料是如果进入这些表格的呢? 这就是这一页 (INSERT INTO) 和下一页 (UPDATE) 要讨论的. 基本上,我们有两种作法可以将资料 ...

  5. linux之SQL语句简明教程---CREATE VIEW

    视观表 (View) 可以被当作是虚拟表格.它跟表格的不同是,表格中有实际储存资料,而视观表是建立在表格之上的一个架构,它本身并不实际储存资料. 建立一个视观表的语法如下: CREATE VIEW & ...

  6. linux之SQL语句简明教程---UNION ALL

    UNION ALL 这个指令的目的也是要将两个 SQL 语句的结果合并在一起. UNION ALL 和UNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复 ...

  7. linux之SQL语句简明教程---UNION

    UNION 指令的目的是将两个 SQL 语句的结果合并起来.从这个角度来看, UNION 跟 JOIN有些许类似,因为这两个指令都可以由多个表格中撷取资料. UNION 的一个限制是两个 SQL 语句 ...

  8. linux之SQL语句简明教程---Subquery

    我们可以在一个 SQL 语句中放入另一个 SQL 语句.当我们在 WHERE 子句或 HAVING 子句中插入另一个 SQL 语句时,我们就有一个 subquery 的架构. Subquery 的作用 ...

  9. linux之SQL语句简明教程---AND OR

    在上一页中,我们看到 WHERE 指令可以被用来由表格中有条件地选取资料. 这个条件可能是简单的 (像上一页的例子),也可能是复杂的.复杂条件是由二或多个简单条件透过 AND 或是 OR的连接而成.一 ...

随机推荐

  1. C# 调用FFmpeg 根据图片合成视频

    1.项目结构: 2.代码: using System; using System.Collections.Generic; using System.Diagnostics; using System ...

  2. 【MVC4 之 ViewData ViewBag TempData】

    ViewData (一个字典集合类型):传入的key必须是string类型,可以保存任意对象信息,特点:它只会存在这次的HTTP的要求中而已,并不像session可以将数据带到下一个Http要求. V ...

  3. POJ 3259 Wormholes( bellmanFord判负环)

    Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 36425   Accepted: 13320 Descr ...

  4. 阿里云主机和RDS使用心得

    本文上非广告,只是将这近1年的使用过程给大家分享一下. 去年下半年,服务器托管到期,加上服务器也使用了5.6年,严重老化,当时正好看到阿里云的宣传广告,就开始了阿里云使用历程.陆续购买了4台云主机,I ...

  5. 【转】通过 ulimit 改善系统性能

    概述 系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段.ulimit 是一 ...

  6. Android.mk文件语法规范及使用模板

    Android.mk文件语法详述 介绍:------------这篇文档是用来描述你的C或C++源文件中Android.mk编译文件的语法的,为了理解她们我们需要您先看完docs/OVERVIEW.h ...

  7. HTTP Digest authentication

    (Digest authentication)是一个简单的认证机制,最初是为HTTP协议开发的,因而也常叫做HTTP摘要,在RFC2671中描写叙述.其身份验证机制非常easy,它採用杂凑式(hash ...

  8. Maven 工程下 Spring MVC 站点配置 (三) C3P0连接池与@Autowired的应用

    Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 前两篇文章主要是对站点和数据库操作配置进行了演示,如果单 ...

  9. Linux shell 的 test 命令用法详解

    基本格式:test expression expression为test命令构造的表达式.这里expression是test命令可以理解的任何有效表达式,该简化格式将是读者可能会踫见的最常用格式返回值 ...

  10. mysql密码忘记如何处理

    1,修改/etc/my.cnf添加添加skip-grant参数,重启mysql. 2,登录mysql  mysql -uroot 3, 更新user中root的密码  use mysql;   upd ...