【6日でできるPHP入門】SELECT文

データベースに保存された情報を検索・取得するための基本が「SELECT文」です。
SELECT文を使えば、テーブル内の必要なデータを柔軟に取り出せます。
条件を指定して一部のレコードだけ取得したり、特定のカラムだけ表示したりできるのもSELECT文の大きな特徴です。

1.SELECT文の基本構文と活用法

1.1. テーブル全件を取得する

テーブル内の全データを表示したい場合は、次の書式を使います。

構文説明
SELECT * FROM データベース.テーブル名;すべてのカラムを取得

「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。

SELECT * FROM bookshop.books;

実行結果

book_idtitleauthorstock
101PHP入門田中一郎5
102MySQL実践佐藤花子3
103Web開発の基礎山本次郎7

1.2. 特定のカラムのみ取得する

必要なカラムだけ指定してデータを抽出することもできます。

構文説明
SELECT カラム1, カラム2 FROM データベース.テーブル名;指定したカラムのみ取得

「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。

SELECT title, author FROM bookshop.books;

実行結果

titleauthor
PHP入門田中一郎
MySQL実践佐藤花子
Web開発の基礎山本次郎

2.条件付きSELECTと絞り込み

2.1. WHERE句による条件検索

WHERE句を使えば、条件に合うレコードのみ取得できます。

比較演算子意味
=等しい
<より小さい
>より大きい
<=以下
>=以上
<> または !=等しくない

例:在庫が5以上の本だけ取得

「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。

SELECT * FROM bookshop.books WHERE stock >= 5;

実行結果

book_idtitleauthorstock
101PHP入門田中一郎5
103Web開発の基礎山本次郎7

2.2. 複数条件のAND/OR

  • AND: 条件すべてに合致
  • OR: いずれかの条件に合致

例:在庫が5以上または著者が「佐藤花子」の本

「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。

SELECT * FROM bookshop.books WHERE stock >= 5 OR author = '佐藤花子';

実行結果

book_idtitleauthorstock
101PHP入門田中一郎5
102MySQL実践佐藤花子3
103Web開発の基礎山本次郎7

3.PHPからSELECT文を使うサンプル

3.1. データベースのrootユーザのパスワードの設定

 データベースのrootユーザのパスワードの設定を行います。MAMPをインストール直後は、rootユーザにパスワードが設定されていません。

1.「ユーザアカウント」タブに切り替え、「権限を編集」のリンクをクリックします。

2.rootユーザーのパスワードを設定します。

「Change password」タブを選択します。

ここでは、練習用にrootユーザーのパスワードに「root」と設定します。

「パスワード」と「再入力」に「root」と入力したら、「実行」ボタンをクリックします。

3.2. 全レコード取得のプログラム

ファイル名: lesson67_1.php

<?php
$mysqli = new mysqli('localhost', 'root', 'root', 'bookshop');
if ($mysqli->connect_error) {
    echo "接続失敗: " . $mysqli->connect_error;
    exit;
}
$result = $mysqli->query("SELECT * FROM books");
while ($row = $result->fetch_assoc()) {
    echo "ID: {$row['book_id']} / タイトル: {$row['title']} / 著者: {$row['author']} / 在庫: {$row['stock']}<br>";
}
$mysqli->close();
?>

出力結果

3.3. 条件付き取得のプログラム

ファイル名: lesson67_2.php

<?php
$mysqli = new mysqli('localhost', 'root', 'root', 'bookshop');
if ($mysqli->connect_error) {
    echo "接続失敗: " . $mysqli->connect_error;
    exit;
}
$result = $mysqli->query("SELECT title FROM books WHERE stock < 5");
while ($row = $result->fetch_assoc()) {
    echo "在庫少: {$row['title']}<br>";
}
$mysqli->close();
?>

出力結果

まとめ

  • SELECT文はテーブルからデータを取得する基本中の基本のSQL文です。
  • SELECT * で全カラム、SELECT カラム名 で特定カラムだけ取得可能。
  • WHERE句で条件検索、AND/ORで複数条件も組み合わせられます。
  • PHPからもmysqliクラスで簡単にSELECT文を実行可能。
  • 実際に手を動かして、SQLの使い方を確実に身につけましょう!