その他

SQL入門: ステップ1 – SELECT文の理解と活用

その他
この記事は約3分で読めます。

はじめに

株式会社インプルの奈良です。

今回はSQL文を学習する機会があったため、備忘録として記事を残します。

SQLはデータベース管理のための強力な言語であり、その核となるのがSELECT文です。SELECT文を用いるとデータベースから必要な情報を照会し、その結果を利用することが可能です。今回の記事では、SELECT文の基本的な用途である選択、射影、結合、合併について解説します。

SQLについて0から学んでいくため、プログラミング初学者の方の参考になれば幸いです。

解説で使用するテーブル構成(Peopleテーブル・Ordersテーブル)

Peopleテーブル

idnameage
1John20
2Alice25
3Bob30
4Carol22
5Dave18

Ordersテーブル

idcustomer_idproduct
12Apples
22Bananas
33Grapes
45Oranges
51Apples

選択(Selection)とは

選択(Selection)特定の条件に合致する行をデータから取り出す操作です。この操作はSELECT文のWHERE節を用いて行います。

例えば、ageが20以上のすべての人を選択するには、以下のように書きます。

SELECT *
FROM People
WHERE age >= 20;

実行結果:

idnameage
1John20
2Alice25
3Bob30
4Carol22

射影(Projection)とは

射影(Projection)特定の列をデータから取り出す操作です。この操作はSELECT文の列名指定部で行います。

例えば、nameとageの列だけを取り出すには、以下のように書きます。

SELECT name, age
FROM People;

実行結果:

nameage
John20
Alice25
Bob30
Carol22
Dave18

結合(Join)とは

結合(Join)2つのテーブルを共通の属性(列)に基づいて連結する操作です。この操作はJOIN句を用いて行います。

例えば、PeopleテーブルとOrdersテーブルをcustomer_idで結合するには、以下のように書きます。

SELECT People.name, Orders.product
FROM People
JOIN Orders
ON People.id = Orders.customer_id;

実行結果:

nameproduct
JohnApples
AliceApples
AliceBananas
BobGrapes
DaveOranges

合併(Union)とは

合併(Union)2つ以上のSELECT文の結果セットを一つにまとめる操作です。この操作はUNIONまたはUNION ALLを用いて行います。

例えば、20歳以上の人と名前が”John”の人をまとめて選択するには、以下のように書きます。

SELECT *
FROM People
WHERE age >= 20
UNION
SELECT *
FROM People
WHERE name = 'John';

実行結果:

idnameage
1John20
2Alice25
3Bob30
4Carol22

さいごに

今回は、SQLの基本である、SELECT文の選択、射影、結合、合併について解説しました。

実際にSQL文を書く際は、可読性を考慮しインデントの調整を忘れずに行う必要があります。

次回は、さらに詳細な条件でデータをフィルタリングする方法についての記事をまとめたいと思います。