検索

キーワード


【SQL】SELECT文について

  • 公開日:2020-10-20 19:41:36
  • 最終更新日:2020-11-18 10:34:31
【SQL】SELECT文について

こんにちは。駆け出しプログラマーの松下です!

SQL命令文の中で最も使用頻度が高い、SELECT文の使い方を説明します。

SQLについて学び始めたばかりという方の参考になれば幸いです。


例ではMicrosoft SQL Serverを使用し、あらかじめ作成した下記の'employees'テーブルからのデータ取得をします。

'employees'テーブル


SELECT文とは

データベースからデータを取得する際に使うSQL命令文がSELECT文です。

数多くのキーワードが用意されている重要な命令文です。


基本的なSELECT文の書き方

SELECT カラム名
FROM テーブル名
WHERE 抽出条件

SELECTの後ろに取得したい列の名前を書きます。そしてFROMの後ろには対象のテーブルの名前を書きます。

さらに情報を絞り込んで取得したい場合は、WHEREの後ろに条件を指定します。


まずはテーブルから全ての列を取得してみます。

SELECT *
FROM employees

全ての列を取得する場合はカラム名の部分に「*」を指定します。

特に抽出の条件がないときはWHEREは不要です。

それぞれの単語の間は半角スペースを入れることにも気をつけましょう。

SQLで全ての列を取得した例

テーブルのデータが全て表示されました。


指定するカラムが複数あるときは「,」(カンマ)で区切ります。

社員番号、名前、給料、年齢を取得してみます。

SELECT 社員番号,名前,給料,年齢
FROM employees

SQLで複数のカラムを指定した例

全ての列を取得したときと違い、性別や生年月日は表示されていません。

また、年齢の表示されている順番が給料より後になっています。

このように列の名前は、SELECT句に記述した順番通りに取得されます。


表示の数が多いほど処理の負荷が高くなるので、取得したい列名だけ記述するのが良いでしょう。



◆WHERE句

WHEREの後ろに、列と演算子や関数などを使って表した条件式を記すことで、条件にマッチしたデータのみを取得します。

例えば今回使っているテーブルでは、ある年齢以下の社員データや年収が一定以上の社員データだけを抽出して表示したいときなどに活用できます。


SELECT *
FROM employees
WHERE 性別 = '男'

WHERE句で条件にマッチしたデータのみを取得した例

性別が男の社員のデータのみが表示されています。



◆列を作る

SELECT句に記述する列は、テーブルに存在する列だけでなく自分で勝手に作ることも可能です。

SELECT 社員番号,名前,'こんにちは',年齢
FROM employees

SELECT句で存在しない列を指定した例


表示を変える

AS句で列の名前を変える

SELECT句のカラム名の後ろに「AS 項目名」と書き加えることで、元々のデータの列名ではない別名で表示することができます。

元々の列名を分かりやすく表示したり、テーブルに存在しない列を作ったときに列名をつけるために活用できます。

SELECT 社員番号 AS id
      ,名前 AS name
      ,給料
      ,年齢 AS age
FROM employees

AS句で列の名前を変えた例

給料以外の列名は、ASで指定したので変わっています。


四則演算

SELECT句のなかで四則演算ができます。

SELECT 社員番号
      ,名前
      ,年齢 + 10
      ,給料
      ,給料 * 12 AS 年収
FROM employees

SELECT句の中で四則演算を行った例

全員10歳加算された年齢が表示されています。

また給料を12倍した数字の列が作られ、AS句で「年収」と列名を定めています。


文字列の連結

SELECT句において、「+」を使うことで文字をつなぎ合わせることも可能です。

SELECT 社員番号
      ,名前 + '様'
      ,年齢
      ,給料
FROM employees

SELECT文で文字列の結合を行った例

名前の後ろに様という文字が連結しています。


上位○件を取得する

SELECT TOPの後ろに取得したい件数を記すことで、上位から指定された数だけのデータが取得されます。

SELECT TOP 3 社員番号
      ,名前
      ,年齢
      ,給料
FROM employees

SELECT TOPで上位3件のデータを取得した例

テーブルの上から3人のデータが表示されています。



【著者】

松下

今年文系未経験からプログラマとなりました。 同じ初心者の方に分かりやすいよう簡潔な記事を心がけていきます。 趣味はサッカー観戦と洋服です。

よく読まれている記事