(Translated by https://www.hiragana.jp/)
INSERT (SQL) - Wikipedia コンテンツにスキップ

INSERT (SQL)

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

INSERT(インサート)ステートメントは、くだり追加ついかする、コンピュータデータベース言語げんご SQL におけるデータ操作そうさ言語げんご(DML)ステートメントの1つである。1に1ぎょう追加ついかするだけではなく、わせの結果けっかとしてのふくすうぎょう追加ついかすることもできる。なお、ユーザーはそのテーブル(関係かんけい)にたいしてINSERT権限けんげんっている必要ひつようがある。また、WHERE指定していしたテーブルすべてにたいしてSELECT権限けんげんっている必要ひつようがある。

構文こうぶん[編集へんしゅう]

挿入そうにゅう[編集へんしゅう]

INSERT INTO テーブルめい [ (れつめい1 [ ,れつめい2・・・]) ]
  VALUES (A1 [, A2 ...]) [, (B1 [, B2 ...]) ...];

れつかずかず一致いっちしている必要ひつようがある。指定していのないれつについてはデフォルト(テーブル作成さくせいにDEFAULT指定していされた)またはNULL使つかわれる。れつ順番じゅんばん任意にんいである。れつ指定してい場合ばあい、テーブル作成さくせいれつじゅん利用りようしてすべてのれつ指定していしたとあつかわれる。

設定せっていしたあるいは設定せってい(デフォルトまたはNULL)は、そのれつまたはテーブルに適用てきようされる制約せいやくしゅキー制約せいやく一意いちいせい制約せいやく参照さんしょう整合せいごうせい制約せいやくCHECK制約せいやくNOT 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 ステートメントでそれをキーに検索けんさくする