目次
SELECT文とは?
SELECT(セレクト)
選ぶ、(…を)(最適なものとして慎重に)選ぶ、(…を)選び出す、(…を)選抜する、(…を)選出する
Weblio英和辞書
SELECTには「選ぶ」「選出する」という意味があり、
意味通りSELECT部分には「抽出したい項目(欲しい情報)」を記載します
そしてデータを抽出するSQLでは「SELECT」から書き始める必要があるので
「構文の始まりのきっかけ」としても機能します
今回はこのSELECT文で「自由自在にデータ抽出をする方法」をご紹介します
SELECT文の使い方
SELECT 【抽出したい列名】
SELECTの後に抽出したい項目を記載します
抽出したい項目によって記載方法やテクニックが異なるので
それぞれご紹介していきます!
特定の列を抽出する方法
特定の列を抽出したい場合は、そのまま「抽出したい列名」を記載します
「ユーザー名を抽出する」場合のSQLを記述します
SELECT
ユーザー名
複数の列を抽出する方法
また「複数の項目」を抽出したい場合は、(,)カンマ区切りで記載していきます
「ユーザー名・商品名・購買日」を抽出するSQLを記述します
SELECT
ユーザー名, 商品名, 購買日
すべてのデータを抽出する方法
全データを抽出したい場合は、(*)アスタリスクを記載します
※すべてのカラム名を記載しても同様の結果になります
「すべてのデータ」を抽出するSQLを記述します
SELECT
*
重複を排除してデータを抽出する方法
SELECT文にカラム名だけを記入した場合、同じ項目があっても全て抽出されます
そこで重複を排除したい場合は「DISTINCT」と言うワードをカラム前に沿えましょう
DISTINCT(ディスティンクト)
他とまったく別な、別個の、性質が異なって、はっきりした、明瞭な、明確な、紛れもない
Weblio英和辞書
DISTINCTとは「個別の」という意味があり、SELECTでよく利用します
「商品名を重複なく」抽出するSQLを記述します
SELECT
DISTINCT 商品名
同じ項目は出ないように重複を排除することを「ユニーク」にすると言います
日本語では「独特な人」という意味ですが、SQLでは「他と被らない=重複がない」という意味で使うので覚えておきましょう
抽出したカラムに別名を付ける
SELECT文でデータを抽出した後に、そのデータにもカラム名を付けることができます
指定したカラムの後ろに「AS」を付けてあげましょう
AS(アズ)
(…と)同じ程度に、同様に、同じくらい
(…)として
Weblio英和辞書
前置詞としてのASは「~として」という意味を持ち、SQLでも同じように名前を付ける意味として使います
「ユーザー名を抽出し、購買者名とカラム名を付ける」抽出するSQLを記述します
SELECT
ユーザー名 AS 購買者名
SELECT文での集約関数の使い方
集約関数とはSUMやCOUNTと言った計算を実施する関数です
また「集約」の名前の通り、「まとめて計算」をします
なので抽出される項目はバラバラではなく、結果の1つのみです
「項目だけ抽出する場合」と「集約関数を使う場合」を比較しましょう
「会計データ」抽出するSQLを記述します
SELECT
会計
「会計を足し合わせた合計金額」抽出するSQLを記述します
SELECT
SUM(会計)
よく使う集約関数
関数 | 概要 |
---|---|
SUM(列名) | 合計 |
AVG(列名) | 平均 |
COUNT(列名) | 件数 |
MAX(列名) | 最大値 |
MIN(列名) | 最小値 |
COUNT(列名)とCOUNT(DISTINCT 列名)では意味が大きく異なります
列名だけでは重複を加味せず個数を数えるのに対し、
DISTINCT を入れることで重複を排除して個数を数えます
SQLで四則演算もできる
実はSQLのSELECT文で「足し算・引き算・掛け算・割り算」の四則演算もすることができます
データ抽出だけではないんですね
SELECT
1+1
= 2
SELECT
1+2+3+4+5+6+7+8+9+10
= 55
SELECT
5*5 (掛け算は×ではなく*)
= 25
単なる計算だけは電卓やExcelで十分です
せっかくSQLで使うならデータ抽出と合わせて利用しましょう
SELECT文でカラム名に四則演算を付け加えることで、
抽出するデータに計算式を入れることができます
商品購買のテーブルから「会計」の項目を全て抽出する
その際に消費税として+10%を付けて抽出する
SELECT
会計*1.1
FROM
商品購買データベース
;
まとめ
今回はSQLのSELECT文についてご紹介してきました
データ抽出のSQLでは「SELECT」は必須の構文なのでしっかり覚えてくださいね