Oracle INSERT文で複数行を挿入する方法

環境
Oracle Database 11g Release 11.2.0.1.0 – 64bit Production
PL/SQL Release 11.2.0.1.0 – Production

操作方法
1.テーブルを作成します
SQL構文

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CREATE TABLE USER_INFO (
USERID INT PRIMARY KEY,
USERNAME VARCHAR(30),
AGE INT
);
CREATE TABLE USER_INFO ( USERID INT PRIMARY KEY, USERNAME VARCHAR(30), AGE INT );
CREATE TABLE USER_INFO (
    USERID INT PRIMARY KEY,
    USERNAME VARCHAR(30),
    AGE INT
);

USERID ユーザーID
USERNAME ユーザー名
AGE 年齢
操作例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> CREATE TABLE USER_INFO (
2 USERID INT PRIMARY KEY,
3 USERNAME VARCHAR(30),
4 AGE INT
5 );
表が作成されました。
SQL> CREATE TABLE USER_INFO ( 2 USERID INT PRIMARY KEY, 3 USERNAME VARCHAR(30), 4 AGE INT 5 ); 表が作成されました。
SQL> CREATE TABLE USER_INFO (
  2      USERID INT PRIMARY KEY,
  3      USERNAME VARCHAR(30),
  4      AGE INT
  5  );

表が作成されました。

2.複数のデータを挿入(insert)します
SQL構文

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
INSERT ALL
INTO USER_INFO VALUES (11, 'TOKYO',23)
INTO USER_INFO VALUES (12, 'OOSAKA',24)
INTO USER_INFO VALUES (13, 'FUKUOKA',25)
INTO USER_INFO VALUES (14, 'YOKOHAMA',35)
SELECT * FROM DUAL;
INSERT ALL INTO USER_INFO VALUES (11, 'TOKYO',23) INTO USER_INFO VALUES (12, 'OOSAKA',24) INTO USER_INFO VALUES (13, 'FUKUOKA',25) INTO USER_INFO VALUES (14, 'YOKOHAMA',35) SELECT * FROM DUAL;
INSERT ALL 
INTO USER_INFO VALUES (11, 'TOKYO',23)
INTO USER_INFO VALUES (12, 'OOSAKA',24)  
INTO USER_INFO VALUES (13, 'FUKUOKA',25)
INTO USER_INFO VALUES (14, 'YOKOHAMA',35)   
SELECT * FROM DUAL;

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> INSERT ALL
2 INTO USER_INFO VALUES (11, 'TOKYO',23)
3 INTO USER_INFO VALUES (12, 'OOSAKA',24)
4 INTO USER_INFO VALUES (13, 'FUKUOKA',25)
5 INTO USER_INFO VALUES (14, 'YOKOHAMA',35)
6 SELECT * FROM DUAL;
4行が作成されました。
SQL> INSERT ALL 2 INTO USER_INFO VALUES (11, 'TOKYO',23) 3 INTO USER_INFO VALUES (12, 'OOSAKA',24) 4 INTO USER_INFO VALUES (13, 'FUKUOKA',25) 5 INTO USER_INFO VALUES (14, 'YOKOHAMA',35) 6 SELECT * FROM DUAL; 4行が作成されました。
SQL> INSERT ALL
  2  INTO USER_INFO VALUES (11, 'TOKYO',23)
  3  INTO USER_INFO VALUES (12, 'OOSAKA',24)
  4  INTO USER_INFO VALUES (13, 'FUKUOKA',25)
  5  INTO USER_INFO VALUES (14, 'YOKOHAMA',35)
  6  SELECT * FROM DUAL;

4行が作成されました。

4.挿入結果を確認します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> select count(*) from user_info;
COUNT(*)
----------
4
SQL> select count(*) from user_info; COUNT(*) ---------- 4
SQL> select count(*) from user_info;

  COUNT(*)
----------
         4

 

Oracle

Posted by arkgame