SQL– category –
SQL関連のカテゴリ
-
SQL
JOINの種類を解説!INNER/LEFT/RIGHT/FULLの違いとは?
SQLで複数のテーブルを結合してデータを取得したい場合、欠かせないのが「JOIN」構文です。しかし、INNER・LEFT・RIGHT・FULLと種類が多く、「どれを選べば良いかわからない…」という悩みをよく聞きます。 本記事では、各JOINの違いを図解付きでわかりやす... -
SQL
SQL:MERGE文でINSERTとUPDATEを一度に行う効率的な方法
MERGE文とは? SQLのMERGE文は、対象テーブルにデータが存在する場合はUPDATE、存在しない場合はINSERTを1回の処理でまとめて行える便利な構文です。従来は「UPDATE → 該当しなければINSERT」といった2回の処理が必要でしたが、MERGEを使うことで1回のSQL... -
SQL
SQL:結合順序を意識してクエリ最適化を行う方法
SQLでパフォーマンスを高めるうえで「結合順序(Join Order)」は非常に重要な要素です。同じ結果を返すクエリでも、テーブルの結合順序によって処理時間が大きく変わることがあります。 この記事では、結合順序を意識したSQLの最適化方法を、実例とともに... -
SQL
SQL:インデックスヒント(INDEX HINT)でクエリ最適化を行う方法
1. インデックスヒントとは? SQLの**インデックスヒント(INDEX HINT)**とは、データベースに対して「このテーブルでは特定のインデックスを使用して実行してほしい」と明示的に指示するための構文です。通常、DBエンジン(オプティマイザ)が自動で最適... -
SQL
SQL:ウィンドウ関数(OVER句)でランキング・累計を計算する
データ分析やレポート作成では、「順位付け」 や 「累計」 のような集計処理がよく登場します。従来はサブクエリや自己結合を使う必要がありましたが、SQLの ウィンドウ関数(OVER句) を使えば簡潔に記述できます。この記事では、代表的な使い方と主要DBM... -
SQL
SQL:NOT IN と NOT EXISTS の違いとパフォーマンス比較
SQLでサブクエリを使って除外条件を指定する際に利用される「NOT IN」と「NOT EXISTS」。両者の動作の違いやNULLの扱い、パフォーマンス差を実例付きで徹底解説します。 EXISTS は ANSI SQL(国際標準SQL)に含まれる構文 のため、ほぼすべてのリレーショ... -
SQL
SQL便利技:PIVOTとUNPIVOTで自由自在に表を変換する方法
SQLを使ってデータを扱うとき、表の形を「横持ち」や「縦持ち」に変換したい場面は多々あります。例えば、月ごとの売上を列ごとに並べたい、あるいはアンケート結果を1列にまとめたいなど。 こうした「表の回転」に便利なのが PIVOT と UNPIVOT です。本記... -
SQL
DENSE_RANKとRANKの違いを使い分けるランキング便利技
SQLでデータに順位を付けたいとき、よく使われるのが RANK と DENSE_RANK です。どちらもウィンドウ関数として利用でき、同点がある場合にどう順位を振るかが異なります。 「売上ランキングを作りたい」「部門ごとのTOP3を出したい」といった実務シーンで... -
SQL
正規表現(REGEXP)でSQLがもっと楽になる!実践パターン集
SQLの検索でよく使われる LIKE 句は便利ですが、複雑な条件指定には限界があります。そこで強力な武器となるのが 正規表現(REGEXP)。この記事では、基本的な使い方からよく使うパターン、さらに「SQLで利用できる正規表現の一覧」をまとめました。 1. RE... -
SQL
PL/SQL:BULK COLLECTとFORALLを使った効率的な大量データ処理
Oracle PL/SQLを使って大量データを処理する際、1行ずつループして処理を行うとパフォーマンスが低下します。このようなケースで活躍するのが BULK COLLECT と FORALL です。 これらを活用することで、SQLとPL/SQL間のコンテキスト切り替えを最小限に抑え...
