42 ポイント 投稿者 civilian 2026-04-05 | 7件のコメント | WhatsAppで共有

SQLは、本物のデータで学んでこそ実力になります

SQLチュートリアルはたくさんあります。ですが、その多くは employees テーブルが3つ出てくる例で終わってしまいます。

実務で向き合うのは、そんなものではありません。21個のテーブルが外部キーで結び付けられ、10年分の注文データから月別の売上推移を
抽出しなければならず、離脱リスクの高い顧客も見つけ出す必要があります。

だから作りました。

https://github.com/civilian7/sql-tutorial — 現実的なEコマースのデータベースで学ぶSQL

コンピューターショップ10年分のデータをシミュレーションします:

  • 21個のテーブル、18個のビュー、5個のトリガー — 実務レベルのスキーマ
  • 23万〜1000万行 — 規模を選べるデータ生成器
  • 21個のレッスン — SELECTからウィンドウ関数、再帰CTE、トリガーまで
  • 111問の練習問題 — 初級45問、中級36問、上級30問
  • 日本語/英語の完全対応 — データと文書の両方が二言語対応
  • DB方言の比較 — SQLite, MySQL, PostgreSQL, SQL Server, Oracle

データは現実的です。ブラックフライデーには売上が伸び、夏には注文が減り、上位20%の顧客が売上の60%を占めます。
登録だけして注文しない顧客も25%います。

pip install -r requirements.txt
python generate.py --size small
# output/tutorial.db 생성 (SQLite, ~29MB)

SQLの専門家ではない開発者が作ったプロジェクトです。誤っている部分や、より良い方法があれば、Issues/PRで知らせてください。

GitHub: https://github.com/civilian7/sql-tutorial

7件のコメント

 
civilian 2026-04-10

機能を大幅に強化した2.0をリリースしました

 
bbulbum 2026-04-08

素晴らしいプロジェクトですね

 
huiya 2026-04-08

おお、素敵ですね

 
sygys10293 2026-04-08

とてもよくできているのでコメントを残します。まだ output オプションが sqlite しかないようですね。postgresql を待っています。
とても良いツールを作ってくださってありがとうございます

 
mbh023 2026-04-07

Gooood

 
jhk0530 2026-04-05

showで上げてください〜

 
civilian 2026-04-05

私が開発しているクエリブラウザの基本サンプルとして提供するために作り始めたもので、
コードとドキュメントの作成はAI(Claude)が行いました。