メインコンテンツへスキップ

3.5.1 データベースロードマップ:1つのファイルを越えて残る表

この節は第3章の選択内容です。実際のプロジェクトで、データが CSV や DataFrame になる前にどこへ置かれるのかを知りたいときに読みます。

まずデータベースマップを見る

データベース選択学習ロードマップ

まずこの比較を覚えます。

CSV または DataFrameデータベース
1回のローカル分析に向く長期的な共有データに向く
移動しやすいクエリ、権限、更新に向く
たいてい1ファイルまたは1表関連する複数テーブルになりやすい

ここで DBA になる必要はありません。データを問い合わせ、Python へつなげられれば十分です。

SQLite クエリを一度動かす

sqlite_first_loop.py を作ります。Python 付属の sqlite3 を使います。

import sqlite3

conn = sqlite3.connect(":memory:")
conn.execute("CREATE TABLE orders (category TEXT, amount INTEGER)")
conn.executemany(
"INSERT INTO orders VALUES (?, ?)",
[("book", 120), ("tool", 80), ("book", 150)],
)

rows = conn.execute(
"SELECT category, SUM(amount) AS total FROM orders GROUP BY category ORDER BY category"
).fetchall()

for category, total in rows:
print(category, total)

出力:

book 270
tool 80

これはデータベースの基本ループです。テーブルを作り、行を入れ、SQL で質問し、結果表を受け取ります。

この順番で学ぶ

順番読む練習すること
13.5.2 リレーショナルデータベース基礎表、行、列、主キー、外部キー
23.5.3 SQL 基礎SELECTWHEREJOINGROUP BY
33.5.4 Python データベース操作sqlite3、Pandas の読み書き、クエリ結果
43.5.5 データベース設計テーブル分割、重複削減、関係の整理

合格ライン

データベースと CSV の違いを説明し、SELECT ... GROUP BY クエリを1つ書き、Python から結果を読めれば、この選択小節は合格です。