SQL INSERT INTO | ||
SQL > テーブル処理 > Insert Into
ここまで、テーブルからどのようにデータを読み込むのか見てきました。しかし、それらのデータが、どのようにテーブルに入力されるのでしょうか。それについて、このページ (INSERT INTO) と次のページ (UPDATE) で説明します。 基本的に、データをテーブルの中に入力する方法が二つあります。一つは一回で一つのデータを入力すします。もう一つは一回で複数のデータを入力します。まず、一回で一つのデータ入力を見ましょう。 今までと同じように、先にプログラミングを述べます。一回で一つのデータを出力するプログラミングは、次のようになります。 INSERT INTO "テーブル名" ("フィールド1", "フィールド2", ...)
VALUES ("值1", "值2", ...); 仮に、次のような構造のテーブルがあるとします。 Store_Information テーブル
そして、次のデータ: 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文の中に WHERE、 GROUP 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 を使います。
|