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) |
| Country |
char(25) |
| Birth_Date |
date |
添加主键
ALTER TABLE Customer ADD PRIMARY KEY (SID);
请注意,在用ALTER TABLE语句来添加主键之前,我们需要确认被用来当做主键的栏位是设定为 『NOT NULL』 ;也就是说,那个栏位一定不能没有资料。
添加外键
ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);