- SQL應用及誤區分析
- 張振磊
- 525字
- 2019-01-04 16:42:07
3.2 建表新增
SQL Server數據庫與Oracle數據庫中的建表新增語法不同。
SQL Server數據庫中建表新增語法如以下代碼所示。
select * into table_a from table_b;
代碼中各關鍵字的解釋如下。
? select:關鍵字,指定要查詢哪些列。
? into:關鍵字,指定要插入哪個表中。
? table_a:代表要新建的表。
? table_b:代表當前要查詢的表。
Oracle數據庫建表新增語法如以下代碼所示。
create table table_a as select * from table_b;
代碼中各關鍵字的解釋如下。
? create table:關鍵字,標識當前命令是新建表的命令。
? table_a:代表要新建的表。
? as:指定生成查詢結果的語句。
? table_b:代表當前要查詢的表。
建表新增將查詢、建表和新增3個操作合并到了一個命令中,它將查詢的結果集保存到一張新建的表中。在實際的編程中不會這么寫,但是對于數據庫管理員來說,這個操作非常有用,可以幫他快速地實現表結構的復制,也可以幫他很方便地對表中滿足條件的數據進行備份。
接下來,通過一個例子來幫助讀者掌握建表新增的用法。
例3-6:將EMP表中的數據插入名為EMP_BAK的新表中。
SQL Server數據庫中的寫法如圖3-17所示。

圖3-17
Oracle數據庫中的寫法如圖3-18所示。

圖3-18
有一點需要讀者注意,建表新增會創建一張列屬性一樣的新表,也會把查詢結果的記錄插入新表中。但是,查詢表的鍵、約束、索引、觸發器等表的附屬對象是不會自動創建到新表中的。無論是SQL Server數據庫還是Oracle數據庫都是這樣處理的。