SQL ALTER TABLE的用法
在表格被建立在资料库中后,我们常常会发现,这个表格的结构需要有所改变。常见的改变如下:
加一个栏位
删去一个栏位
改变栏位名称
改变栏位的资料种类
以上列出的改变并不是所有可能的改变。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
date
第一,我们要加入一个叫做 "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
date
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
date
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
date
Gender
char(1)
最后,我们要删除 "Gender" 栏位。这可以用以下的指令达成:
ALTER table customer drop Gender
这个指令执行后的表格架构是:
customer 表格
栏位名称
资料种类
First_Name
char(50)
Last_Name
char(50)
Addr
char(30)
City
char(50)
相关文档:
接下来,我们讨论 alias (别名) 在 SQL 上的用处。最常用到的别名有两种: 栏位别名及表格别名。
简单地来说,栏位别名的目的是为了让 SQL 产生的结果易读。在之前的例子中, 每当我们有营业额总合时,栏位名都是 SUM(sales)。 虽然在这个情况下没有什么问题,可是如果这个栏位不是一个简单的总合,而是一个复杂的计算, ......
我们可以在一个 SQL 语句中放入另一个 SQL 语句。当我们在 WHERE 子句或 WHERE 子句或 HAVING 子句中插入另一个 SQL 语句时,我们就有一个 subquery 的架构。 Subquery 的作用是什么呢?第一,它可以被用来连接表格。另外,有的时候 subquery 是唯一能够连接两个表格的方式。
Subquery 的语法如下:
SELECT "栏位1"
f ......
MINUS 指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存在于第一个 SQL 语句所产生的结果内,那这笔资料就被抛弃。
MINUS 的语法如下:
[SQ ......
SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的资料库中有不同的名称:
MySQL: TRIM(), RTRIM(), LTRIM()
Oracle: RTRIM(), LTRIM()
SQL Server: RTRIM(), LTRIM()
各种 trim 函数的语法如下:
TRIM([[位置] [要移除的字串] from ] 字串): [位置] ......