「SELECT文で取得します」「クエリを確認してください」。SQLの話になると必ず出てくる「SELECT文」。プログラミングの知識がなくても、SELECT文の基本的な読み方を知っておくと、エンジニアとの会話がぐっと楽になります。
この記事では、SELECT文とは何か、どういう構造になっているかを、初心者向けにわかりやすく解説します。
この記事でわかること
- SELECT文とは何か
- SELECT文の基本的な構造(SELECT・FROM・WHERE)
- 条件を絞り込む・並び替える・件数を絞る方法の概要
- IT現場でSELECT文がどう使われるか
- 初心者がつまずきやすいポイント
SELECT文とは?
SELECT文とは、データベースのテーブルからデータを取り出すためのSQL命令です。「何を・どこから・どんな条件で取り出すか」を書き表します。
SQLの命令の中でも最もよく使われるのがこのSELECT文です。
身近な例で考えると
図書館の司書さんに「2020年以降に出版された、料理関係の本を探してください」と頼む場面を想像してください。
SELECT文はまさにこれと同じです。データベースという巨大な本棚から、条件を指定して必要な本(データ)を取り出すようなイメージです。
SELECT文の基本的な書き方
SELECT文は次のような形で書きます。
SELECT 取り出したい列名
FROM テーブル名
WHERE 条件;
たとえば、顧客テーブルから東京都の顧客だけを取り出す場合は次のようになります。
SELECT 顧客ID, 氏名, 都道府県
FROM 顧客テーブル
WHERE 都道府県 = '東京都';
これを日本語に訳すと「顧客テーブルの中から、都道府県が東京都のレコードの、顧客ID・氏名・都道府県を取り出してください」という意味になります。
全件取り出したいときは WHERE を省略するか、SELECT * FROM テーブル名 という書き方もあります(* は「全列」を意味します)。
よく使われる追加の書き方
並び替え(ORDER BY) 取り出したデータを特定の列で並び替えます。
ORDER BY 登録日 DESC -- DESCは降順(新しい順)
件数を絞る(LIMIT) 最初の○件だけ取り出したいときに使います(DBの種類によって書き方が異なります)。
LIMIT 10 -- 最初の10件だけ
件数を数える(COUNT) 条件に合うデータが何件あるかを調べます。
SELECT COUNT(*) FROM 顧客テーブル WHERE 都道府県 = '東京都';
IT現場ではどう使われるか
- エンジニアが「このクエリを実行して確認します」と言ったとき、SELECT文でデータを取り出しているケースが多いです
- データ分析担当が「このセグメントの件数を調べたい」と言うとき、COUNT関数付きのSELECT文を書いています
- BIツール(Tableau、Lookerなど)の裏側でも、SELECT文が自動生成されていることがあります
- 不具合調査で「DBを直接確認する」と言った場合も、SELECT文でデータを取り出して状況を確認します
初心者がつまずきやすいポイント
SELECT文は「読み取り」専用 SELECT文でデータを取り出しても、データベースの内容は変わりません。データを変更するのはUPDATE文、削除するのはDELETE文、追加するのはINSERT文です。
「クエリ」=SELECT文とは限らない 「クエリ」はSQL命令全般を指す言葉です。UPDATE文もINSERT文も「クエリ」と呼ばれます。
データベースの種類によって書き方が少し違う MySQLとPostgreSQLでは微妙に書き方が異なる部分があります。基本構文は同じですが、細かい部分でエラーが出ることもあります。
大量データに対してWHEREなしで実行すると重くなる
SELECT * FROM 大きなテーブル を何も条件なしで実行すると、データが全件返ってきて処理が重くなることがあります。本番環境では注意が必要です。
関連用語
- WHERE句:条件を指定する部分
- FROM句:どのテーブルからデータを取るかを指定する部分
- ORDER BY:結果を並び替える
- COUNT/SUM/AVG:件数・合計・平均などを計算する集計関数
- JOIN:複数テーブルを組み合わせてデータを取り出す操作
仕事で使うときの注意点
非エンジニアがSQLを書く機会は多くないかもしれませんが、エンジニアが「こんなクエリで確認しました」と見せてくれたとき、SELECT文の構造が読めると会話がスムーズになります。
また、BIツールやデータ分析ツールで「カスタムSQL」の入力欄が出てきたとき、SELECT文の基本を知っていると活用の幅が広がります。
さらに学ぶなら
SELECT文を含むSQLの基礎から、データベース設計まで体系的に学びたい方には、FEX-104「データベース入門」がおすすめです。図書館の仕組みを使ったわかりやすい解説で、非エンジニアでも学びやすい内容になっています。
- 自分に合う講座を探す:/course-diagnosis/
- IT基礎シリーズを見る:/courses/
- 講師クーポンを確認する:/coupons/