SQLのSELECT文の使い方を徹底解説!基本構文から実践例まで
データベースは単に情報を保存するだけでなく、必要なデータへ素早くアクセスできるようにするための仕組みです。SELECT文を使えば、データベースから必要な値を自由自在に取り出すことができます。
このガイドでは、SQLのSELECT文とは何か、どのように動作するのかを解説します。実際のコード例を交えながら、SQLサーバーでのSELECT文の使い方を一緒にマスターしていきましょう。
SQL SELECT文とは?
SELECT文は、データベースのテーブルからデータを選択(取得)するためのSQL文です。その名前からも役割がイメージできるでしょう。
SELECT文を使うと、1つまたは複数のテーブルからデータを取得できます。テーブル内のすべての行を取得することもできれば、特定の条件(または複数の条件)に一致する行だけを絞り込んで取得することも可能です。
SELECT句の基本構文は以下のとおりです。
SELECT column1, column2 FROM table;
この文は、「table」というテーブルから「column1」と「column2」の列を取得します。
SQLは、実際の例を見たほうがずっと理解しやすいものです。ここでは、次のような値を持つ「employees」というテーブルを例に説明していきます。
| id | name | title | hired_date | salary |
| 1 | Thomas Carlton | Sales Representative | 09-08-2019 | 29400 |
| 2 | Lisa Nelson | Sales Representative | 12-09-2019 | 29400 |
| 3 | Victoria Carlisle | Sales Director | 04-02-2017 | 37800 |
このテーブルには3件のレコードが登録されています。なお、このテーブルの作成方法については、SQL INSERTおよびSQL UPDATEのチュートリアルで詳しく解説しています。
それでは、データベース内のレコードを表示するために、SELECT文を使ってみましょう。
特定のカラムを選択する
ここで、経営陣から「全従業員の氏名と給与の一覧がほしい」という依頼があったとしましょう。それ以外の情報は不要で、必要なのは従業員名と給与だけです。
このような場合は、次のようにSELECT文を記述して情報を取得できます。
SELECT name, salary FROM employees;
このクエリは、employeesテーブルから全従業員の氏名と給与の一覧を返します。実行結果は以下のとおりです。
| Name | Salary |
| Thomas Carlton | 29400 |
| Lisa Nelson | 29400 |
| Victoria Carlisle | 37800 |
このように、テーブルから必要なカラムをいくつでも自由に指定して取得できます。
すべてのカラムを選択する
テーブルのすべてのカラムを取得したい場合は、次のようにカラム名をすべて並べて記述することもできます。
SELECT id, name, title, hired_date, salary FROM employees;
しかし、この書き方はやや冗長です。カラム数が増えるほどクエリは長くなってしまいます。そこで便利なのが「*」演算子です。
「*」演算子は、テーブル内のすべてのカラムを選択します。「ワイルドカード演算子」とも呼ばれ、「すべて」を意味します。
SELECT * FROM employees;
このクエリを実行すると、employeesテーブルのすべての値を含む完全なレポートが得られます。
| id | name | title | hired_date | salary |
| 1 | Thomas Carlton | Sales Representative | 09-08-2019 | 29400 |
| 2 | Lisa Nelson | Sales Representative | 12-09-2019 | 29400 |
| 3 | Victoria Carlisle | Sales Director | 04-02-2017 | 37800 |
条件を指定して選択する
WHERE句を使うと、特定の条件(または複数の条件)に一致するデータだけを取得できます。
例として、「営業担当者(Sales Representative)である従業員の一覧」を取得したい場面を考えてみましょう。WHERE句を使えば、次のように実現できます。
SELECT * FROM employees WHERE title = 'Sales Representative';
このクエリは、employeesテーブルのすべてのカラムを選択しますが、titleの値が「Sales Representative」と一致するレコードのみが返されます。
| id | name | title | hired_date | salary |
| 1 | Thomas Carlton | Sales Representative | 09-08-2019 | 29400 |
WHERE句については、別記事のチュートリアルでさらに詳しく解説していますので、ぜひ併せてご覧ください。
まとめ
SELECT文は、データベースのテーブルからレコードを取得するためのSQL文です。クエリにカラム名を明示的に指定すれば特定のカラムだけを取得でき、ワイルドカード演算子(*)を使えばすべてのカラムを一度に取得できます。
最後に、理解度を確認するためにちょっとしたチャレンジをしてみましょう。以下の内容を取得するSELECTクエリを自分で書いてみてください。
- 従業員の氏名の一覧を取得する
- 役職が「Sales Director(営業ディレクター)」である従業員の一覧を取得する
- 従業員の役職と給与の一覧を取得する
これであなたも、プロフェッショナルのようにSELECT文を使いこなせるはずです!
-
ノートPCをサブモニターとして使う方法!Miracast・Spacedesk・Chromeリモートデスクトップの設定手順
おさえておきたいポイントWindows 10同士なら「Miracast」がおすすめ。設定 > システム > このPCへのプロジェクションから手軽に設定できます。両方のPCがWindows 10でない場合は、Spacedeskなどのサードパーティ製ソフトや、Googleの無料サービス「Chromeリモートデスクトップ」を活用しましょう。この記事では、Miracast・サードパーティ製アプリ・リモートデスクトップの3つの方法を使って、ノートパソコンをセカンドモニター(サブディスプレイ)として追加する手順を詳しく解説します。MiracastでノートPCをモニターとして追加する方法Wind
-
Rubyのselectメソッドの使い方を実例つきで徹底解説
Rubyのselectメソッドを使うと、オブジェクトの配列を簡単にフィルタリングできます。 たとえば、リストの中から偶数をすべて見つけたい場合などに便利です。 selectを使わずに書くと、次のようになります: even_numbers = [] [1,2,3,4,5,6].each do |n| if n.even? even_numbers << n end end even_numbers こんなにシンプルな処理なのに、かなり長いコードになってしまいますね! それでは、selectの使い方を学んでいきましょう。 selectメソッドの基本例 selectを使うには