【入門編】 GoogleSQLの基本構文 – Cloud Spanner

やあ。Cloud Spannerの世界へようこそ。
世界中の巨大なデータを一瞬でさばく、この「夢のようなデータベース」を触ろうとしている君の好奇心を、私は心から歓迎するよ。

Cloud Spannerは、ただのデータベースじゃない。Googleが地球規模で培ってきた「正確さ」と「速さ」を両立させるための、究極の兵器なんだ。でも、難しく考える必要はない。今日はその入り口である「GoogleSQL」について、肩の力を抜いて話そう。

—

1. データベースは「巨大な図書館」だと思えばいい

まず、Spannerの中にデータを入れるとき、君は「本棚」にラベルを貼って整理する司書になったつもりでいてほしい。

GoogleSQLは、その図書館で「あの本を取ってきて」「この本を新しく追加して」と指示するための「共通言語」だ。まずは、その言葉のルール(文法)を整理しよう。

2. データ型:本棚に置く「箱」の形

データ型は、君が本棚に置く「箱の形」を決めることだ。Spannerには、箱の形が明確に決まっている。

  • `INT64`: 整数専用の箱(例: 1, 100, -50)
  • `FLOAT64`: 小数点まで入る箱(例: 3.14)
  • `STRING`: 文字を入れる箱(例: “Hello Spanner!”)
  • `BOOL`: 「はい」か「いいえ」だけを入れる箱(TRUE/FALSE)
  • `TIMESTAMP`: 「いつ」という時間を記録する特別な箱

先輩からのアドバイス:
「迷ったらSTRING」という逃げ道は、データベースの世界では悪手だ。後で計算したり並び替えたりするなら、適切な箱を選ぶことが、高速な検索への第一歩になるよ。

3. 識別子:本棚や箱に付ける「名前」

テーブルや列の名前(識別子)を決めるルールは、実はシンプルだ。

  • 英字、数字、アンダースコア(_)が使える。
  • 先頭は必ず英字であること。
  • 予約語(SELECTやFROMなど)は使えない。

もし名前にスペースを使いたいとか、どうしても予約語を使いたい場合は、バッククォート(` `)で囲めばいい。でも、なるべくなら使わないほうが、コードがずっと読みやすくなるよ。

4. クエリ構築の基本:GoogleSQLの歩き方

さて、実際にデータを取り出すクエリを見てみよう。

— “Users”という本棚から、名前と年齢を抜き出すクエリ
SELECT
name,
age
FROM
Users
WHERE
age >= 20; — 20歳以上の人だけを抽出する条件

  • `SELECT`: どの列(箱)の中身を見るか。
  • `FROM`: どの本棚(テーブル)から持ってくるか。
  • `WHERE`: どんな条件で絞り込むか。

これだけ覚えれば、君はもうCloud Spannerの入り口に立っている。

5. 演算子:データの「料理の仕方」

データを使って計算したり、比較したりするときに使うのが「演算子」だ。

  • 算術演算子: `+`, `-`, “, `/` (足し算や割り算)
  • 比較演算子: `=`, `!=`, `>`, `<` (「同じか?」「より大きいか?」を判定)
  • 論理演算子: `AND`, `OR`, `NOT` (「AかつB」「AまたはB」という複雑な条件を作る)

例として、「20歳以上で、かつ東京に住んでいる人」を探すならこうなる。

SELECT FROM Users
WHERE age >= 20 AND city = ‘Tokyo’;
— ANDでつなぐことで、両方の条件を満たすものだけが残る

—

ここをクリアすれば、基本はバッチリ!

どうだい? 意外とシンプルだろう?

Cloud Spannerの凄さは、これだけシンプルな記述で、「地球の裏側にあるデータと、目の前にあるデータを同時に矛盾なく扱える」という点にあるんだ。君が今書いたそのSQLは、実はとてつもなく巨大なスケールのシステムを動かすための、最初のコマンドなんだよ。

まずは難しく考えず、`SELECT` でデータを取って、`WHERE` で絞り込む。この基本を繰り返すだけで、君はSpannerという巨大な海を自由に泳げるようになる。

もし詰まったら、いつでも戻ってきてほしい。私は君がこの荒波を乗り越えて、素晴らしいエンジニアになるのを待っているよ。

さあ、次はどんなデータを検索してみる?

コメント

タイトルとURLをコピーしました