sql语法

上一篇 / 下一篇  2010-07-19 13:55:49 / 个人分类:sql知识

改变表结构

ALTER TABLE "table_name"
[改变方式]

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

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

首先,向表customer中要加入一个叫做 "gender" 的栏位。这可以用以下的指令达成:

ALTER table customer add Gender char(1)

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

ALTER table customer change Address Addr char(50)

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

ALTER table customer modify Addr char(30)

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

ALTER table customer drop Gender

主键(Primry Key)

以下举几个在建置新表格时设定主键的方式:

MySQL:
CREATE TABLE Customer
(SID integer,
Last_Name varchar(30),
First_Name varchar(30),
PRIMARY KEY (SID));

Oracle:
CREATE TABLE Customer
(SID integer PRIMARY KEY,
Last_Name varchar(30),
First_Name varchar(30));

SQL Server:
CREATE TABLE Customer
(SID integer PRIMARY KEY,
Last_Name varchar(30),
First_Name varchar(30));

以下则是以改变现有表格架构来设定主键的方式:

MySQL、Oracle、SQL Server:

ALTER TABLE Customer ADD PRIMARY KEY (SID);

请注意,在用ALTER TABLE语句来添加主键之前,我们需要确认被用来当做主键的栏位是设定为 『NOT NULL』 ;也就是说,那个栏位一定不能没有资料

外来键外来键

以下列出几个在建置 ORDERS 表格时指定外来键的方式:

MySQL:
CREATE TABLE ORDERS
(Order_ID integer,
Order_Date date,
Customer_SID integer,
Amount double,
Primary Key (Order_ID),
Foreign Key (Customer_SID) references CUSTOMER(SID));

Oracle:
CREATE TABLE ORDERS
(Order_ID integer primary key,
Order_Date date,
Customer_SID integer references CUSTOMER(SID),
Amount double);

SQL Server:
CREATE TABLE ORDERS
(Order_ID integer primary key,
Order_Date datetime,
Customer_SID integer references CUSTOMER(SID),
Amount double);

以下的例子则是藉着改变表格架构来指定外来键。这里假设 ORDERS 表格已经被建置,而外来键尚未被指定:

MySQL:
ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);

Oracle:
ALTER TABLE ORDERS
ADD (CONSTRAINT fk_orders1) FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);

SQL Server:
ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);

TRUNCATE TABLE的指令。在这个指令之下,表格中的资料会完全消失,可是表格本身会继续存在。TRUNCATE TABLE的语法为下:

TRUNCATE TABLE "表格名"

更新指令

UPDATE "表格名"
SET "栏位1" = [值1], "栏位2" = [值2]
WHERE {条件}


 


TAG: sql语法

 

评分:0

我来说两句

Open Toolbar