検索結果を取り出す(SELECTの結果をINSERTする) | SQL入門講座☆ITのスキルアップで上級SEを目指そう

検索結果を取り出す(SELECTの結果をINSERTする)

データを、SQLで、処理した結果を、

取り出す方法として、検索結果のテーブルを

作成してしまう、方法があります。


まず、結果を格納する、テーブルを作成し、

その、テーブルに結果を、格納する方法です。


このように、すると、結果を、単独で確認することができ、

また、外部への取り出すもしやすくなります。


例えば、CSE(Common SQL Environment)を使って、

CSVで出力したりすることができます。


SQL文は


INSERT INTO 結果格納テーブル(列名,列名,,,)
SELECT 列名,列名,,, FROM 検索側テーブル;


となります。


サンプルは


/* まず、テーブルを削除し */
DROP TABLE IF EXISTS customer;

/* 新規に作り直します。 */
CREATE TABLE customer
(id INT PRIMARY KEY,
customername varchar(40),
mail varchar(30),
phone varchar(20),
fax varchar(20)
);

/* サンプルデータを作ります。 */
INSERT INTO customer VALUES (1,'佐藤','satou@xxx.com','0901111','0900001');
INSERT INTO customer VALUES (2,'山田','yamada@xxx.com','0902222','0900002');
INSERT INTO customer VALUES (3,'加藤','katou@xxx.com','0903333','0900003');
INSERT INTO customer VALUES (4,'山本','yamamoto@xxx.com','0904444','0900004');
INSERT INTO customer VALUES (5,'山口','yamaguchi@xxx.com','0904445','0900005');

/* 結果格納用テーブル */

DROP TABLE IF EXISTS kekka;
/* 新規に作り直します。 */
kekka,CREATE TABLE kekka
(
ans1 varchar(40),
ans2 varchar(40),
ans3 varchar(40)
);


/* 吐き出す内容を確認 */
SELECT mail,phone,fax FROM customer;


/* 結果を吐き出してみます */
INSERT INTO kekka(ans1,ans2,ans3)
SELECT mail,phone,fax FROM customer;


/* 結果を確認 */
SELECT * FROM kekka ;


となります。


このようにすることで、

処理するデータを、データベースに落とし、

そこで、処理を行い、

結果を、テーブルに作成し、

結果を、取り出す。


という処理ができるように、なります。