【初心者向け】SQLのSELECT文とは?特徴や基本的な使い方を解説
SQLのSELECT文は、データベースから必要な情報を取り出すための基本的かつ重要な命令です。
本記事では、SELECT文の基本構文から始まり、WHERE句やORDER BY句の使い方、さらには集計関数やテーブル結合などの応用例まで、幅広く解説します。
初心者の方はもちろん、SQLスキルを磨きたい方にも役立つ内容となっています。実際の使用例を交えながら、分かりやすく説明しますので、ぜひ最後までお読みください。
Contents
SQL SELECT文とは
SQLのSELECT文は、データベースから必要な情報を抽出するための基本的かつ頻繁に使用される命令です。
SQL(Structured Query Language)は、データベース操作の標準的な言語で、SELECT文は、データ操作言語(DML: Data Manipulation Language)の1つです。多くのRDBMSがSQLをサポートしています。
SELECT文はデータの分析や報告書作成で重要な役割を果たし、他のSQL文(UPDATEやDELETEなど)と組み合わせると複雑なデータ操作も可能になります。
SQL SELECT文の特徴
SELECT文は、データベースからデータを取得するためのSQLの基本的な命令で、読み取り専用の操作です。
複数のテーブルからデータを結合して取得でき、WHERE句で条件付き抽出が可能です。
指定した列の値に基づいて結果を並べ替えたり、合計や平均を求めるなどの集計もできます。
また、SELECT文は多くのRDBMSで共通して使用でき、標準SQLのなかでも汎用性の高い命令です。
SELECTの構文
SELECTの標準的な構文を見ていきましょう。
基本構文
SELECTの基本構文は以下のようになります。
SELECT 列名 FROM テーブル名;
基本構文では、指定したテーブルから特定の列のデータを取得します。
SELECT name FROM customers; — customersテーブルからname列のデータのみを取得
— 出力例
name
——
佐藤
田中
鈴木
高橋
中村
渡辺
伊藤
山田
※ SQLの—以降は行コメントで、実行時に無視されます。
複数指定する場合
複数の列を取得したい場合は、カンマで区切って列名を指定します。
SELECT 列名1, 列名2, 列名3 FROM テーブル名;
また、列に別名(エイリアス)をつけることもできます。
SELECT name AS 顧客名, age AS 年齢 FROM customers; — 結果の列名を「顧客名」「年齢」として表示
— 出力例
顧客名 | 年齢
——–+—–
佐藤 | 25
田中 | 31
鈴木 | 42
高橋 | 38
中村 | 19
渡辺 | 45
伊藤 | 35
山田 | 28
全指定する場合
テーブルのすべての列を取得したい場合は、アスタリスク(*)を使用します。
SELECT * FROM テーブル名;
— 出力例
name | age | gender
——-+—–+——–
佐藤 | 25 | female
田中 | 31 | female
鈴木 | 42 | male
高橋 | 38 | female
中村 | 19 | female
渡辺 | 45 | male
伊藤 | 35 | female
山田 | 28 | female
簡単ですが、必要以上のデータを取得する可能性があるため、パフォーマンスに影響を与える場合があります。
WHERE条件を使用する場合
特定の条件に合致するデータのみを取得したい場合は、WHERE句を使用します。
SELECT 列名 FROM テーブル名 WHERE 条件式;
例:年齢30歳以上
SELECT name, age FROM customers WHERE age >= 30; — 年齢が30歳以上の顧客
— 出力例
name | age
——-+—–
田中 | 31
鈴木 | 42
高橋 | 38
渡辺 | 45
伊藤 | 35
例:複数の条件を組み合わせる
SELECT name, age FROM customers WHERE age >= 30 AND gender = ‘female’; — 年齢30以上 かつ 女性
— 出力例
name | age
——-+—–
田中 | 31
高橋 | 38
伊藤 | 35
基本的な比較演算子
演算子 |
意味 |
= |
等しい |
!= |
等しくない |
<> |
等しくない |
> |
より大きい |
< |
より小さい |
LIKE |
文字列の部分一致 |
IN |
集合に含まれる |
BETWEEN |
値の範囲内 |
ORDER BY条件を使用する場合
取得したデータを特定の順序で並べ替えたい場合は、ORDER BY句を使用します。
SELECT 列名 FROM テーブル名 ORDER BY 並べ替えの基準となる列名;
デフォルトは昇順(ASC)ですが、降順(DESC)にしたい場合は明示的に指定します。
SELECT name, age FROM customers ORDER BY age DESC; — 年齢の高い順(降順)に取得
name | age
——-+—–
渡辺 | 45
鈴木 | 42
高橋 | 38
伊藤 | 35
田中 | 31
山田 | 28
佐藤 | 25
中村 | 19
WHERE条件とORDER BY条件を組み合わせる場合
WHERE条件とORDER BY条件は組み合わせて使用できます。
SELECT 列名 FROM テーブル名 WHERE 条件式 ORDER BY 並べ替えの基準となる列名;
例:30歳以上の顧客、年齢の高い順
SELECT name, age FROM customers WHERE age >= 30 ORDER BY age DESC;
— 出力例
name | age
——-+—–
渡辺 | 45
鈴木 | 42
高橋 | 38
伊藤 | 35
田中 | 31
SELECT構文の応用例
SELECT構文は基本的な使い方以外にも、さまざまな応用例があります。
本項では、代表的な応用例をいくつか紹介します。
集計関数
SUM、AVG、COUNTなどの関数を使うと、データの合計や平均、件数を簡単に計算できます。
例:注文情報から特定の期間の売上合計を計算
SELECT SUM(price) AS 売上合計 — 条件に合うpriceの合計値を計算
FROM orders
WHERE order_date BETWEEN ‘2024-01-01’ AND ‘2024-06-30’;
グループ化
GROUP BY句を使うと、特定の列でデータをグループ化し、各グループごとに集計できます。
例:生徒の男女別の平均身長を求める
SELECT gender, AVG(height) AS 平均身長
FROM students
GROUP BY gender; — 性別でグループ化
サブクエリ
SELECTの中に別のSELECTを入れ子にする方法で、複雑な条件を表現できます。
例:平均価格より高い商品を抽出する
SELECT name, price
FROM products
WHERE price > (SELECT AVG(price) FROM products);
テーブルの結合
JOINを使用した複数テーブルの結合により、異なるテーブルのデータを組み合わせて取得できます。
例:注文と顧客情報を組み合わせて抽出
SELECT
orders.id AS 注文番号, — 区別のため「テーブル.列」の書式を使用
customers.name AS 顧客名,
orders.order_date AS 注文日
FROM
orders
JOIN customers ON orders.customer_id = customers.id; — ON句にはテーブルを結合する条件を指定
SQLのスキルを活かせる仕事をお探しなら
SQLのスキルを活かした転職をお考えなら、アールストーンの無料相談をご利用ください。
アールストーンでは、IT・WEB・ゲーム業界に特化したコンサルタントが、あなた専属で企業と直接交渉し、最適なキャリア設計をサポートします。
まとめ
SQLのSELECT文は、データベース操作の要となる重要な命令です。
基本構文から応用例まで理解を深めることで、データ分析や業務効率化に大きく貢献できます。
ぜひ実際にデータベースを用意し、SELECT文でさまざまな問い合わせをおこなってみてください。