【SQL】ここだけ押さえて!3分でSELECT文のプロになろう!

SQL NO IMAGE

こんにちは。データエンジニアのたんだです。

SQLの基本をまとめました。初学者向けの記事です。

 

SESLECT文とは?

SELECT文とは、「データベースからどこのデータを取得するか命令する文」です。

本ブログで使用するサンプルデータ

使用するサンプルデータはこれです。powerの算出にロジックはありません。適当です。

 

浜田雅功のpowerが高すぎるんじゃ?などという意見も受け付けません。

(あとから気づいたのですが、人類も哺乳類でしたね。。ごめん浜田さん…)

 

SESLECTの基本的な構文

SELECT文の基本構文はこちらです。まずはこれを確実に押さえましょう。

SEELECT
 (取得したい列=フィールド)
FROM
 (取得するデータテーブル名);

SELECTの後にどのデータを取ってくるか、FROMの後にどのテーブルからデータを取ってくるか、を指示してあげます。

SELECTの後のフィールドの指定方法は、「*」か「フィールド名」になります。

「*」とは、全部のデータが欲しい時に、フィールド名を全部書かなくても全データを取得できる書き方です。

実際にSELECT文を書いてみる

さっそくサンプルで用意したテーブルを使って、いくつかコードを書いてみましょう。なお、今回使用する実行環境はBigQueryです。

全レコードを取得する

SELECT
 *
FROM
 ainimals_table;

簡単ですね。全レコードを取るにはSELECT句で「*」を指定してあげて、FROM句は対象のテーブルなのでanimals_tableが入ります。

nameとpowerを取得する

SELECT
 name,
 power
FROM
 ainimals_table;

取得できましたね。フィールドを複数指定する場合は、カンマ区切りで指定してあげます。

応用編

これで簡単な抽出方法は理解できましたね。ここからは、条件を指定する抽出方法を学びましょう。実務でも頻出中の頻出です。

WHERE句で条件を指定

例えば、サンプルデータから「哺乳類」だけに絞ったデータが欲しいと言われたとき、どのようなクエリを書けばよいでしょうか。

このような場合、WHERE句を用いて、以下のようなコードを書きます。

SELECT
 *
FROM
 ainimals_table;
WHERE
 category = "哺乳類"

今回の場合はcategoryが「哺乳類」であるレコードのみを抽出したいため、WHERE句をこのように書きます。

ORDER BYで順番をソート

強い動物が何か知りたかったのに、powerの順番がバラバラでわかりづらいよ…と言われるかもしれません。そんな時に使えるのがORDER BYです。御託はいいからさっさと例文書けって?はい…

SELECT
 *
FROM
 ainimals_table;
ORDER BY
 power DESC

powerの高い順に並べ替えることができました。今回のような降順に並べ替える時に、フィールド名の後ろにDESCを付けます。逆に小さい順に並べたい時は、DESCを外してあげればよいです。

まとめ

いかがでしたでしょうか。簡単な構文しか紹介していませんが、どれも実務でSQLを書いていくには必須の知識になるので、ぜひ覚えておきましょう。

一度に覚えられない場合は、以下だけでも覚えてからブラウザを閉じてくださいね!

SEELECT
 (取得したい列=フィールド)
FROM
 (取得するデータテーブル名);
WHERE
 (条件文)