【SQL初心者向け】INSERT文は「倉庫への搬入届」だ!データをねじ込む基本構文とズレの恐怖

新しくデータを入れるロボット データベース

データを入れるために必要な手続き。それが「INSERT」

データベースという立派な倉庫を建てても、中身が空っぽなら意味がありません。
それは、ただの空気の缶詰です。

そこに顧客データや商品データという「荷物」を運び込む作業。それが「INSERT(インサート)」です。

Excelなら、空いている行に適当に書き込めば済みます。しかし、データベースは頑固な管理人です。

「おい、勝手に置くな。搬入届を出せ」

と、すぐに怒られます。

今日は、この気難しい管理人にデータを受け取ってもらうための正式な書類、「INSERT文」の書き方を徹底的に叩き込みます。


基本構文:INTOとVALUESのリズム

INSERT文の構造は、非常にリズミカルです。以下の2つのキーワードを覚えてください。

  • INSERT INTO (〜の中に挿入せよ)
  • VALUES (値はこれだ)

「どこのテーブルの、どの列に(INTO)」「何を入れるか(VALUES)」。このセットで命令します。

INSERT INTO テーブル名 (列A, 列B) VALUES (値A, 値B);

これが基本形です。
英語の文法そのまま、「Insert data into table values…」と唱えて覚えてください。


具体例:田中さんを登録する

では実際に「users(ユーザー一覧)」というテーブルがあると仮定して、新しいメンバーを追加してみましょう。

  • 名前(name): 田中
  • 年齢(age): 25歳

このデータをねじ込みます。

INSERT INTO users (name, age) VALUES ('田中', 25);Code language: JavaScript (javascript)

これで完了です。

管理人は「usersテーブルのname列に田中、age列に25だな。よし通れ」とデータを通してくれます。

ちなみに、文字データ(この例では「田中」)はシングルクォーテーション( )’ で囲むのがSQLのルールです。数字(25)は囲まなくてOKです。


ズレの恐怖:順番は命より重い

ここで最も注意すべきは、「列の指定」と「値の指定」の順番です。
これらは完全に一致していなければなりません。

もし、うっかり順番を逆にしたらどうなるか。

-- 悪い例:順番が逆
INSERT INTO users (name, age) VALUES (25, '田中');Code language: JavaScript (javascript)

管理人はロボットのように命令を処理します。
「name列に25を入れて、age列に田中を入れるんだな?」

結果、エラーで弾かれます。
「年齢の列は数字専用だ!『田中』なんて数字はねえ!」と怒鳴られます。

もし運悪く、両方とも「文字が入る列」だった場合、エラーにならずに登録されてしまいます。
その結果、「名前:25、職業:田中」という奇妙な人間がデータベースに誕生します。

これはバグの温床です。


省略の罠:横着は事故の元

実は、列の指定 (name, age) は省略することができます。
省略すると、「テーブルにある全ての列に、左から順番に入れる」という意味になります。

-- 省略形(非推奨)
INSERT INTO users VALUES ('田中', 25);Code language: JavaScript (javascript)

一見、短くて楽そうです。
しかし、これは地雷です。

もし将来、誰かがテーブルの構造を変えて、一番左に「ID」という列を追加したらどうなるか。
「田中」という文字をID列に入れようとして、エラーになります。

あるいは、列の順番が入れ替わっていたら? データがぐちゃぐちゃになります。
横着はいけません。

「どの列に入れるか」は、面倒でも必ず明記してください。

それがプロの仕事です。


まとめ:指差し確認を怠るな

  • INSERT INTO:搬入先の指定。
  • VALUES:荷物の中身。
  • 順番の一致:1番目の列には1番目の値。ズレたら最悪死にます。

INSERT文は、データベースに命を吹き込む作業です。
適当に放り投げるのではなく、宛先と中身をしっかり確認して、丁寧に搬入するようにしましょう。

正しい手続きで入れたデータだけが、後で正しく取り出せるのです。

コメント

タイトルとURLをコピーしました