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

1.SELECT文の基本構文と活用法
1.1. テーブル全件を取得する
テーブル内の全データを表示したい場合は、次の書式を使います。
| 構文 | 説明 |
|---|---|
| SELECT * FROM データベース.テーブル名; | すべてのカラムを取得 |
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
SELECT * FROM bookshop.books;
実行結果

| book_id | title | author | stock |
|---|---|---|---|
| 101 | PHP入門 | 田中一郎 | 5 |
| 102 | MySQL実践 | 佐藤花子 | 3 |
| 103 | Web開発の基礎 | 山本次郎 | 7 |
1.2. 特定のカラムのみ取得する
必要なカラムだけ指定してデータを抽出することもできます。
| 構文 | 説明 |
|---|---|
| SELECT カラム1, カラム2 FROM データベース.テーブル名; | 指定したカラムのみ取得 |
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
SELECT title, author FROM bookshop.books;
実行結果

| title | author |
|---|---|
| PHP入門 | 田中一郎 |
| MySQL実践 | 佐藤花子 |
| Web開発の基礎 | 山本次郎 |
2.条件付きSELECTと絞り込み
2.1. WHERE句による条件検索
WHERE句を使えば、条件に合うレコードのみ取得できます。
| 比較演算子 | 意味 |
|---|---|
| = | 等しい |
| < | より小さい |
| > | より大きい |
| <= | 以下 |
| >= | 以上 |
| <> または != | 等しくない |
例:在庫が5以上の本だけ取得
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
SELECT * FROM bookshop.books WHERE stock >= 5;
実行結果

| book_id | title | author | stock |
|---|---|---|---|
| 101 | PHP入門 | 田中一郎 | 5 |
| 103 | Web開発の基礎 | 山本次郎 | 7 |
2.2. 複数条件のAND/OR
- AND: 条件すべてに合致
- OR: いずれかの条件に合致
例:在庫が5以上または著者が「佐藤花子」の本
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
SELECT * FROM bookshop.books WHERE stock >= 5 OR author = '佐藤花子';
実行結果

| book_id | title | author | stock |
|---|---|---|---|
| 101 | PHP入門 | 田中一郎 | 5 |
| 102 | MySQL実践 | 佐藤花子 | 3 |
| 103 | Web開発の基礎 | 山本次郎 | 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の使い方を確実に身につけましょう!
