SQL

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

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)


チャンネル登録はこちら

フォローはこちら