GCPのCloud SQLデータベースにSQLでテーブルを作成する方法

tables

photo credit: irio.jyske Ready fo dinner via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

GASからJDBCサービスを使ってCloud SQLのデータベースにアクセスする方法をシリーズでお伝えしています。

前回の記事はこちら。

GCPのCloud SQLインスタンスにSQL文でデータベースを作成する方法
GASからJDBCサービスを使ってCloud SQLのデータベースにアクセスする方法をシリーズでお伝えしています。今回はGCPのCloud SQLインスタンスにSQL文でデータベースを作成する方法です。

GCPのCloud Shellで、SQL文によりCloud SQLインスタンスにデータベースを作る方法をお伝えしました。

今回は、その続きですね。

データベースができましたので、「テーブル」を作っていきます。

ということで、GCPのCloud SQLデータベースにSQLでテーブルを作成する方法です。

テーブルとは何か、またその仕組についてもお伝えしますよ。

では、行ってみましょう!

スポンサーリンク

前回のおさらい

さて、本シリーズの最終目標は、GASからCloud SQLに作成したデータベースにアクセスをすることです。

前回までで、以下の手順を進めて来ました。

  1. GCPのCloud SQLにインスタンスを作成する
  2. Cloud SQLインスタンス内にデータベースを作成する

GCPのCloud Shellを使うと、Cloud SQLインスタンスに接続でき、その際にMySQLにログインします。

MySQLにログインすると、SQLによりデータベースが操作できるようになり、CREATE DATABASE文でデータベースを作成したわけです。

データベースができたから、GASからアクセスしてデータを操作していこう…!

と、なるわけですが、せっかくなのでもう少しGCPコンソールでデータベースを操作して、慣れておくのも良いかも知れません。

ということで、次の段取りである「テーブルの作成」も、このままCloud ShellでSQLを使って進めてみましょう。

テーブルとは?

データベースを作成したからといって、すぐさまデータを格納できる状態になったわけではありません。

実際のデータは、データベース内の「テーブル」に格納していきますので、続いてテーブルを作成する必要があります。

テーブルとはデータの置き場のことで、データベース内に複数作成することができます。

個々のテーブルには名前をつけることができ、その「テーブル名」で識別をします。

Cloud SQLインスタンスとデータベースとテーブルの関係

レコードとフィールド

テーブルは、以下の図のようにExcelやスプレッドシートのシート上の格子状の表をイメージしてもらえると良いと思います。

テーブル・カラム・レコードのイメージ

「行」にあたる要素を「レコード」といい、一件のデータをひとつのレコードに格納していくことになります。

「列」にあたる要素を「カラム」といいます。

(カラムは、ときに「フィールド」と呼ばれることもあります。)

カラムには、それぞれ名前をつける必要があり、それを「カラム名」といいます。

また、同じカラムには、同じ種類のデータ(例えば、整数・8桁の文字列・日付など)で揃える必要があり、それを「データ型」といいます。

さらに、テーブルのうちいずれかのカラムについて、レコードを識別するための「主キー」に設定する必要があります。

すなわち、テーブルを作るには、以下を指定してあげる必要があるということですね。

  • テーブル名
  • カラムとそのカラム名&データ型
  • 主キーにするカラム名

USE文で使用するデータベースを選択する

では、実際にSQLでテーブルを作成していきましょう。

テーブルを作成する前に、インスタンス内のどのデータベースを操作対象とするか、選択して上げる必要があります。

データベースを選択するには、以下のUSE文を使います。

USE データベース名;

今回は「guestbook」という名前のデータベースを操作したいので、以下SQLを実行すればOKですね。

USE guestbook;

実行すると、以下のように表示されますね。

SQLでデータベースを選択した

Database changed

CREATE文でテーブルを作成する

続いて、選択したデータベースにテーブルを作成します。

テーブルを作成するには、CREATE TABLE文を使います。

CREATE TABLE テーブル名 (カラム名1 データ型1, カラム名2 データ型2, … , PRIMARY KEY(カラム名));

テーブル名の後のカッコ内に、作成するカラム名とそのデータ型をカンマ区切りで列挙します。

そして最後のPRIMARY KEYの後のカッコ内に、主キーとするカラム名を指定します。

例えば、以下のようにして実行してみましょう。

CREATE TABLE entries (guestName VARCHAR(255), content VARCHAR(255),
entryID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(entryID));

これは、以下の3つのカラム名を作成するものです。

カラム名 データ型 データ型の意味 補足
guestName VARCHAR(255) 255バイト以内の文字列
content VARCHAR(255) 255バイト以内の文字列
entryID INT 整数 主キー、NULLを許可しない、自動でカラム内の最大値+1の値を設定

カラム「entry ID」には色々と追加の命令が付与されていますね。

「NOT NULL」を付与すると、値が存在しない状態を表す「NULL」を許可しないように設定できます。

「AUTO_INCREMENT」を付与すると、自動でカラム内の最大値+1の値を設定するようにできます。

テーブルのカラムを確認する

うまく実行できているかを確認してみましょう。

テーブルのカラム情報を表示するにはSHOW COLUMNS文を使います。

SHOW COLUMNS FROM テーブル名;

今回の場合はこうですね。

SHOW COLUMNS FROM entries;

実行すると、以下のようにカラム構成を確認することができます。

SQLでテーブルのカラム構成を表示する

まとめ

以上、GCPのCloud SQLデータベースにSQLでテーブルを作成する方法をお伝えしました。

テーブルとその仕組みについてもぜひおさらいしておきましょう。

データ型やカラムの設定などについては、あまり触れすぎると深くなりすぎるので、またの機会にきちんとお伝えできればと思います。

では、次回は作成したテーブルにデータを挿入していきたいと思います。

GCPのCloud SQLデータベースのテーブルにSQLでレコードを追加する方法
GASからJDBCサービスを使ってCloud SQLのデータベースにアクセスする方法をシリーズでお伝えしています。今回は、GCPのCloud SQLデータベースのテーブルにSQLでレコードを追加する方法です。

どうぞお楽しみに!

連載目次:GASのJDBCサービスでCloud SQLのDBを操作する

GASのデータベースの多くはスプレッドシートを使用しますが、ちゃんとしたデータベースを使用したい場合があります。そこで、JBDCサービスを使ってCloud SQLを使用する方法をシリーズでお伝えしていきます。
  1. GASのデータベースとして、なぜCloud SQLが有効なのか?その概要とメリット
  2. GASでデータベースとして使用するCloud SQLインスタンスを作成する方法
  3. GCPのCloud Shellを使ってCloud SQLインスタンスに接続する方法
  4. GCPのCloud SQLインスタンスにSQL文でデータベースを作成する方法
  5. GCPのCloud SQLデータベースにSQLでテーブルを作成する方法
  6. GCPのCloud SQLデータベースのテーブルにSQLでレコードを追加する方法
  7. GASのJDBCサービスでCloud SQLデータベースに接続をする方法
  8. GASのJDBCサービスでCloud SQLデータベースにクエリを実行する方法
  9. GASのJDBCサービスでCloud SQLにクエリを実行した結果を取り出す方法
  10. GASのJBDCサービスでCloud SQLのデータベースにレコードを追加する方法
  11. GASのJDBCサービスでCloud SQLのデータベースに複数のSQLを一括で実行する方法
タイトルとURLをコピーしました