博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

sql的alter用法

Posted on 2011-10-11 13:18  Honor  阅读(663)  评论(0)    收藏  举报

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);