この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。
今回はSQLの基本構文(前半)について書く。
フィールドの参照・並び替え
前回のおさらい
- Big Queryサンドボックスを起動し、アカウントを作成。
- その中にプロジェクト・データセット・テーブルを作成。(フォルダの中にファイルを作るイメージ)
- SQLの記述作法を実際に試しながら確認。
- 今回は命令の基本にして王道、selectについて様々な操作を実際に試して習得。
指定したフィールドの全行を取得
- 用語の再確認。この記事では「フィールド」とは、テーブル(表)における「列単位のデータ」を指す。
- 基本おさらい。selectで取得するフィールド名を指定し、fromで対象となるテーブルを指定。
- 試験対策。この操作を「射影」と呼ぶ。(あまり耳慣れない言葉だが、あるモノに光を当てた部分的な影のようなイメージ。データベースは数学が元なのでこのような用語が使われることがある。将来的には無くなると思うが。)「ある関係(テーブル)から、指定した属性(列)だけを抽出する演算である。通常は、重複したタプル(行)は排除される」。
- フィールドは複数の設定も可能。その場合はフィールド名をカンマで区切る。
- 以下は「name」と「attraction_id」の全行を取得する命令と結果。
取得したフィールドを並び替える
- 行の並び替えは「order by」。
- 昇順のascは省略可能。降順のdescは明記が必要。
- 以下は3つのフィールドを取得し、「order_id」をキーに昇順で並び替える命令と結果。
- なお、一つ目のキーは昇順、二つ目のキーは降順という命令も可能。その場合はカンマでつなげる(order by 列1 asc,列2 dec)
- また、order byの列名はテーブルの列番号でも指定可能(1や2のように)
全てのフィールドを取得する
- フィールド名のかわりに「*」を記述すると全てのフィールドを取得できる。
- かつてはテーブルの中身をざっと見るために用いていたが、今はあまり使わない。
- なぜなら、まずBig Queryはテーブルプレビューが直感的に確認できるから。(以下図のように)
- また、レコード数が非常に多いテーブルに対して実行するとBig Queryの料金が予想外にかかるリスクがあるから。
- なお、特定のフィールドを除きたいときはexceptを使う(たとえば select * except(cost) のように)
フィールドの作成・演算・別名付与
フィールドの作成
- 元のテーブルに存在しない新しいフィールドを作成できる。
- これを直接使うことはあまりないが、以降の説明をしっかり理解するためのステップとして確認。
- 以下は、数値の100,文字の”東京”(ダブルクォーテーションで囲む),日付の”2020-01-01″を作成した例。
- 赤枠内のとおり、フィールドが作成されている。(このテーブルは1177行なので、その分だけ)
フィールドの演算
- 取得したフィールドに対して四則計算などの演算を行い、その結果を新しいフィールドに格納。
- フィールドの値は演算できる。SQLでの四則計算はエクセルと同様なので理解しやすい。
- 「足し算は+、引き算は-、掛け算は*、割り算は/」。()で括った計算が優先される。
- 以下は、「フィールドの値と定数の演算結果」パターンと、「フィールド間の演算結果」パターン。
フィールドの別名付与
- 前回の記事(SQLの記述作法)の「SQLの7つの要素」でも触れた「as」について。
- 「as」によりフィールドに見出し(別名)をつけることができる。
- 例えば先ほどの例(上図)だと「revenue/quantity」の結果が「f1_」となっておりわかりづらい。
- そこで、「revenue/quantity」のあとに「as unit_price」と記述すると、見出しが「unit_price」となってわかりやすい。
考察
- SQLの基本構文について。基本かつ王道の命令「select from」について、フィールド(表テーブルにおける列単位のデータ)の操作を試した。具体的にはフィールドの参照・並び替えや、フィールドの作成・計算・別名付与など。
- SQLを学ぶにあたり効果があると思えること。「①実際に手を動かし、一つ一つSQLを実行する」「②物語をつむぐようにワクワクしながら取り組む」「③言語のように使うことを意識する」「④複数の書籍を参考にする」「⑤ブログなどで教える側としてアウトプットする」
参考書籍
- 集中演習 SQL入門/木田和廣/株式会社インプレス
- データベーススペシャリスト2022年版/三好康之/翔泳社
- おうちで学べるデータベースのきほん/ミック,木村明治/翔泳社
コメント