DB2sql——通過查詢結果來create table 的3種方式


db2 中通過查詢結果來create table 的3種方式

Q:想通過DB2把查詢出來的結果定義為別的表,因為db2沒有類似(或者說對db2還不熟悉)oracle的create table as select來定義表的方式,所以比較麻煩!

今天抽時間總結了一下DB2定義表的3種方式:

首先創建一個例子表,再插入幾條語句。
create table xxx(col1 varchar(10));

insert into xxx values ('1');
commit;

create table YYY(col1 varchar(10),col2 varchar(20));

insert into YYY values ('1','ZXT');
commit;

describe select xxx.col1,yyy.col2 from xxx,YYY where xxx.col1=yyy.col2;
一:按照常規的形式定義
首先describe sql,得到DDL,可以如下進行(describe select xxx.col1,yyy.col2 from xxx,YYY where xxx.col1=yyy.col2;) 
然后根據DDL來創建table,最后把數據insert 過去。

這是一個比較笨的方法,沒什么好說的!今天總結了其他2中方法,現在分享給大家。

二:匯總表方式
  需要3個步驟:
    1.創建匯總表 
 create table MM as
 (
 select xxx.col1,yyy.col2 from xxx,YYY where xxx.col1=yyy.col2
 )data initially deferred
 refresh deferred;
 2.刷新數據
 refresh table MM;
 3.把匯總表改成一般的表
 alter table MM drop materialized query;
 這個方法比較常用,好使沒啥好說的,而且可以一次性就把數據刷新過去!
 
三:只定義表結構的形式
   需要2個步驟:
   
   1.創建表---只定義表結構
   create table MM as
   (
   select xxx.col1,yyy.col2 from xxx,YYY where xxx.col1=yyy.col2
   )definition only;
   注:此步驟只定義了表結構,類似於oracle 的create XX as 語句
   
   2.插數據過來
   insert into MM select xxx.col1,yyy.col2 from xxx,YYY where xxx.col1=yyy.col2;
   commit;
   

 

原文:http://space.itpub.net/694276/viewspace-193980


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM