PostgreSQL PostgreSQLでテーブルやカラムのコメントをSQLで取得する方法 PostgreSQLのテーブルコメントやカラムコメントをSQLで取得するにはPostgreSQLカタログの「pg_description」テーブルを参照します。 2022.02.02 PostgreSQL
PostgreSQL PostgreSQLでテーブルやカラムにコメントを設定する方法 PostgreSQLでテーブルやカラムにSQLでコメントを設定するには「COMMENT」コマンドを利用します。どちらの場合もコメントを削除する場合は設定する値にNULLを設定することで削除することができます。 2022.02.02 PostgreSQL
PostgreSQL PostgreSQLのDBlinkを使用して他のデータベースのテーブルを参照する方法 PostgreSQLのDBlinkを使用するにはextensionを導入し、dblinkでリモートデータベースへの接続を作成することで、リモートデータベースのテーブルにアクセスできるようになります。 2021.08.13 PostgreSQL
PostgreSQL PostgreSQLでINSERTとUPDATEを1行で実行するMERGE(UPSERT)を行う PostgreSQLでは SQLServerのMERGE 文と同じことを行うにはCONFLICTを使って行います。 2021.07.27 PostgreSQL
PostgreSQL PostgreSQLで一時テーブルを作成する方法 PostgreSQLの一時テーブルは作成してからセッションが有効な間だけアクセスできるテーブルです。一時テーブルはセッション内のみ有効なので、セッションが切断された時には自動でテーブルが削除されるので、不要なテーブルが残ってしまうこともありません。また、他のセッションからも見れないので、同じ一時テーブル名が存在しても、セッションが異なればエラーにならず、それぞれの処理で同じテーブル名が使えることになります。 2021.07.27 PostgreSQL
PostgreSQL PostgreSQLでテーブルのプライマリキー(主キー)を削除する方法 PostgreSQLでテーブルのプライマリキーを削除するにはALTER TABLE 文を使います。通常のDROP INDEX文ではありません。 2021.07.27 PostgreSQL
PostgreSQL PostgreSQLのViewが更新可能かどうかチェックする方法 PostgreSQLのVIEW は一定の条件を満たせば、通常のテーブルと同様にVIEWの元テーブルに対してデータの挿入や更新が可能になります。挿入や更新が可能かどうかはinformation_schema.viewsを参照すれば判定することが可能です。 2021.07.21 PostgreSQL
PostgreSQL PostgreSQLで関数の定義(ソース)を取得する方法 PostgreSQLで関数の定義(ソース)を取得するSQLはpg_get_functiondef関数を利用すればできます。ただし、取得するためにはその関数のOIDが必要です。 2021.06.23 PostgreSQL
PostgreSQL PostgreSQLでトリガーの有効/無効を切り替える方法 PostgreSQLでテーブルに設定されているトリガーを有効にしたり無効にしたりするにはALTER TABLE文を使ってENABLE TRIGGER(有効)、DISABLE TRIGGER(無効)で切り替えることができます。 2021.06.23 PostgreSQL
PostgreSQL PostgreSQLでシーケンスの一覧を取得する方法 PostgreSQLでシーケンスの一覧を SQLで取得するにはpg_sequences、pg_classを利用すれば、スキマー名やその設定内容が取得できます。 2021.06.23 PostgreSQL
PostgreSQL PostgreSQLでVIEWの一覧を取得するSQL PostgreSQLでVIEWの一覧を取得するには pg_views を利用することで一覧を取得することができます。 2021.06.23 PostgreSQL
PostgreSQL PostgreSQLでトリガーの一覧を取得する PostgreSQLにはテーブルに対してデータを挿入(INSERT)の前後、更新(UPDATE)の前後、削除(DELETE)の前後のタイミングで自動で起動される処理をトリガーとして定義することができ、トリガーの情報はinformation_schema.triggersとpg_triggerを利用して取得します。 2021.06.23 PostgreSQL
PostgreSQL PostgreSQLにはISNULLやNVLがないので関数で自作する PostgreSQLにはSQLServerのISNULLやOracleのNVL に対応する関数がないので値がNULLの場合に別の値に変換して取得するにはCOALESCEで代用します。今回は「多様型」の引数と戻り値を使ってISNULL関数を作成します。 2021.07.27 PostgreSQL
PostgreSQL PostgreSQLでプライマリキー、ユニークインデックス、インデックスを取得する方法 PostgreSQLでテーブルに設定されているプライマリキー、ユニークインデックス、インデックスを取得するにはpg_indexスキーマのindisprimary カラムとindisunique カラムを参照してそれぞれ取得します。 2021.03.26 PostgreSQL
PostgreSQL PostgreSQLで関数の一覧を取得する PostgreSQLでSQLを使ってスト関数の一覧を取得するにはinformation_schema.routines,pg_procスキーマーを参照して取得します。取得したいオーナー名やユーザー名を指定して実行すると、より絞り込んだ関数の一覧を取得することができます。 2021.06.23 PostgreSQL
PostgreSQL PostgreSQLで接続しているデータベース名を取得する方法 PostgreSQLでアプリケーションが現在接続しているデータベース名を取得するにはcurrent_database()を使って取得します。 2021.03.19 PostgreSQL
PostgreSQL PostgreSQLでストアドプロシジャの一覧を取得する PostgreSQLでSQLを使ってストアドプロシジャの一覧を取得するにはinformation_schema.routines,pg_procスキーマーを参照して取得します。取得したいオーナー名やユーザー名を指定して実行すると、より絞り込んだストアドプロシジャの一覧を取得することができます。 2021.03.26 PostgreSQL
PostgreSQL PostgreSQLでテーブルのカラム名・属性を取得する方法 PostgreSQLでテーブルのカラム名・属性情報の一覧はシステムカタログのinformation_schema.columnsを検索することで取得することができます。 2021.07.21 PostgreSQL
PostgreSQL PostgreSQLでデータベースの一覧を取得する方法 PostgreSQLで作成されているデータベースの一覧を取得するにはシステムカタログのpg_databaseを使用します。 2021.03.05 PostgreSQL
PostgreSQL PostgreSQLでテーブルの一覧を取得する方法 PostgreSQLでデータベース内に作成されているテーブルの一覧を取得するにはシステムカタログのpg_tablesを使用します。 2021.03.05 PostgreSQL
PostgreSQL PostgreSQLへ他の端末から接続する方法 他のコンピュータで稼働している PostgreSQL へはデフォルトでは許可されていません。接続するには設定を変更して再起動する必要があります。 2021.03.04 PostgreSQL
SQL Server SQLの副問合せを使ってテーブルのかわりをする SQLの副問い合わせ(サブクエリ)とは、SELECTした結果を別のSQLで使うことを言います。今回は副問合せ(サブクエリ)を使ってテーブルのかわりを実現してみます。 2021.10.29 SQL Server
SQL Server GROUP BYとHAVINGを使ってデータの重複を探しだすSQL SQLでGROUP BYとHAVINGを使ってデータの重複を探して見ます。 2021.03.04 SQL Server
SQL Server NULLの検索はIS NULL演算子を使う SQLでNULLのカラムを含む行を検索するには「WHERE カラム名=NULL」ではなく「WHERE カラム名 IS NULL」を使います。「WHERE カラム名=NULL」では検索できません。 2021.03.04 SQL Server
SQL Server CASE WHEN を使って条件ごとの件数を取得する あるテーブルに状態を表すフラグを持たせることはよくあります。その状態を条件ごとに振り分けて件数をそれぞれの件数を取得します。 2021.03.04 SQL Server
SQL Server 集計関数COUNT()でのNULLの扱い 集計関数のCOUNT()は条件にマッチするレコードの件数を数えるのに使われます。注意が必要なのはNULLを含む項目とNULLを含まない項目では動作が異なります。 2021.03.04 SQL Server
SQL Server GROUP BYとHAVINGで最新日付データを取得する 社員マスタなどで最新のレコードのみをSQLで取得して利用するような場面はよくあるかと思います。そこでSQLを使って最新日付データを取得します。 2021.03.04 SQL Server
SQL Server CASE WHENを使ってSQLでIF文を使わずに条件を分岐する CASE WHENを使ってSQLでIF文を使わずに条件を分岐します。複数おなじSQLを書く必要がないのでメンテナンスもやりやすくなります。 2021.03.04 SQL Server
SQL Server 既に存在するテーブルに他のテーブルからデータをINSERTする方法 既に存在するテーブルに他のテーブルからデータをINSERTする方法です。 2021.03.04 SQL Server
SQL Server SQLで前の行と同じ値は表示しないようにする SQLで前の行と同じ値は表示しないようにする。帳票出力イメージなどで選択したデータの特定のカラムが1つ前の行と同じ値の場合は表示しないと言ったようなことが必要な場合があります。 2021.03.04 SQL Server
SQL Server SQLでCASE~WHENを使ってみる(2) SQLでCASE~WHENを使ってみる(2)ですが、WHENの後に評価させる式を書くことも可能なようです。 2021.03.04 SQL Server
SQL Server SELECTでUNIONは複数個使える SELECTでUNIONは複数個、連続して使えるようです。複数のSELECT結果を1つとして扱うのに便利です。 2021.03.04 SQL Server
SQL Server SELECT INTOで既存テーブルのデータを新規テーブルにコピーする SQL Server-既存テーブルのデータを新規テーブルにコピーする 2021.03.04 SQL Server