Python の SQLite を Google Colab を使って5分で始める方法【サンプルコードあり】

5 min

SQLやデータベースについて学べと言われたけど、何から始めて良いか解らない。

データベースに挑戦しようとしているけど、データベースも色々あって独学では大変そう。

と感じている方向けに SQLite の使用方法を紹介します。

本記事を読むと5分で RDB(関係データベース) を始められます。

サンプルコードを使用して SQLite の使用方法を紹介します。

SQLite は Google Colaboratory(略称:Colab)から使用可能です。

広告_零号機

Colab のサンプルコードの全体概要を理解する

3つの目標

本記事で紹介するサンプルコードは、下記の3つを達成することを目指します

データベースを新規に作成する

データベース上に下記構造のテーブルを作成する

id(整数)key(文字列)val(文字列)
1あ行あいうえお
2か行かきくけこ
3さ行さしすせそ
4た行たちつてと

データを登録したり登録したデータを取り出したりする

サンプルコードの構造

今回紹介する処理は3つに分かれています。

  1. SQLiteを使用するクラスの定義
    • 初期化に必要な情報:データベース名
    • 出来ること:
      データベースの作成、テーブル・インデックスの作成、
      データの登録・更新・削除、データの取得
  2. Google ドライブのマウント ※Google ドライブにデータを格納します
  3. メイン処理 ※データ操作
    1. 初期化
    2. テーブルの作成
    3. データの登録(1レコード)
    4. データの取得(1レコード)
    5. データの登録(複数レコード)
    6. データの取得(件数指定)

Googleドライブをマウントする方法についてはこちら

Google Colaboratory で実際に動かす

用意した Colab を実行する場合

下記リンクより Colab を起動し、全てのセルを実行します。

Open In Colab

Colab にてノートブックを作成する場合

1. SQLiteを使用するクラスの定義

Colabで新しいノートブックを作成する方法を参考にノートブックを開き「SQLiteを操作する用のクラスの定義」のセルをコピーします。

※コードが長くなるので本記事には全てのソースコードを記載しておりません。

2. Google ドライブのマウント

Colab にてコードセルを追加して、下記コードをコピーして実行します。

# Googleドライブのマウント
from google.colab import drive
drive.mount('/content/drive')

3. メイン処理を実行する

1. 初期化

Colabにてコードセルを追加して、下記コードをコピーして実行します。

test = Sqlite3Access("test")
test.db_name

Sqlite3Access の引数に指定した名称で Google ドライブ上の Colab が格納されているフォルダに SQLite のデータを蓄積するファイルを作成します。上記例の場合だと、「test.db」というファイルが作成されます。

すでに存在している場合は、test.dbへの接続を確立します。

2. テーブルの作成

データベース作成直後は、テーブル(データを登録する器)が無いのでテーブルを作成します。

データベースへのテーブルの作成にはcreate文を使用します。

Colabにてコードセルを追加して、下記コードをコピーして実行します。

# create文を作成
_sql =  """\
CREATE TABLE testtable(id INTEGER PRIMARY KEY AUTOINCREMENT, key STRING, val STRING)
"""

# create文を実行
test.execute(_sql)
3. データの登録(1レコード)

テーブルにデータを登録します。

テーブルへのデータ登録にはinsert文を使用します。

Colabにてコードセルを追加して、下記コードをコピーして実行します。

# insert文を作成
_sql =  """\
INSERT INTO testtable(key,val) values('あ行', 'あいうえお')
"""

test.execute(_sql)
4. データの取得

テーブルに登録されたデータを取得します。

テーブルからのデータの取得にはselect文を使用します。

Colabにてコードセルを追加して、下記コードをコピーして実行します。

# select文を作成
_sql = """\
select * 
from testtable
"""

test.printSelect(_sql)
5. データの登録(複数レコード)

次に、複数レコードを同時に登録します。

Colabにてコードセルを追加して、下記コードをコピーして実行します。

# insert文を使用して複数レコードを同時に登録する
inserts = []
inserts.append(("か行","かきくけこ"))
inserts.append(("さ行","さしすせそ"))
inserts.append(("た行","たちつてと"))

test.executemany(inserts, 'INSERT INTO testtable(key,val) values(?, ?)')
6. データの取得(件数指定)

テーブルに登録されたデータを取得します。 今回は取得する件数を指定します。

これは、テーブルに何百万レコード登録されている場合などに使用します。

取得するレコード件数を指定する場合、SQLiteではlimitを追加します。

Colabにてコードセルを追加して、下記コードをコピーして実行します。

# select文を作成、先頭3レコードのみを取得
_sql = """\
select * 
from testtable
-- 先頭3レコードのみを取得
limit 3
"""

test.printSelect(_sql)

まとめ

本記事では、下記を中心に Colab で SQLite を使用する方法を紹介しました。

  • データベースを新規に作成する
  • データベース上にテーブルを作成する
  • データを登録したり登録したデータを取り出したりする

次のステップとして下記をおすすめします

多様なデータをDBに格納する

例)スクレイピングした結果Excel から取得したデータCSV から取得したデータをDBに格納する

データを可視化する

例)JupyterDash を使用して可視化する

再利用性を高める

例)インポートして再利用出来るようにオリジナルのモジュールを作成する

ご参考になりましたら twitter をフォローして SNS でシェアして頂ければ幸いです。

【付録】データベースをさらに学びたい方へのおすすめ本

データベースをシステムとして基礎から学びたい方

をおすすめします。

私自身は初めて手に取ったは10年以上前だったので初版でしたが、この本を読むことで、単なるテーブル操作だけでなく、システムとしてみたデータベースの奥の深さを学びました。

リレーショナルデータベースを理論から学びたい方

をおすすめします。

SQLの元になっている関係代数をイメージで表現していたり、正規化についても詳しく説明されており、リレーショナルデータベースについての必要な知識が一通り身に付けられるのでお勧めします。

自身のSQLのスキルにそこそこ自信が持ててきた方

是非、この本を読んで力試しをしてみてください。

正規化、ER図、テーブル設計について学びたい方

データベーススペシャリストがおすすめです。

通常1からテーブル設計をする機会は中々恵まれないと思います。
午後Ⅰ・Ⅱの過去問を解いてみると実践に近いことができるので力が身につくと思います。

【付録】演習

理解を深めるためには、実際に動かしてみるのが一番です。

  1. データ量を(10件、1000件、10万件、1000万件)と変化させたときの、*.dbファイルの容量の推移
    ※Googleドライブの容量は無料だと最大15GBだけど、一体どれくらい登録出来るのだろうか?
  2. テーブルに登録されているデータ量が(10件、1000件、10万件、1000万件)と変化させた場合の先頭10件のレコードを取得する速度の推移(idでの昇順・降順、keyでの昇順・降順、valでの昇順・降順)
    ※データ量や取得方法によって処理速度は変わるのだろうか?
  3. keyにindexをはった場合にも1と2で同じことをやって、indexをはる前と後を比較
    ※indexってよく聞くけど、どれくらい効果があるのだろうか?どういったときに効果が顕著なのだろうか?
  4. 先頭3件のvalカラムに格納されている文字列をカンマ区切りで結合して取得してみましょう
    • 出力イメージ:”あいうえお,かきくけこ,さしすせそ”

ちなみに今回は下記 Chromebook を使用しました。
14.0型フルHD × Core i3 × メモリ8GB を満たす数少ない端末です。
軽くて持ち運びしやすく開発に耐えうるスペックなのでおすすめです。

富士通|FUJITSU ノートパソコン FMV Chromebook 14F(タッチパネル) ダーククロム FCB143FB [14.0型 /Chrome OS /intel Core i3 /メモリ:8GB /SSD:128GB /タッチパネル対応 /2021年12月モデル]【point_rb】

価格:70,510円
(2022/2/23 18:35時点)
感想(1件)

Chromebook でプログラミングを始める方法

広告_零号機-エリア2
kewton

kewton

大学院卒業後、某大手SIerで10年以上SEとして従事。
社会人3年目までに基本情報・応用情報技術者、データベーススペシャリスト、簿記3級・2級を取得。
基幹系システム・IoTシステム開発のプロジェクト経験多数。AI活用システムの企画・プロト開発経験あり。
強みは、プロマネだけでなく自身で開発も実施してきたこと。
【扱える言語】
C#、java、python、javascript、Excel VBA
【扱えるDB】
oracle、sql server、postgreSQL、mongoDB

FOLLOW

カテゴリー:
関連記事

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA