

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
はじめに
「select句・とは?」という言葉を見たとき、初めて触れる人は「なんとなく難しそう」と感じるかもしれません。ここでは中学生でもわかるように、select句がどんな役割を担い、どう使えばよいのかを丁寧に解説します。
select句とは何か
SQLというデータベースを使うとき、テーブルにはたくさんの情報が入っています。select句は、その中から「どの情報を取り出すか」を決める部分です。簡単に言えば、データの「列」を指定する命令です。たとえば名前だけ、年齢だけ、あるいは名前と年齢を同時に取り出すことができます。
基本の書き方
基本は次の形です。SELECT 列名1、列名2 FROM テーブル名。
複数の列を取り出す例
例: SELECT name, age FROM students;
すべての列を取り出す例
例: SELECT * FROM students;
条件を付けて絞り込む前提
この段階ではまだ条件はありませんが、WHEREを使うと絞り込みができます。例: SELECT name, age FROM students WHERE age が 18 を超える。
実用的なコツ
エイリアスやDISTINCT、LIMITの使い方など、よく使う機能を紹介します。
エイリアスの使い方
長い列名を短くするには、AS で別名を付けます。例: SELECT name AS student_name FROM students;
よく使う派生機能
別名を付ける、重複を排除する DISTINCT、取得件数を制限する LIMIT など。これらを組み合わせると、必要なデータだけを、見やすく取得できます。
実データを使った例
次の表はサンプルデータです。このデータを使って、SELECT句の動きを見てみましょう。
| id | name | age | score |
|---|---|---|---|
| 1 | 太郎 | 15 | 82 |
| 2 | 花子 | 16 | 91 |
| 3 | 健太 | 14 | 76 |
この表を元に、実際のクエリを考えてみます。
例: SELECT name, score FROM students WHERE age が 16 以上。
この結果は、花子と健太の名前とスコアだけを取り出す、という意味になります。
まとめ
今回は select句 が「何を取り出すか」を決める部分であること、基本的な書き方、複数列やすそ付きの条件の作り方、そしてエイリアスや DISTINCT、LIMIT の基本的な使い方を紹介しました。SQLの他の句と組み合わせると、データベースから欲しい情報を効率よく取得できるようになります。
select句の同意語
- SELECT句
- SQL文の中で、取得する列を指定する最も基本的な構成要素。クエリの“何を取り出すか”を決める部分です。
- SELECT節
- SELECT句と同義で、節という語を使う表現。
- セレクト句
- SELECTをカタカナ表記した呼び方の一つ。実務の資料やスライドで見かけることがあります。
- セレクト節
- セレクト句の別表現。言い換えとして使われます。
- 列選択句
- 取得したい列を選ぶ役割の句。列の選択を指す表現です。
- 列指定句
- 表示する列をどう指定するかを表す句。列の指定を明確化します。
- 列抽出句
- データベースから特定の列を取り出すことを表す表現。
- 投影句
- 関係代数の“投影/射影”の意味から、列の抽出を指す言い方。
- 射影句
- 投影と同義の語。列の抽出を意味します。
- 列投影句
- 列の投影(表示する列を選ぶこと)を指す表現。
select句の対義語・反対語
- 挿入 (INSERT)
- データを新規にテーブルへ追加する操作。SELECT がデータを取り出して参照するのに対し、挿入は新しいデータを作成して保存します。
- 更新 (UPDATE)
- 既存データの値を変更する操作。参照しているデータを変更して、結果を上書きします。
- 削除 (DELETE)
- データを削除する操作。参照しているデータを消去する点が反対です。
- 書き込み操作
- データベースへ新しいデータを追加・変更・削除する総称。読み取りの SELECT に対する、データの“作る/変える/消す”という反対の動作群です。
- DDL操作(ALTER/CREATE/DROP)
- テーブルやデータベースの構造を変更する操作。SELECT がデータの参照を指すのに対し、構造変更はデータの扱い方や定義を変えます。
select句の共起語
- FROM句
- SELECT句で参照するデータの出所を指定する句。通常は結合先となるテーブルを指定します。
- WHERE句
- 条件を指定して行を絞り込む句。比較演算子や論理演算子を組み合わせて使います。
- JOIN
- 複数のテーブルを結合して1つの結果にする基本形。どのテーブルからデータを取り出すかを決めます。
- INNER JOIN
- 2つのテーブルの結合条件が一致する行だけを取り出す内部結合です。
- LEFT JOIN
- 左側のテーブルの全行を維持し、右側の一致する行を結びつける外部結合です。
- RIGHT JOIN
- 右側のテーブルの全行を維持する外部結合です。
- FULL JOIN
- 両方のテーブルの全行を結合し、結びつかない部分も含めます。
- CROSS JOIN
- 2つのテーブルの全組み合わせを作る直積結合です。
- ON
- JOINの結合条件を指定するキーワードです。
- GROUP BY句
- 集計の軸となる列を指定します。
- HAVING句
- GROUP BY後の条件を指定する句です。集計結果に対して絞り込みをします。
- ORDER BY句
- 結果を並べ替える句。昇順(ASC)・降順(DESC)を指定します。
- LIMIT句
- 取得する行数を制限します。
- OFFSET句
- 結果の開始位置をスキップして取得します。
- UNION
- 複数のSELECT結果を1つにまとめ、重複を除外します。
- UNION ALL
- 複数のSELECT結果を1つにまとめ、重複を除外しません。
- サブクエリ
- SELECT文の中で別のSELECT文を使う手法です。
- サブクエリ(ネスト)
- 別のクエリをさらに内側に組み込む形を指します。
- CASE式
- 条件に応じて値を返す分岐処理です。
- CASE WHEN
- CASE式の具体的な分岐条件の書き方です。
- 集約関数
- データを集計する関数群です。
- COUNT
- 件数を数える集約関数です。
- SUM
- 数値の合計を求める集約関数です。
- AVG
- 数値の平均を求める集約関数です。
- MIN
- 最小値を求める集約関数です。
- MAX
- 最大値を求める集約関数です。
- DISTINCT
- 重複を取り除き、一意な値だけを返します。
- AS
- 列名や表名に別名をつけるときのキーワードです。
- エイリアス
- 別名のこと。可読性を上げるために使います。
- カラム/列
- データの1列。SELECTで取得対象になる項目です。
- テーブル
- データを格納する箱。複数の列を持つデータの集合です。
- データベース
- データを保管・管理する組織化された集合体です。
- SQL
- データベースとやり取りするための言語。Structured Query Languageの略。
- クエリ
- データベースに対して行う質問のこと。SELECT文などを指します。
- 演算子
- 比較や論理を表す記号です。例: =, <>, >, <, IN, EXISTS, LIKE など。
- IN
- 指定した値の集合に含まれるかを判定します。
- EXISTS
- サブクエリの結果が存在するかどうかを判定します。
- LIKE
- 文字列の部分一致を判定します。
- BETWEEN
- 値が指定した範囲内かを判定します。
- NULL
- 値が未設定・欠損の状態を表します。
- IS NULL
- 値がNULLかどうかを判定します。
- IS NOT NULL
- 値がNULLでないかどうかを判定します。
- AND
- 複数条件を論理的に結ぶ接続詞です。
- OR
- 複数条件のいずれかを満たす場合に真になります。
- インデックス
- データの検索を速くするためのデータ構造です。
- 実行計画
- データベースがクエリをどう実行するかの計画を表します。
- パフォーマンス
- 処理の速さ・効率性のこと。クエリの最適化と深く関係します。
- DBMS
- データベース管理システムの略。データベースを管理・運用するソフトウェアです。
- MySQL
- 人気のあるオープンソースのDBMSの一つです。
- PostgreSQL
- 高度な機能を持つオープンソースのDBMSです。
- Oracle
- 大規模向けの商用DBMSの代表例です。
- SQL Server
- Microsoftが提供する商用DBMSです。
- スカラー関数
- 単一値を返す関数の総称です。
select句の関連用語
- SELECT
- データを取得する際の基本句。返したい列を指定し、結果の形を決定します。
- FROM
- データを取得する元のテーブルを指定します。複数テーブルを結合する場合はここで結合元を決めます。
- WHERE
- 行を絞り込む条件を指定します。条件に合致する行だけが結果に含まれます。
- SELECT list
- 取得する列名や式をカンマで列挙します。星印(asterisk)を使って全列を選ぶこともできます。
- DISTINCT
- 重複する行を結果から取り除く指示。複数の列を組み合わせての重複も排除します。
- ALL
- デフォルト設定で、重複を排除せずすべての行を返します。
- GROUP BY
- 集約関数を用いてデータをグループ化する列を指定します。
- HAVING
- GROUP BY後のグループに対して条件を設定します。
- ORDER BY
- 結果セットの並び順を指定します。昇順(ASC)や降順(DESC)を指定できます。
- LIMIT
- 返す行数の上限を設定します(主にMySQL, PostgreSQL, SQLiteで使用)。
- OFFSET
- 結果の先頭から何件スキップするかを指定します。
- FETCH FIRST ROWS ONLY
- ORDER BYと一緒に使用して、先頭から一定行数だけを取得します(SQL標準の書き方の一部)。
- JOIN
- 複数のテーブルを横に結びつけて、1つの結果に合成します。
- INNER JOIN
- 両方のテーブルに共通するキーを持つ行のみを結合します。
- LEFT JOIN
- 左側のテーブルの全行を保持し、結合対象がない場合はNULLを埋めます。
- RIGHT JOIN
- 右側のテーブルの全行を保持します。
- FULL JOIN
- 両方のテーブルの全行を結合し、対応する部分は結合条件、そうでなければNULL。
- CROSS JOIN
- 全行のデカルト積を作成します。組み合わせの総数は左右の行数の積になります。
- ON
- 結合条件を指定します。例えばON t1.id = t2.id のように書きます。
- USING
- 結合する列名が同じ場合、その列名を自動的に結合条件として使います。
- NATURAL JOIN
- 共通の列名を自動で使って結合します。
- UNION
- 複数のSELECT結果を縦に結合します。重複はデフォルトで除外されます(UNION ALL も有り)。
- UNION ALL
- 重複を排除せずに複数のSELECT結果を結合します。
- INTERSECT
- 複数のSELECTが共通して返す行だけを取得します。
- EXCEPT
- 最初のSELECTの行のうち、他のSELECTに含まれない行を取得します。
- EXISTS
- サブクエリが行を返すかどうかで真偽を判定します。
- IN
- 指定したリスト内の値と一致する行を返します。
- NOT IN
- 指定したリスト内の値と一致しない行を返します。
- BETWEEN
- 値が指定した範囲内かを判定します。
- LIKE
- 文字列のパターンマッチを行います。%や_をワイルドカードとして使えます。
- ILIKE
- 大文字小文字を区別せずにLIKEを行います(主に PostgreSQL)
- CAST
- データ型を別の型へ変換します。
- CONVERT
- データ型変換の別表現。データベースによって構文が異なります。
- COALESCE
- NULLを含む値のうち、最初の非NULL値を返します。
- NULLIF
- 2つの値が同じならNULLを返し、違えばその値を返します。
- CASE
- 条件に応じて異なる値を返す分岐処理を記述します。
- AGGREGATE FUNCTIONS
- 集約関数。例: COUNT, SUM, AVG, MIN, MAX。
- ROW_NUMBER
- ウィンドウ関数の一つ。結果セット内の行に順序番号を割り当てます。
- RANK
- 同値行にも連番を割り当て、等しい場合は同じ順位を与えます。
- DENSE_RANK
- 同値行にも連続的な順位を付与します(ギャップなし)。
- NTILE
- ウィンドウ関数で、行を等分して順位を割り当てます。
- OVER
- ウィンドウ関数を適用する枠組みを指定します。
- PARTITION BY
- ウィンドウ内のデータを分割して、各区分ごとに集計します。
- WINDOW ORDER BY
- ウィンドウ内の順序付けを指定します(OVER 句内の ORDER BY)。
- VIEW
- 名前付きクエリの再利用を可能にする仮想表。SELECTだけでなく定義も含みます。
- MATERIALIZED VIEW
- 結果を物理的に保存して高速化するビューの一種。
- Derived table
- FROM 句内のサブクエリを仮想テーブルとして扱います。
- EXPLAIN
- クエリの実行計画を表示し、性能の最適化に役立てます。
select句のおすすめ参考サイト
- まずはここから! 基本的なSELECT文から始めよう - ITmedia
- SQLのSELECT文の使い方とは?基本的なことから応用文まで解説
- 【初心者向け】SQLのSELECT文とは?特徴や基本的な使い方を解説
- SELECT句とは? わかりやすく解説 - Weblio辞書
- 【SQL】SELECT文の基本をわかりやすく3分で解説



















