この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。今回はSQLの記述作法について書く。
SQLのポイント
前回のおさらい
- 前回はBig Queryサンドボックスを起動し、アカウント・プロジェクト・データセットを作成した。
- そして、そのデータセットの中にテーブルを作成し、最も簡単なクエリを起動した。
- SQLを本格的に使える準備が整った。
SQLのポイント
- 簡単な英単語で話すように使える。
- プログラムほど複雑でない。プログラムのようなIF(分岐)、FOR(繰り返し)はない。
- パーツの構造はシンプル。おおよそ7要素。
- 言語なので、自ら実践することで力がつく。どんどんBig Queryに命令(クエリ)を入れて試していく。
SQLの記述作法
SQLのパーツの7要素について順に説明。
1,命令
- 主なものは4つ。select(参照)、insert(登録)、update(更新)、delete(削除)。
- もっとも基本であり多様するのが select from。
- 例えば「select user_id from sample.sales」。
- このSQL文を読み解くと、「sampleデータセットのsalesテーブル”から”、user_idフィールド(列)の値を”取得”せよ」となる。
- 命令は半角英字で記述。大文字・小文字はどちらでもよい。
2,関数
- エクセルの関数のように使える機能がある。例えばcount関数は対象の数を数える機能。()でくくる引数を使う関数もある。
- 例えば「select count(user_id) from sample.sales」。
- このSQL文を読み解くと、「sampleデータセットのsalesテーブル”から”、user_idフィールド(列)の”対象の数を数えた結果”を取得”せよ」となる。
- クエリを起動すると、以下のようにuser_id列のデータ数がカウントされる。(この場合は1177個)
3,カラム名
- カラム(列)を記述するときは、大文字と小文字を厳密に区別することに注意。
- 先ほどの例で言えば「user_id」部分
4,テーブル名
- テーブルを記述するときも、大文字と小文字を厳密に区別する。
- 現在選択中のプロジェクトにてSQLを記述する事が多いので、その場合はデータセット名とテーブル名を「.」(ピリオド)で繋ぐだけで良い。
- 先ほどの例で言えば「sample.sales」部分
- なお、プロジェクト名まで含めて指定するときは、プロジェクト名・データセット名・テーブル名を「.」(ピリオド)でつなぎ、「`」(バッククォート。shiftキーを押しながらキーボードの@を押す)で囲む。
例えば
「select count(user_id) from `sql-book-20220429.sample.sales`
」のようなイメージ。
5,AS
- 取り出したカラム名に別名を定義するコマンド。
- 例えば先ほどの「select count(user_id) from sample.sales」を起動すると、user_idの数をカウントしてくれるが、列見出しの名前が「f0」となり分かりづらい。
- そこで「as 別名」とすることで見出しを変えられる。例えば「select count(user_id) as id_count from sample.sales」とすると、以下のようにid_countという見出しを付けられる。(以下、赤枠部分)
6,where
- select fromで列の情報を取得するとき、「行の条件を絞る」ためのコマンド。
- 例えば「sampleデータセットのsalesテーブルから、user_idフィールド(列)のうち”19,000より大きいもの”の数を数えた結果を取得せよ」であればSQLの末尾に「where user_id >19000」を追加すればよい。
- 「select count(user_id) from sample.sales where user_id > 19000 」を実行すると以下となり、対象が167個まで減った。
7,コメント
- SQLに関する説明を差し込むことができる。
- 1行のコメントは「–」または「#」に続けて記述する。
- 複数行のコメントは「/*」と「*/」で囲む。
- №6で例示したSQLと以下はまったく同じ内容。赤字部分がコメント。
復習
- SQLの記述作法7つを全て使ったクエリを作成。
- 対象とするテーブルは、自分で作成したきわめて簡単なテーブル。
考察
- まとめ。SQLの記述作法について。基本は大きく7つの要素。①命令(SELECET(参照)が基本)、②関数(COUNT、MAXなど補助機能)、③対象の列名、④対象のテーブル名、⑤AS(見出しを定義)、⑥WHERE(絞り込み条件)、⑦コメント
- SQLは「簡単な英単語で話すように使える」「分岐や繰り返しがなく比較的シンプル」「規格が統一され汎用的に学べる」などの特徴から学びやすい。ライトユーザでも使えるので間口が広く情報も多い。次回は最も基本にして多用するSELECT(参照)について実際に手を動かしながら丁寧に習得していく。
参考書籍
- 集中演習 SQL入門/木田和廣/株式会社インプレス
- おうちで学べるデータベースのきほん/ミック,木村明治/翔泳社
コメント