データを入れるために必要な手続き。それが「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文は、データベースに命を吹き込む作業です。
適当に放り投げるのではなく、宛先と中身をしっかり確認して、丁寧に搬入するようにしましょう。
正しい手続きで入れたデータだけが、後で正しく取り出せるのです。


コメント