Google ColabでSQLを実行する
この記事では、「初心者向け簡単なSQL入門」の続編として、Google ColabでSQLを簡単に実行できることを紹介します。
はじめに
Google Colabatory(Colab)は、ウェブブラウザ上でPythonプログラムを作成・実行できる環境です。Googleのアカウントを持っていれば無償で利用でき、機械学習のライブラリがインストール済みのため、研究・教育分野で広く利用されています。
Colabでは、組み込み型のリレーショナルデータベースSQLlite
がデフォルトで利用でき、クライアント・サーバ型のPostgreSQL
も簡単にインストールして利用できます。無料プランでは大量のデータを扱うことができず、一定時間が経過するとシステムがリセットされるという制限がありますが、小さなデータベースを作ってSQLの動作を確認するだけならば問題にならないと思います。
なお、Colabに関するよくある質問は、公式ページの「Colaboratory よくある質問」に記載されています。
Colabへのログイン
まず、ウェブブラウザに以下のURLを入力して、「Colabへようこそ」のページを開きます。
https://colab.research.google.com/?hl=ja
表示された画面右上の青い「ログイン」のボタンを押して、Googleにログインします。なお、すでにログインしている場合は、上記画面が表示されずに以下の「ノートブックを開く」の画面が直接表示される場合があります。
表示された画面左下の青い「+ ノートブックを新規作成」のボタンを押して、ノートブックを作成します。Untitled0.ipynb
というような名前のノートブックが作成され、Jupyterによって開かれた状態になります。なお、ノートブックは一定時間ごとに自動的にGoogleドライブに保存されます。
SQLの実行(SQLite)
この章では、SQLiteを使用する場合について説明します。
最初にデータベースに接続します。ノートブックのセルに以下のスクリプトを入力し、左端に表示されている黒丸形の実行ボタンを押してください。
# SQLiteのメモリデータベースに接続する
%reload_ext sql
%sql sqlite:///:memory:
各コマンドの意味は以下の通りです。
- 1行目:
#
で始まる行はコメントです。入力する必要はありません。 - 2行目:
%
で始まるコマンドはマジックコマンドと呼ばれるもので、これ以降の%sql
または%%sql
でSQLを使用できるように設定します。なお、%load_ext sql
と書いても構いません。 - 3行目: SQLiteのメモリデータベースを作成します。SQLiteは組み込み型のデータベースなので、ユーザ名とパスワードは不要です。メモリデータベースはメモリ中に作成した一時的なデータベースで、セッションが終了すると自動的に消去されます。
実行ボタンの左側にチェックマークが表示され、エラーメッセージが何もなければ接続成功です。セルの下枠にカーソルを合わせると表示される「+ コード」のボタンを押すと、新しいセルが追加されます。
次に、テーブルを作成します。追加されたセルに以下のスクリプトを入力し、実行ボタンを押してください。このスクリプトは、商品テーブルがすでにあれば削除して作り直し、7件のデータを商品テーブルに追加します。
# 商品テーブルを作成する
%%sql
DROP TABLE IF EXISTS 商品;
CREATE TABLE 商品(品番 INT UNIQUE, 品名 TEXT, 分類 TEXT, 価格 INT);
INSERT INTO 商品 VALUES(1,'トマト','野菜',290), (2,'タマネギ','野菜',240), (3,'キャベツ','野菜',190),
(4,'レタス','野菜',140), (5,'いちご','果物',490), (6,'みかん','果物',390), (7,'りんご','果物',190);
これで準備は完了です。新しいセルを追加して、任意のSQL文を入力し、実行させることができます。セルの先頭に%%SQL
の行を入れるのを忘れないでください。
例えば、商品テーブルの内容をすべて表示するには、以下を入力します。なお、実行するSQL文が1つだけの場合は、SQL文の文末を示すセミコロン(;)は入力不要です。
# 商品テーブルを表示する
%%sql
SELECT * FROM 商品
SQLの実行(PostgreSQL)
この章では、PostgreSQLを使用する場合について説明します。
PostgreSQLはColabに標準ではインストールされていないため、自分でインストールする必要があります。インストールの手順は簡単で、デフォルトのユーザpostgres
でデフォルトのデータベースpostgres
を使用する場合は、Colabのログイン後に以下のスクリプトを実行してください。
# PostgreSQLサーバをインストールする
!sudo apt-get -y -qq update
!sudo apt-get -y -q install postgresql
!sudo service postgresql start
# postgresユーザのパスワードを`postgres`に設定する
!sudo -u postgres psql -U postgres -c "ALTER USER postgres PASSWORD 'postgres';"
# postgresユーザでpostgresデータベースに接続する
%reload_ext sql
%sql postgresql://postgres:postgres@localhost/postgres
商品テーブルの作成以降は、SQLiteの場合と同じです。
おわりに
この記事では、Colabを使用することにより手軽にSQLを試すことができることを紹介しました。SQLについてのご理解を深めていただければ幸いです。
Discussion