他の表から表への行の挿入
ある表から別の表に 1 つ以上の行をコピーすることができます。
プロシージャー
あるテーブルから行を選択して別のテーブルに挿入するには、
INSERT ステートメントで全選択を使用します。
例
- 例
- 以下の SQL ステートメントによって、TELE という名前の表が作成されます。
次のステートメントは、 DSN8C10. EMP から新しく作成されたテーブルにデータをコピーします。CREATE TABLE TELE (NAME2 VARCHAR(15) NOT NULL, NAME1 VARCHAR(12) NOT NULL, PHONE CHAR(4));INSERT INTO TELE SELECT LASTNAME, FIRSTNME, PHONENO FROM DSN8C10.EMP WHERE WORKDEPT = 'D21';前の 2 つのステートメントは、下表に類似した TELE という表を作成して、 データを入れます。NAME2 NAME1 PHONE =============== ============ ===== PULASKI EVA 7831 JEFFERSON JAMES 2094 MARINO SALVATORE 3780 SMITH DANIEL 0961 JOHNSON SYBIL 8953 PEREZ MARIA 9001 MONTEVERDE ROBERT 3780上記の CREATE TABLE ステートメントの例では、まず、空の表を作成します。 表には 、姓、名、および電話番号の列がありますが、まだ行はありません。
INSERT ステートメントは、新しく作成されたテーブルに、 DSN8C10. EMP テーブルから選択されたデータ (部門 D21 の従業員の名前と電話番号) を入力します。
- 例
- 以下の CREATE ステートメントは、従業員の部門名と電話番号を含む表を作成します。 INSERT ステートメント内の全選択により、既存の 2 つの表 DSN8C10. DEPT と DSN8C10. EMP から選択された行のデータが DLIST 表に入力されます。
CREATE TABLE DLIST (DEPT CHAR(3) NOT NULL, DNAME VARCHAR(36) , LNAME VARCHAR(15) NOT NULL, FNAME VARCHAR(12) NOT NULL, INIT CHAR , PHONE CHAR(4) );INSERT INTO DLIST SELECT DEPTNO, DEPTNAME, LASTNAME, FIRSTNME, MIDINIT, PHONENO FROM DSN8C10.DEPT, DSN8C10.EMP WHERE DEPTNO = WORKDEPT;