INSERT命令は、既存のテーブルに新たなレコードを1件追加します。まず基本的な使い方を紹介します。
- フィールドと値を指定する -
INSERT命令は、一般にINTO句を添えて使用します。以下のような書式です。
INSERT INTO <追加先テーブル> (<フィールドリスト>) [VALUES (<値リスト>)]
<追加先テーブル>で指定したテーブルに新たなレコードを1件追加します。<フィールドリスト>には、<追加先テーブル>で指定したテーブルのフィールド名を「,」で区切って列挙します。順序も追加先テーブルと同じでなければなりません。
VALUES句は省略でき、その場合は各フィールドにNULL値(数値の0ではなく、「何もない」ことを示す特殊な値)が設定されます。但し、IDフィールドなどNULLを許容しない設定をしたフィールドがある場合、SQLの実行時にエラーとなってレコードは追加されません。
VALUESに続いて( )内に、先に列挙したフィールドに対応する値を「,」で区切って列挙すると、追加されたレコードの各フィールドにその値が設定されます。この場合も、値とフィールドのデータ型や桁数が合致していなければエラーになります。
フィールドリストと値リストはそれぞれ( )内に「,」で区切って列挙することに注意しましょう。
- INSERT命令の使用例 -
以下にINSERT命令の使用例を掲げておきます。
例)
テーブル「商品_mr」に、以下の値を格納したレコードを1件追加します。
商品ID=998501/品名="ニワトリくん目覚まし時計"
販売単価=1800/仕入単価=1280/在庫=10
INSERT INTO 商品_mr
(商品ID, 品名, 販売単価, 仕入単価, 在庫)
VALUES (998501, 'ニワトリくん目覚まし時計', 1800, 1280, 10)
「品名」フィールドに設定する値「ニワトリくん目覚まし時計」は文字列(nvarchar型)なので、' 'で囲みます。それ以外は数値(int型とmoney型)なのでそのまま値を記述します。
SQL Serverの場合、レコードが追加されたかどうかは、Enterprise Managerで「テーブル」→「商品_mr」を選択して、メニューから「操作」→「テーブルを開く」→「全行を返す」を選択して確認できます。
- 重複追加に注意 -
INSERT命令でレコードを追加する場合、ここで例に挙げた「商品_mr」のようにIDフィールドが値の重複を許可しない設定となっているテーブルに対して同じSQLを重複して実行すると、当然のことながらエラーとなり、クエリアナライザの「メッセージ」ペインに以下のようなエラーメッセージが表示されます。
サーバー : メッセージ 2627、レベル 14、状態 1、行 1
PRIMARY KEY 違反、制約 'aaaaa商品_mr_PK': オブジェクト '商品_mr' には
重複したキーは挿入できません。
ステートメントは終了されました。
値の重複を許可するフィールドだけで構成されているテーブルでは、INSERT文を重複実行してもエラーとはなりません。その場合、まったく同じ内容のレコードがもう1件追加されることになります。
|
|
|