2010-05-13 92 views
1

我已經創建了一個名爲starsin的表格。現在我想通過查詢在我的表starsin中添加一列address。我怎樣才能做到這一點?在表格創建後在表格中添加一列

+1

你應該真的指定你正在使用的服務器,然後你會得到更好的答案。 – 2010-05-13 04:09:33

+0

也許Abid比大多數人都更聰明,並希望與供應商無關的SQL以便不被鎖定到任何一個DBMS中:-) – paxdiablo 2010-05-13 04:12:57

回答

0

如果這是MySQL中,你可以做ALTER TABLE stasin ADD COLUMN <columnname> <type> <options>

1

在標準SQL中,你想要的alter table X add column Y ...命令。

如果您希望爲所有現有行填充列,那麼處理查詢和:update X set Y = ...這個操作很簡單。


下面是一個例子會話它會顯示在行動alter table add column(用於DB2):

> CREATE TABLE XYZ (F1 INTEGER);      
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 

> INSERT INTO XYZ VALUES (1);       
DSNE615I NUMBER OF ROWS AFFECTED IS 1      
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 

> INSERT INTO XYZ VALUES (2);       
DSNE615I NUMBER OF ROWS AFFECTED IS 1      
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 

> SELECT * FROM XYZ;         
F1             
-- 
1             
2             
DSNE610I NUMBER OF ROWS DISPLAYED IS 2      
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 100 

> ALTER TABLE XYZ ADD COLUMN F2 INTEGER;    
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 

> UPDATE XYZ SET F2 = F1 + 7;       
DSNE615I NUMBER OF ROWS AFFECTED IS 2      
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 

> SELECT * FROM XYZ;         
F1 F2         
-- -- 
1 8         
2 9         
DSNE610I NUMBER OF ROWS DISPLAYED IS 2      
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 100 
+0

我是否必須在更改它時刪除表? – Abid 2010-05-13 04:13:11

+0

...除非你想擺脫它 – 2010-05-13 04:15:04

+0

好,馬蒂:-)不,改變不會創建一個新表,它會修改當前表。 – paxdiablo 2010-05-13 04:20:12

0

here

代碼:

ALTER TABLE Sales 
ADD UnitPrice MONEY; 

輸出: 命令(s)成功完成。 說明: 本示例通過指定新的字段名稱和數據類型,將一個字段添加到「Sales」表中。 語言(S):MS SQL服務器

0
ALTER TABLE <table name> ADD(<coloumn name> <datatype>); 

普通SQL查詢添加coloumn。在oracle中,它會起作用。