SQL > テーブル処理 > Insert Into

ここまで、テーブルからどのようにデータを読み込むのか見てきました。しかし、それらのデータが、どのようにテーブルに入力されるのでしょうか。それについて、このページ (INSERT INTO) と次のページ (UPDATE) で説明します。

基本的に、データをテーブルの中に入力する方法が二つあります。一つは一回で一つのデータを入力すします。もう一つは一回で複数のデータを入力します。まず、一回で一つのデータ入力を見ましょう。

今までと同じように、先にプログラミングを述べます。一回で一つのデータを出力するプログラミングは、次のようになります。

INSERT INTO "テーブル名" ("フィールド1", "フィールド2", ...)
VALUES ("值1", "值2", ...);

仮に、次のような構造のテーブルがあるとします。

Store_Information テーブル
フィールド名 資料の種類
store_name char(50)
Sales float
Txn_Date datetime

そして、次のデータ: January 10, 1999、Los Angeles の店に売上 $900 があることを当該テーブルに入れる場合、次のような SQL 文を入力します。

INSERT INTO Store_Information (Store_Name, Sales, Txn_Date)
VALUES ('Los Angeles', 900, 'Jan-10-1999');

二つめの INSERT INTO で、一回で複数のデータ入力ができます。先ほど述べた例と異なり、 SELECT コマンドを使って、入力するテーブルのデータを明示します。それじゃ、データが別のテーブルから来たんですか、というご質問がありましたら、全くその通りです。一回で複数のデータを入力するプログラミングは、次のようになります。

INSERT INTO "テーブル1" ("フィールド1", "フィールド2", ...)
SELECT "フィールド3", "フィールド4", ...
FROM "テーブル2";

以上のプログラミングは最も基本な形式で、SQL文の中に WHEREGROUP BY 及び HAVING などの句、又はテーブルの結合や別名等が含まれるのも可能。

例えば、1998 年の売上データを Store_Information テーブルに入れることとし、そして、そのデータが Sales_Information テーブルから取得できる場合、次のような SQLを入力します。

INSERT INTO Store_Information (Store_Name, Sales, Txn_Date)
SELECT Store_Name, Sales, Txn_Date
FROM Sales_Information
WHERE Year (Txn_Date) = 1998;

Zここで、SQL Server の関数で、期日の年を検索しましたが、データベースによりプログラミングが異なります。例えば、 Oracleでは、 WHERE TO_CHAR (Txn_Date, 'yyyy') = 1998 を使います。

SQL UPDATE >>



Copyright © 2017   1keydata.com   All Rights Reserved