SQLでのINSERT文はテーブルにデータを追加する為の命令文です。
INSERT文を実行するには【データベース】と【テーブル】を事前に作成しておく必要があります。
SQL Server : INSERT文の使い方
INSERT文の基本的な使い方は2つパターンがありこの記事にはその使い方についてまとめていきます。
それではINSERT文はどんな組み方なのか実際のテーブル使って試してみましょう。
INSERT前の【Sample_Table】のデータ状況(赤枠)を確認すると下図のように5件確認できます。
上図補足:SELECT区にある「*:アスタリスク」は「すべてのカラム」と言う意味です。
【Sample_Table】にまずは【パターン1】の方法で6件目のデータ、そして【パターン2】の方法で7件目のデータを新規追加してみましょう。
【パターン1】列名を省略して新規登録(INSERT)する方法
下記SQLは列名を省略したパターンのINSERTの構文になります。
INSERT INTO テーブル名 VALUES (値1, 値2, 値3・・・);
<登録する列名を省略したINSERTの特徴>
・values句にはINSERTする値を記述する必要があります。
・INSERTする値をセットしない項目はNULLという値をセットします。
・INSERTする値は、テーブルの定義したカラムの数と同じ数を記述します。
・INSERTする値の位置がテーブルの列の位置(順番)に対応します。
実際に【Sample_Table】を使うと下記記述になります。
INSERT INTO Sample_Table VALUES ('000000010', 'てすと ざんまい', 25, '会計課', NULL);
SQL実行
このSQL文をマネージメントスタジオで実行してみましょう。
SQL文を記述後、下図「実行」をクリックしてINSERT文のSQLを実行します。
※実行して結果がメッセージエリアに表示されます。
実行結果
6件目としてデータが追加されてますね。
列名を省略したINSERTは簡単に記述できるかと思いますが、デメリットとしてテーブルのカラムの定義に変更(増減)があった場合、都度SQL文も修正しないとエラーになります。
【パターン2】登録する列名を指定して登録(INSERT)する方法
下記SQLは列名を指定したINSERTの構文になります。
INSERT INTO テーブル名 (テーブルのカラム名1, テーブルのカラム名2, テーブルのカラム名3・・・)
VALUES (値1, 値2, 値3・・・);
<登録先の列名を指定したINSERTの特徴>
・テーブルに定義している全てのカラム名を記述する必要はない。
・テーブルの列名の位置に対応してvalues句のINSERTする値を指定します。
実際に【Sample_Table】を使うと下記記述になります。
INSERT INTO Sample_Table (USER_ID, USER_NM) VALUES ('000000015', 'てすと 哲太');
SQL実行
このSQL文をマネージメントスタジオで実行してみましょう。
SQL文を記述後、下図「実行」をクリックしてINSERT文のSQLを実行します。
※実行して結果がメッセージエリアに表示されます。
実行結果
7件目としてデータが追加されましたね。
この例ではuser_idとuser_nm項目のみ登録値を指定しているので、ほかの項目はデータが入っていません。
テーブルの列の数が増える、またはinsert文で使用していないテーブルの列が削除されてもエラーは発生しません。(カラム名の変更やカラムの型変更はどのパターンでもエラーになります。)
デメリットとしてはカラム数が多ければ省略の方法より長くなるぐらいですかね・・・。
まとめ
INSERTの基本は主キーとなる項目と主キーでない項目をおさえておくのと、そのテーブルの列項目の型に気をつければけば簡単に新規登録ができるかなと思います。
この記事の例で実際に使ったテーブルでUSER_ID, USER_NMの項目は必ず指定して、データを登録しましたが、それ以外の列項目は記述していなければデータは登録されていないことが確認できますね。
以上、SQL Serverでデータ新規登録する操作方法でした
ここまで読んでいただきありがとうございました。
ほかにもSQLの記事を上げていきますので是非参考にしてみてください。