
INSERTとSELECTで学ぶデータ操作:MySQL基礎から応用へ
テーブルにデータを追加する方法はとてもシンプルです。新しい行を挿入したいときにはINSERT INTOというクエリを使います。例えばペット情報を管理するpetテーブルに新しいレコードを追加する場合、次のように書きます。
INSERT INTO pet (name, breed) VALUES ("Chew Barka", "Bichon");
これで名前が「Chew Barka」、犬種が「Bichon」のデータが1件追加されます。続けてもう1件追加してみましょう。
INSERT INTO pet (name, breed) VALUES ("Spark Pug", "Pug");
INSERT INTOという文法は「このテーブルに新しい行を追加する」という意味です。書き方は常に同じで、まずINSERT INTO、続いてテーブル名、挿入するカラムの一覧、VALUESというキーワード、そして実際の値を並べます。この規則に従えば、どんなテーブルにもデータを追加できます。
データを追加したら、次は読み取る方法を学びましょう。データを取り出すときに必ず使うのがSELECTです。最も基本的な形は次のようになります。
SELECT * FROM pet;
このクエリを実行すると、petテーブルに入っているすべての行とすべてのカラムが表示されます。アスタリスク「*」は「すべて」を意味しており、簡単にテーブル全体を確認できる便利な書き方です。
ここで注目したいのはidカラムです。INSERT文ではnameとbreedに値を入れましたが、idは指定していません。それでも自動的に番号が割り当てられているのがわかります。これはプライマリキーと呼ばれる特別なカラムで、通常は自動的にインクリメントする整数として設定されます。新しい行が追加されるたびに1、2、3…と順番に数値が振られていくので、各行を一意に識別するのに非常に便利です。
では、breedを空にしたまま、名前だけを追加してみましょう。
INSERT INTO pet (name) VALUES ("Pico de Gato");
再び全件を表示してみます。
SELECT * FROM pet;
すると、idは自動的に増え続けていますが、breedは空のままです。このように、指定しなかったカラムにはNULL(空の値)が入ります。必要に応じてデフォルト値を設定することも可能です。
SELECT文にはもうひとつ便利な機能があります。全カラムを表示するのではなく、特定のカラムだけを取り出すことができます。
SELECT id, name FROM pet;
これでidとnameだけが一覧として返ってきます。表示内容を絞ることで、必要な情報を効率よく確認できます。
さらにWHERE句を使えば条件付きでデータを抽出できます。例えばidが1より大きいデータだけを取り出す場合は次のようにします。
SELECT id, name FROM pet WHERE id > 1;
このようにWHEREを使えば、特定の条件に合致したデータだけを取得することができます。条件は数値だけでなく文字列や複数の条件を組み合わせることも可能で、現実のアプリケーションでは頻繁に活用されます。
例えば犬種が「Pug」のデータを取り出したい場合には次のように書けます。
SELECT * FROM pet WHERE breed="Pug";
また、条件を複数指定することもできます。例えば名前が「Chew Barka」で犬種が「Bichon」である行だけを表示したい場合は、次のように書きます。
SELECT * FROM pet WHERE name="Chew Barka" AND breed="Bichon";
こうした条件検索を駆使することで、大量のデータの中から必要な情報だけを効率よく取り出すことができます。MySQLが広く使われている理由のひとつが、この柔軟で強力な検索機能にあります。
INSERTとSELECTはデータベースを使う上で最も基本的かつ重要なコマンドです。新しいデータを追加して、必要なデータを取り出すというサイクルは、どんなアプリケーションでも必ず行われる操作です。フォーム入力からユーザー登録、商品リストの表示や検索機能まで、すべてこの2つの仕組みによって成り立っていると言っても過言ではありません。
これらを理解して自由に使いこなせるようになれば、データベースとのやり取りは格段に楽しく、そして強力になります。