目次
SELECT文の基本構文
SELECT文とは、データベースからデータを抽出するための命令文です。
SELECT文の基本構文
SELECT 列名 FROM テーブル名 WHERE 条件
本記事では、下記の「userテーブル」に次のようなデータが格納されている前提で説明しています。
カラム名 | データ型 | その他 |
id | INT | 主キー |
name | VARCHAR (50) | NULL許容しない |
address | VARCHAR (255) | |
age | INT |
スポンサーリンク
特定の列を抽出する
特定の列を抽出したい場合は「select 列名」に抽出したい列名を指定します。
■SQL文
SELECT name FROM user;
■実行結果
+----------+
| name |
+----------+
| 鈴木一郎 |
| 佐藤次郎 |
| 田中三郎 |
| 伊藤四郎 |
| 斎藤五郎 |
+----------+
5 rows in set (0.00 sec)
複数の列を抽出する
複数の列を抽出したい場合は「select 列名1, 列名2,・・・」とカンマ区切りで列名を指定します。
■SQL文
SELECT name, address FROM user;
■実行結果
+----------+----------------+
| name | address |
+----------+----------------+
| 鈴木一郎 | 東京都渋谷区 |
| 佐藤次郎 | 大阪府大阪市 |
| 田中三郎 | 北海道札幌市 |
| 伊藤四郎 | 沖縄県那覇市 |
| 斎藤五郎 | 神奈川県横浜市 |
+----------+----------------+
5 rows in set (0.00 sec)
すべての列を抽出する
すべて列を抽出したい場合は「select *」とアスタリスクで指定します。
■SQL文
SELECT * FROM user;
■実行結果
+-----------+----------+----------------+------+
| id | name | address | age |
+-----------+----------+----------------+------+
| 202000001 | 鈴木一郎 | 東京都渋谷区 | 44 |
| 202000002 | 佐藤次郎 | 大阪府大阪市 | 32 |
| 202000003 | 田中三郎 | 北海道札幌市 | 24 |
| 202000004 | 伊藤四郎 | 沖縄県那覇市 | 22 |
| 202000005 | 斎藤五郎 | 神奈川県横浜市 | 55 |
+-----------+----------+----------------+------+
5 rows in set (0.00 sec)
スポンサーリンク
「WHERE」で条件を指定する
WHERE句には、次の比較演算子を用いて条件を指定できます。
比較演算子 | 使用例 | 説明 |
= | age = 20 | 20歳と等しい |
> | age > 20 | 20歳より大きい(20歳は含まない) |
>= | age >= 20 | 20歳以上(20歳を含む) |
< | age < 20 | 20歳未満(20歳は含まない) |
<= | age <= 20 | 20際以下(20歳を含む) |
<>(!=) | age <> 20(age != 20) | 20歳以外 |
抽出する条件を指定する
抽出する条件を指定するには「WHERE 条件」に、条件を指定します。
■SQL文
SELECT * FROM user WHERE age < 30;
■実行結果
+-----------+----------+--------------+------+
| id | name | address | age |
+-----------+----------+--------------+------+
| 202000003 | 田中三郎 | 北海道札幌市 | 24 |
| 202000004 | 伊藤四郎 | 沖縄県那覇市 | 22 |
+-----------+----------+--------------+------+
2 rows in set (0.00 sec)
抽出する条件を複数指定する
抽出する条件を複数しているには「AND」もしくは「OR」もしくは「NOT」を使用します。
論理演算子 | 使用例 | 説明 |
AND | A AND B | A かつ B |
OR | A OR B | A または B |
NOT | NOT(A) | Aではない |
■SQL文 ※ANDの例(年齢「50歳未満」 かつ 住所が「東京都渋谷区」以外のデータを抽出)
SELECT * FROM user WHERE age < 50 AND address != '東京都渋谷区';
■実行結果
+-----------+----------+--------------+------+
| id | name | address | age |
+-----------+----------+--------------+------+
| 202000002 | 佐藤次郎 | 大阪府大阪市 | 32 |
| 202000003 | 田中三郎 | 北海道札幌市 | 24 |
| 202000004 | 伊藤四郎 | 沖縄県那覇市 | 22 |
+-----------+----------+--------------+------+
3 rows in set (0.00 sec)
■SQL文 ※ORの例(年齢が「22歳」または 住所が「東京都渋谷区」のデータを抽出)
SELECT * FROM user WHERE age = 22 OR address = '東京都渋谷区';
■実行結果
+-----------+----------+--------------+------+
| id | name | address | age |
+-----------+----------+--------------+------+
| 202000001 | 鈴木一郎 | 東京都渋谷区 | 44 |
| 202000004 | 伊藤四郎 | 沖縄県那覇市 | 22 |
+-----------+----------+--------------+------+
2 rows in set (0.00 sec)
「ORDER BY」でソートする
SELECT文で抽出したデータをソートするには「ORDER BY 列名 ASC(またはDESC)」を使用します。※ASCが昇順、DESCが降順。
■SQL文 ※昇順 ASCは省略可
SELECT * FROM user ORDER BY age ASC;
■実行結果
+-----------+----------+----------------+------+
| id | name | address | age |
+-----------+----------+----------------+------+
| 202000004 | 伊藤四郎 | 沖縄県那覇市 | 22 |
| 202000003 | 田中三郎 | 北海道札幌市 | 24 |
| 202000002 | 佐藤次郎 | 大阪府大阪市 | 32 |
| 202000001 | 鈴木一郎 | 東京都渋谷区 | 44 |
| 202000005 | 斎藤五郎 | 神奈川県横浜市 | 55 |
+-----------+----------+----------------+------+
5 rows in set (0.00 sec)
■SQL文 ※降順
SELECT * FROM user ORDER BY age DESC;
■実行結果
+-----------+----------+----------------+------+
| id | name | address | age |
+-----------+----------+----------------+------+
| 202000005 | 斎藤五郎 | 神奈川県横浜市 | 55 |
| 202000001 | 鈴木一郎 | 東京都渋谷区 | 44 |
| 202000002 | 佐藤次郎 | 大阪府大阪市 | 32 |
| 202000003 | 田中三郎 | 北海道札幌市 | 24 |
| 202000004 | 伊藤四郎 | 沖縄県那覇市 | 22 |
+-----------+----------+----------------+------+
5 rows in set (0.00 sec)
helpful
この記事は役に立ちましたか?