SQL

SQL

ウィンドウ関数の累積和と移動平均:ROWS BETWEENの使い方

MySQLのウィンドウ関数で累積和と移動平均を計算する方法を、日次売上データの実例で解説します。SUM/AVGのROWS BETWEEN構文、ROWSとRANGEの違い、フレーム不足時の注意点まで整理。MySQL 8.0対応。
SQL

MySQLデッドロックの原因と回避策:ロック順序・短いトランザクション

MySQLのInnoDB環境でデッドロックが起きる典型シナリオを実行例で確認し、ロック順序の統一・短いトランザクション・インデックス設計の3つの回避策を整理します。自動検出の仕組みとアプリ側のリトライ実装もカバー。MySQL 8.0対応。
SQL

MySQLの論理削除と物理削除:deleted_atの実装と注意点

MySQLで論理削除(soft delete)を実装するとき、deleted_at と is_deleted の違い・物理削除との使い分け・UNIQUE 制約衝突の解決策を実例で解説します。MySQL 8.0 対応。
SQL

N+1問題の仕組みと解決パターン:JOINとIN句で防ぐ方法

SQLやORMで発生するN+1問題の仕組みを、MySQLの実例で解説します。JOINで1クエリにまとめる方法とIN句バルクフェッチの2つの解決パターンを比較し、ORMのeager loading活用法や落とし穴も整理。
SQL

MySQLの主キー・外部キー設計:自然キーとサロゲートキーの基本

MySQLの主キーと外部キーの設計指針を実例つきで解説します。自然キーとサロゲートキーの違い、外部キーのON DELETE・ON UPDATEオプション(CASCADE/RESTRICT)の挙動を表で整理しています。MySQL 8.0対応。
SQL

データベース正規化の基本:第1・第2・第3正規形を実例で解説

データベースの正規化(1NF〜3NF)を受注テーブルの実例で段階的に解説します。繰り返しグループ・部分従属・推移従属それぞれの問題点と解消手順をSQL付きで整理。初心者〜中級者向け、MySQL 8.0対応。
SQL

MySQLのトランザクション分離レベル:ACID・異常現象を整理

MySQLのACID特性と4つのトランザクション分離レベルを実例つきで解説します。ダーティリード・ノンリピータブルリード・ファントムリードの違いと、デフォルトのREPEATABLE READで何が防げるかを表で整理しました。
SQL

SQLインジェクションの仕組みと対策:プレースホルダで防ぐ方法

SQLインジェクションの仕組みを脆弱なコード例で確認し、プレースホルダ(プリペアドステートメント)による防御方法をPHP・Python・Node.jsの実例で解説します。MySQLで動く実用コード付き・初心者向け。
SQL

UNIONとUNION ALLの違いと使い分け:重複排除と性能を実例で解説

SQLで複数SELECT結果を縦結合するUNIONとUNION ALLの挙動の違いを実例で解説します。重複排除の仕組み・性能差の理由・ORDER BY/LIMITとの組み合わせ方をMySQL 8.0対応で整理。
SQL

MySQLでEXPLAINを読む方法 — type列の意味を理解する

MySQLのEXPLAINが返す type・key・rows・Extra 各列の意味と読み方を、具体的なテーブルを使って解説します。type=ALL や Using filesort が出たときの改善策も紹介。MySQL 8.0 対応。