第9章 データベース連携 / 第5回 模擬試験
PHPのSELECT文の結果セットに関する次の記述のうち、正しいものはどれか。
`SELECT * FROM users WHERE age > 20;`は、`users`テーブルから年齢が20より大きいレコードを取得する。
正解
`SELECT`文はテーブルにデータを追加するための命令である。
`SELECT`文の`WHERE`句は省略することが一切できない。
`SELECT *`は特定の1列のみを取得することを意味する。
解説
`SELECT * FROM users WHERE age > 20;`は、`users`テーブルの中から`age`列の値が`20`より大きいレコードを検索し、それらのレコードの「すべての列」を取得するSQL文です。
他の選択肢が誤りである理由は次の通りです。
・テーブルにデータを追加する命令は`INSERT`文です。`SELECT`文はデータの「取得(検索)」を行います。
・`WHERE`句は省略可能です。省略した場合は、条件による絞り込みなしにテーブル内の全レコードが対象になります。
・`SELECT *`の`*`は「すべての列」を意味します。特定の1列だけを取得したい場合は列名を明示的に指定します。
例:
```
SELECT * FROM users WHERE age > 20; -- 20歳より大きい全ユーザーの全列
SELECT name FROM users; -- 全ユーザーのname列のみ
SELECT * FROM users; -- WHERE省略、全レコード全列
```
(参照: 独習PHP 第4版 第9章 データベース連携 9.2.2節 SQLの基本 p.417〜424)