テーブルにデータを登録するにはどうすれば良いの?
INSERT文の使い方がわからない。
わかりやすく教えて!
こういった疑問にこたえます。
エンジニアの僕がわかりやすく解説します。
INSERT文の使い方
INSERTはテーブルにデータを登録するときに使用するSQLです。
CREATE TABLE文でテーブルを作成した直後はデータが入っていない空の入れ物がある状態です。
そこにデータを登録していく必要があります。
INSERT文の基本
次のようなshohinテーブルがあったとします。
shohin_id | shohin_mei | shohin_bunrui | hanbai_tanka | shiire_tanka | torokubi |
このテーブルにデータを登録していきます。
INSERT文の構文は次の通りです。
INSERT INTO <テーブル名> (列1, 列2,・・・) VALUES(値1, 値2,・・・);
shohinテーブルにデータを登録する場合はこのようなSQLになります。
INSERT INTO shohin (shohin_id, shohin_mei, shohin_bunrui, hanbai_tanka, shiire_tanka, torokubi)
VALUES('0001', 'フライパン', 'キッチン用品', 2000, 1200, '2021-4-13');
登録するデータの型が文字列の場合はシングルクォーテーションで囲みます。
日付型も同様です。
また、列名や値はカンマで区切り、外側を( )で囲みます。
列名の場所と値の場所は対応しているので順番を揃える必要があります。
INSERT文では基本的に1回で1行を登録します。複数行を登録したい場合は複数回INSERT文を実行する必要があります。
列リストの省略
テーブル名の後の列リストは、テーブルの全列に対してINSERTする場合省略することができます。
このとき、VALUESに指定する左から順に各列に割り当てられます。
先ほどの例のINSERT文は省略すると次のように記述することができます。
INSERT INTO shohin
VALUES('0001', 'フライパン', 'キッチン用品', 2000, 1200, '2021-4-13');
NULLを挿入する場合
INSERT文である列にNULLを登録したい場合は、VALUES句の値リストにNULLをそのまま記述します。
例えば先ほどのshohinテーブルのhanbai_tankaがNULLのデータを登録するには次のように記述します。
INSERT INTO shohin (shohin_id, shohin_mei, shohin_bunrui, hanbai_tanka, shiire_tanka, torokubi)
VALUES('0001', 'フライパン', 'キッチン用品', NULL, 1200, '2021-4-13');
ただし、登録できるのはNOT NULL制約のない列に限ります。
他のテーブルのデータを登録する
テーブルに他のテーブルから選択したデータを登録する方法があります。
他のテーブルのデータを登録するにはINSERT SELECT文を実行します。
INSERT SELECT文の構文は次の通りです。
INSERT INTO <テーブル名1> (列1, 列2,・・・)
SELECT <列名1>, <列名2>,・・・ FROM <テーブル名2>;
テーブル名2にある列をSELECTしてその値をテーブル名1の列に登録します。
INSERT SELECT文はデータのバックアップを取るような場合にも使えますので覚えておきましょう。
INSERT文の使い方まとめ
解説の内容をまとめます。
- INSERTはテーブルにデータを登録するときに使用する
- INSERT文では基本的に1回で1行を登録する
- テーブルの全列に対してINSERTする場合は列リストを省略できる
- NULLを登録したい場合はVALUES句にNULLを記述する
- INSERT SELECT文を使えば他のテーブルのデータを登録することができる
以上、お疲れ様でした。
コメント