SQL
SQL(Structured Query Language)はリレーショナルデータベースの標準クエリ言語で、データを宣言的に定義・操作します(DDL/DML/DQL/DCL)。
目的
リレーショナルデータベースのための統一的で宣言的なデータ操作言語を提供し、アプリケーションとストレージを分離する。
メカニズム
宣言型であり、「どう」ではなく「何」を記述し、オプティマイザが実行計画を生成する。下位言語は DDL(CREATE/ALTER/DROP)、DML(INSERT/UPDATE/DELETE)、DQL(SELECT)、DCL(GRANT/REVOKE)である。サブクエリ、JOIN、集約、ウィンドウ関数、CTE に対応する。
ユースケース
- リレーショナルデータベースの検索と操作
- データ分析とレポート
- ETL でのデータ変換
- ORM の裏側での生成
例
- 入力
SELECT name FROM users WHERE age > 18OutputNames of adult usersDeclarative query
よくあるエラー
- Concatenating SQL strings causes injection
- Use parameterized queries
関連用語
NoSQL
NoSQLは非リレーショナルデータベースの総称である。ドキュメント、キー・バリュー、カラムファミリー、グラフの各モデルを含み、スケーラビリティと柔軟なスキーマのために設計されている。 用語集
JOIN
JOIN は、結合条件によって複数テーブルの行を組み合わせる SQL 操作である。内部結合、左/右/完全外部結合、交差結合などの型がある。 用語集
Index
インデックス(Index)は、クエリを高速化するために維持される補助データ構造(B+ 木、ハッシュなど)である。書き込みオーバーヘッドと引き換えに、空間で時間を買う。 用語集
Primary Key
主キー(プライマリキー)とは、テーブル内の各行を一意に識別する列または列の組み合わせである。NULL不可かつ一意であり、行の識別子となる。 用語集
Transaction
トランザクションは、ACID 特性を満たす単一の論理単位として実行される操作のグループである。すべて実行されるか、まったく実行されないかのどちらかである。 用語集
関連ツール
SQL フォーマッター
Beautify or minify SQL queries online. Uppercase keywords, indent clauses, or compress to a single line。無料、プライベート、100%クライアントサイド。 ツール
SQL ビューティファイア
キーワード大文字化と句インデント付きで SQL を整形出力。 ツール
SQL ミニファイア
SQL を単一行に圧縮し、コメントと余分な空白を削除。 ツール
SQL 正規化ツール
SQL を正規化:キーワード大文字、単一スペース、トリム。 ツール
SQL 差分比較
2 つの SQL ステートメントを行単位で比較。 ツール