SQL INSERT INTO


SQL CREATE TABLE
SQL CREATE VIEW
SQL CREATE INDEX
SQL ALTER TABLE
SQL 主キー
SQL 外来キー
SQL DROP TABLE
SQL TRUNCATE TABLE
SQL INSERT INTO
SQL UPDATE
SQL DELETE FROM


サイトのご案内

  SQL > テーブル処理 > Insert Into

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

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

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

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

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

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

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

INSERT INTO Store_Information (store_name, Sales, 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, Date)
SELECT store_name, Sales, Date
FROM Sales_Information
WHERE Year(Date) = 1998

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

SQL UPDATE >>