広告 SQL

【SQL】SELECT文の基本的な使い方

SELECT文の基本構文

SELECT文とは、データベースからデータを抽出するための命令文です。

SELECT文の基本構文

SELECT  列名  FROM  テーブル名  WHERE  条件

スポンサーリンク

本記事では、下記の「userテーブル」に次のようなデータが格納されている前提で説明しています。

テーブル例

カラム名データ型その他
idINT主キー
nameVARCHAR (50)NULL許容しない
addressVARCHAR (255)
ageINT

特定の列を抽出する

特定の列を抽出したい場合は「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 = 2020歳と等しい
>age > 2020歳より大きい(20歳は含まない)
>=age >= 2020歳以上(20歳を含む)
<age < 2020歳未満(20歳は含まない)
<=age <= 2020際以下(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」を使用します。

論理演算子使用例説明
ANDA AND BA かつ B
ORA OR BA または B
NOTNOT(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