こんにちは。データエンジニアのたんだです。
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
(条件文)