Skilore

SQL とクエリマスタリー

SQL はデータ操作の共通言語。基本構文から高度なウィンドウ関数、クエリ最適化、実行計画分析、データベース固有機能まで、SQL の全てを体系的に解説する。

4 セクション
19 ガイド

01Basics

01

SQL概要 — 歴史・RDBMS・方言・リレーショナルモデル

SQLはリレーショナルデータベースを操作するための宣言型言語であり、1970年代の誕生以来、データ管理の世界標準として君臨し続けている。本章ではSQLの歴史的背景からリレーショナルモデルの理論、主要RDBMSの特徴と選定基準、SQL方言の違い、そしてSQLの分類体系までを体系的に学ぶ。

02

CRUD操作 — SELECT / INSERT / UPDATE / DELETE 完全ガイド

CRUDはCreate(作成)、Read(読取)、Update(更新)、Delete(削除)の頭文字であり、データベース操作の最も基本的な4つの操作を表す。あらゆるアプリケーションのデータ層はこの4操作の組み合わせで構成される。

03

JOIN — INNER / LEFT / RIGHT / FULL / CROSS

JOINはリレーショナルデータベースの核心機能であり、複数テーブルに分散したデータを結合条件に基づいて一つの結果セットにまとめる操作である。E.F. Coddが1970年に提唱した関係代数において、JOINは「直積(Cartesian Product)」と「選択(Selection)」の合成操作として定義されている。

04

集約 -- GROUP BY・HAVING・集約関数

集約操作は複数行のデータを要約して単一の値に変換する処理であり、レポーティングや分析クエリの基盤となる。集約関数はSQL標準で定義された基本操作であり、GROUP BYやHAVINGと組み合わせることで、あらゆるビジネスレポートの土台を構築できる。

05

サブクエリ — 相関 / 非相関・EXISTS・IN

サブクエリはクエリの中にネストされたクエリであり、複雑な条件指定やデータ変換を単一のSQL文で表現する強力な手段である。

02Advanced

06

ウィンドウ関数 — ROW_NUMBER・RANK・LAG/LEAD

ウィンドウ関数はGROUP BYのように行を折りたたまず、各行に対して「窓」を定義し、その範囲内での集約・順位付け・前後行参照を行う機能である。SQL:2003で標準化され、分析クエリにおいてサブクエリや自己結合を排除する最も強力なツールの一つである。

07

CTE / 再帰クエリ — WITH句・階層データ

CTE(Common Table Expression)はクエリを論理的なブロックに分割する名前付き一時結果セットであり、再帰CTEは木構造や階層データの探索を可能にするSQLの強力な機能である。

08

トランザクション — ACID・分離レベル・デッドロック・MVCC

トランザクションはデータベース操作の論理的な作業単位であり、ACID特性によってデータの一貫性と信頼性を保証する、データベースシステムの根幹を成す仕組みである。本章では、ACID特性の各要素を内部実装レベルで理解し、分離レベルの選択基準、デッドロックの回避・検出戦略、そしてMVCC(多版型同時実行制御)の仕組みまでを体系的に習得する。

09

インデックス — B-Tree・GiST・GIN・部分インデックス・カバリングインデックス

B-Tree、GiST、GIN、BRIN、部分インデックス、カバリングインデックスなど、データベースインデックスの内部構造と設計戦略を理解し、クエリ性能を最適化する。本章では、インデックスが「なぜ速いのか」を内部実装レベルで理解し、適切なインデックスを選択・設計するための判断基準を体系的に習得する。

10

クエリ最適化 — EXPLAIN・実行計画・統計情報・クエリリライト

クエリ最適化はデータベースのパフォーマンス問題の根本原因を特定し、論理的に解決するプロセスであり、EXPLAINコマンドによる実行計画の解読がその第一歩となる。本章では、EXPLAIN出力の各要素を正確に読み解き、スキャン方式・結合方式の選択基準を理解し、統計情報とクエリリライトによる最適化手法を体系的に習得する。

03Design

04Practical

15

PostgreSQL固有機能 — JSONB・配列型・範囲型・全文検索・拡張機能

PostgreSQLは「世界で最も先進的なオープンソースRDBMS」を標榜し、JSONB、配列型、範囲型、全文検索、拡張機能(Extension)など他のRDBMSにはない豊富な機能を提供する。これらを適切に使いこなすことで、NoSQLの柔軟性とRDBMSのトランザクション整合性を両立した堅牢なデータ基盤を構築できる。本章ではこれらのPostgreSQL固有機能について、内部実装レベルの仕組みからWHYの理解まで含めて徹底的に解説する。

16

DBセキュリティ — 認証・認可・暗号化・SQLインジェクション・監査

データベースセキュリティは多層防御(Defense in Depth)の原則に基づき、ネットワーク、認証、認可、暗号化、入力検証、監査の各層で脅威を防ぐ包括的な取り組みである。SQLインジェクションは20年以上にわたりOWASP Top 10に入り続ける最も深刻な攻撃手法であり、パラメータ化クエリによる完全な防御が必須だ。本章ではPostgreSQLを中心に、データベースセキュリティの設計・実装・運用を内部実装レベルまで含めて徹底的に解説する。

17

パフォーマンスチューニング — 接続プール / キャッシュ / クエリ最適化

データベースのレスポンスタイムを劇的に改善する実践テクニック。接続プール、キャッシュ戦略、スロークエリ分析を体系的に学ぶ。

18

ORM 比較 — Prisma / TypeORM / Drizzle / SQLAlchemy

主要 4 つの ORM を機能・パフォーマンス・開発体験の観点から比較し、プロジェクトに最適な ORM を選択するための実践ガイド。

19

NoSQL 比較

MongoDB、Redis、DynamoDB の特性を比較し、RDB との使い分けとポリグロット永続化の設計戦略を実践的に習得する。本章ではNoSQLの理論的背景から各データベースの内部アーキテクチャ、データモデリングパターン、パフォーマンス特性までを掘り下げ、プロダクション環境でのハイブリッドアーキテクチャ設計を可能にする知識を提供する。