データベースにテーブルを作成し、データを保存する準備が整いました。では、どのようにしてPHPプログラムからデータベース内のデータを操作するのでしょうか。その対話に使われるのが、**SQL(Structured Query Language)**という専門の言語です。
phpMyAdminでボタンをクリックしてデータを登録・編集した際も、その裏側ではこのSQLが自動的に生成・実行されています。
この記事では、すべてのデータベース操作の基本となる、最も重要な4つのSQL命令(SELECT, INSERT, UPDATE, DELETE)について、その役割と書き方を分かりやすく解説します。
1. データを取得する【SELECT】
SELECT
は、テーブルから**データを取得(検索)**するための命令です。Webアプリケーションで保存された情報を画面に表示する際に、最も頻繁に使われます。
基本構文: SELECT カラム名 FROM テーブル名;
FROM
の後に、どのテーブルからデータを取得したいかを指定します。
使用例(reviews
テーブルを想定):
- 特定のカラムだけを取得するSQL
SELECT book_title, rating FROM reviews;
reviews
テーブルからbook_title
とrating
のカラムだけを取得します。 - すべてのカラムを取得する
*
(アスタリスク)は「すべて」を意味するワイルドカードです。SQLSELECT * FROM reviews;
reviews
テーブルのすべてのカラム(id
,book_title
,rating
など)を取得します。
2. データを新規登録する【INSERT】
INSERT INTO
は、テーブルに新しいレコード(行)を追加するための命令です。HTMLフォームから送信されたデータをデータベースに保存する際に使われます。
基本構文: INSERT INTO テーブル名 (カラム1, カラム2) VALUES (値1, 値2);
- テーブル名の後に
()
でカラム名のリストを、VALUES
の後に()
でそれに対応する値のリストを指定します。
使用例:
INSERT INTO reviews (book_title, rating, review_text)
VALUES ('SQL入門', 5, '非常に分かりやすかった。');
reviews
テーブルに、新しい書籍レビューのデータを1件追加します。id
やcreated_at
のように自動で値が入るカラムは、指定を省略できます。
3. データを更新する【UPDATE】
UPDATE
は、既存のレコードのデータを更新するための命令です。登録済みのユーザー情報や記事の内容を後から編集する機能で使われます。
基本構文: UPDATE テーブル名 SET カラム1 = 新しい値1, カラム2 = 新しい値2 WHERE 条件;
SET
の後に、更新したいカラムと新しい値を=
で繋いで指定します。WHERE
句でどのレコードを更新するのかを条件指定します。これを忘れるとテーブル内の全レコードが更新されてしまうため、非常に重要です。
使用例:
UPDATE reviews SET rating = 4, review_text = '内容を少し修正しました。' WHERE id = 1;
id
が1
のレコードのrating
を4
に、review_text
を新しい内容に更新します。
4. データを削除する【DELETE】
DELETE FROM
は、テーブルからレコードを削除するための命令です。
基本構文: DELETE FROM テーブル名 WHERE 条件;
UPDATE
と同様に、WHERE
句による条件指定が極めて重要です。これを付け忘れると、テーブル内の全データが削除されてしまいます。
使用例:
DELETE FROM reviews WHERE id = 2;
id
が2
のレコードをreviews
テーブルから削除します。
PHPとSQLの連携
これらのSQL文をPHPプログラムの中に文字列として記述し、PDOなどの機能を使ってデータベースに送信・実行させることで、動的なWebアプリケーションが成り立っています。
PHPコードのイメージ:
<?php
// (データベース接続処理は省略)
// PHPの変数に入っている値を元に、データを取得する
$review_id = 3;
// プリペアドステートメントを使い、安全にSQLを実行する
$sql = "SELECT * FROM reviews WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$review_id]);
$review = $stmt->fetch(); // 結果を取得
// 取得したデータを表示
echo htmlspecialchars($review['book_title'], ENT_QUOTES, 'UTF-8');
?>
このように、PHPで組み立てた命令をSQLとして実行し、その結果をまたPHPで受け取って処理する、という流れが基本です。
まとめ
今回は、データベースを操作するための言語、SQLの基本4命令を学びました。
- SELECT: データを取得
- INSERT: データを登録
- UPDATE: データを更新
- DELETE: データを削除
これらの頭文字をとって**CRUD(Create, Read, Update, Delete)**とも呼ばれ、あらゆるアプリケーションにおけるデータ操作の基礎となります。まずはphpMyAdminの「SQL」タブなどで実際にこれらの命令を打ち込み、動きを確認しながらSQLに慣れていきましょう。