INSERT (SQL)
INSERT(インサート)ステートメントは、行を追加する、コンピュータのデータベース言語 SQL におけるデータ操作言語(DML…
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 ステートメントでそれをキーに検索する
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.