コンテンツにスキップ

INSERT (SQL)

出典: フリー百科事典『ウィキペディア(Wikipedia)』

INSERT(インサート)ステートメントは、を追加する、コンピュータデータベース言語 SQL におけるデータ操作言語(DML)ステートメントの1つである。1度に1行を追加するだけではなく、問い合わせの結果としての複数行を追加することもできる。なお、ユーザーはそのテーブル(関係)に対してINSERT権限を持っている必要がある。また、WHERE句で指定したテーブル全てに対してSELECT権限を持っている必要がある。

構文

[編集]

値の挿入

[編集]
INSERT INTO テーブル名 [ (列名1 [ ,列名2・・・]) ]
  VALUES (A1 [, A2 ...]) [, (B1 [, B2 ...]) ...];

DEFAULTNULL使

NULLCHECKNOT NULL

VALUES INSERT 


INSERT INTO phone_book (name, number) VALUES ('John Doe', '555-1212');
INSERT INTO phone_book (name, sex) VALUES ('Nancy', 'Woman'),('Tom', 'Man'),('Cathy','Woman');

問い合わせ結果の挿入

[編集]
INSERT INTO テーブル名1 SELECT * FROM テーブル名2 WHERE 条件式;

テーブル2に対するSELECTステートメントでの問い合わせの結果をテーブル1に追加する。

INSERT INTO phone_book2 SELECT * FROM phone_book WHERE NAME IN ('John Doe', 'Peter Doe');

採番キーの見つけ方

[編集]

データベースシステムが自動採番した連番等の人工キーを主キーとして利用する場合、他のSQLステートメントから、その追加対象のテーブルを利用するために、自動採番された主キーを見つける必要があるが、その方法には以下のようなものがある。

  • 特別なストアドプロシージャを使用する
  • 一時テーブルに最後に追加した行をSELECTステートメントで検索する
  • INSERTステートメントにおける一意な要素の組み合わせを、SELECTステートメントでの検索に使用する
  • INSERTステートメントでGUIDを使用し、 SELECT ステートメントでそれをキーに検索する