「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

SQL:特定の日付時点で有効な住所情報を取得する方法

SQL:特定の日付時点で有効な住所情報を取得する方法

顧客の有効住所などを管理しているテーブルからある特定の日付時点で有効な住所を取得する方法をメモしておきます。 特定の日付時点で有効な住所情報を取得するサンプル サンプルテーブル 「CLIENT_ADDRESS」テーブル以下の様に顧客ID(C …

SQL:範囲検索する方法

SQL:範囲検索する方法

SQLで範囲検索する方法をご紹介します。 サンプルテーブル 以下の商品テーブル「goods」を元に説明します。 単純なレコード件数の取得 SQL SQLはWHERE句にBETWEEN演算子を指定する事で範囲検索結果が取得出来ます。 「SEL …

SQL:結合順序を意識してクエリ最適化を行う方法

SQL:結合順序を意識してクエリ最適化を行う方法

SQLでパフォーマンスを高めるうえで「結合順序(Join Order)」は非常に重要な要素です。同じ結果を返すクエリでも、テーブルの結合順序によって処理時間が大きく変わることがあります。 この記事では、結合順序を意識したSQLの最適化方法を …

SQL:複数の値で検索する方法

SQL:複数の値で検索する方法

SQLで1つの項目に対して複数の値に一致した条件で検索する方法をご紹介します。 この場合、考えられる方法としては「OR」演算子を使用する方法と「IN」演算子を使用する2つの方法があります。 通常はIN演算子で済むような条件であればOR演算子 …

SQL:重複データを安全に削除する方法(DELETE+ROW_NUMBER)

SQL:重複データを安全に削除する方法(DELETE+ROW_NUMBER)

データベースを長く運用していると、アプリのバグやテストデータの混入、複数サーバ間複製のトラブルなどが原因で、重複データが発生することがあります。しかし、安易に DELETE を実行すると必要なデータまで消えてしまう危険があります。 そこで本 …

SQL:重複行をカウントする方法

SQL:重複行をカウントする方法

SQLでGROUP BYとCOUNTを使用して重複行をカウントする方法です。 使用例 サンプルテーブル「goods」 クエリー(SQL) GROUP BYでカウントしたい列を指定し、COUNTでGROUP BYに指定した列を指定することで重 …

SQLで一部の文字列を取得する方法

SQLで一部の文字列を取得する方法

SQLで一部の文字列を取得するにはSUBSTR関数やLEFT関数、RIGHT関数を使用することで可能となります。DBMS毎に利用できる関数に違いがありOracleではLEFT関数、RIGHT関数は使用出来ません。   サンプルテーブル 「g …

SQLで文字列を結合(連結)する方法

SQLで文字列を結合(連結)する方法

SQLで文字列を結合(連結)して取得するためにはCONCAT関数やCONCAT_WS関数、文字列結合子「||」を使用することで可能となります。DBMS毎で微妙に違いはありますが、ここではPostgreSQLでの実行サンプルをベースに説明して …

SQLで文字列置換や文字置換する方法

SQLで文字列置換や文字置換する方法

SQLで文字列置換をするにはREPLACE関数を使用することで可能となります。類似の関数にTRANSLATE関数がありますが、こちらは文字列単位ではなく1文字ずつ文字単位で置換します。 ここではPostgreSQLでの実行サンプルをベースに …

SQLの絵本

SQLの絵本

「SQLの絵本」はDBの勉強をしようと講座を受けたときのテキストだった本です。 当時初心者だった私にも分かりやすく、仕事でSQLを書くようになって今でも手元に置いてちょっとした事を確認するのに使用しています。 書いてある事は基本中の基本です …