【PostgreSQL】PostgreSQL の組み込み関数、ユーザー定義関数、演算子について【Part.9】

今回は PostgreSQL の組み込み関数と演算子について解説します。

 

 

システム情報関数

関数の最後に括弧(カッコ)が付く関数と、付かない関数があるので注意です。

 

■括弧が付く関数

  • version() ← PostgreSQL のバージョンを表示します。
  • current_database() ← 現在接続しているデータベースの情報を表示します。

 

 

■括弧が付かない関数

  • current_user ← コマンドを実行したユーザー情報を表示します。
  • current_timestamp ← 現在の日時を表示します。
  • current_date ← 現在の日付を表示します。

 

データ操作関数

  • 集約関数
  • 文字列件数
  • 算術関数

 

データ型書式変換関数

特定のデータ型(int型など)を異なるデータ型に変換するための関数です。

  • to_char ← タイムスタンプ型、int型などの値を文字列型に変換します。
  • to_date ← 日付型に変換します。
  • to_timestamp ← timestamp型に変換します。
  • to_number ← 数値型に変換します。

 

 

日付の差分を取得する「age() 関数」

日付の差分を取得します。

 

 

現在の日時を取得する

  • SELECT now();
  • SELECT current_timestamp;

 

 

random()

random() の戻り値は、0以上1未満です。

  • 0以上 ← 0を含みます。
  • 1未満 ← 1を含みません。(0.9999999999999…)

 

【参考】

  • ●●以上 ← ●●を含む
  • ●●以下 ← ●●を含む
  • ▲▲を超える ← ▲▲を含まない
  • ▲▲未満 ← ▲▲を含まない

 

 

ユーザー定義関数

PostgreSQL は、ユーザーも関数(FUNCTION)を定義することができます。

 

  • CREATE FUNCTION
  • ALTER FUNCTION
  • DROP FUNCTION

 

CREATE FUNCTION

CREATE FUNCTION は関数を定義するコマンドです。

 

■使用言語

  • SQL
  • PL/pgSQL
  • C

 

関数(FUNCTION)作成例

【例】

CREATE FUNCTION <関数名>(引数) RETURNS SETOF <返り値の型> AS $$

    <処理> 

$$ LANGUAGE <言語>

 

  • <関数> ← 関数名(FUNCTION名)
  • (引数) ← 関数に与える引数
  • SETOF ← SETOF <返り値の型>と宣言することにより、最後の問い合わせの結果のすべての行が返されます。
  • $$ ← ドル引用符です。SQL コマンドの断片を区切ります。$$ ~ $$ でまとめられます。
  • LANGUAGE ← 関数の言語を指定します。言語に入るのは、plpgsql、SQLなど。

 

 

関数の所有者の設定

OWNER TO ~ で所有者を設定できます。

【例】

ALTER FUNCTION test_function(INTEGER) OWNER TO test01;

 

 

トリガー(TRIGGER)

SQL 文を実行してテーブルへの更新を引き金として、別の SQL 文を実行する処理を「トリガー(TRIGGER)」と言います。

テーブルに対して特定の操作を行った場合に、必ず別の処理を行う必要がある場合に利用します。

例えば、銀行口座の出し入れを数えたい場合に、結果だけを見ていた場合気が付かないことがあります。(100円入金、100円出金など)

しかしトリガー(TRIGGER)を利用することで銀行口座の出し入れごとにカウントをしていけば、特定の期間に何回出し入れをしたのか数えることができます。

 

  • CREATE TRIGGER
  • ALTER TRIGGER
  • DROP TRIGGER

 

関数を呼び出すトリガーを作成する

特定のテーブルの値に対して処理が行われたタイミングで、ユーザー定義関数を呼び出すことができます。

 

【例】

CREATE TRIGGER ON <table名>

 

  • ON <table名> ← 対象のテーブル名を指定します。 

 

 

トリガーを削除する

トリガーを削除する場合は、DROP でテーブル名を指定します。

 

【例】

DROP TRIGGER ON <table名>

 

  • ON <table名> ← 対象のテーブル名を指定します。 

 

 

 

 

PostgreSQL シリーズ

今まで学習した PostgreSQL の技術をシリーズとしてまとめました。

 

【PostgreSQL】PostgreSQL の特徴と基本【Part.1】

 

【PostgreSQL】【正規化】リレーショナルデータベース(RDMS)の基本【Part.2】

 

【PostgreSQL】PostgreSQL のインストールと初期設定【Part.3】

 

【PostgreSQL】PostgreSQL の標準付属ツールの説明とコマンド手順【Part.4】

 

【PostgreSQL】PostgreSQL の設定ファイル(postgresql.conf、pg_hba.conf)の解説【Part.5】

 

【PostgreSQL】PostgreSQL のバックアップ手順とリストア手順【Part.6】

 

【PostgreSQL】PostgreSQL の運用管理(ユーザー管理、バキューム)【Part.7】

 

【PostgreSQL】PostgreSQL の基本的な SQL文 とオブジェクトについて【Part.8】

 

【PostgreSQL】PostgreSQL の組み込み関数、ユーザー定義関数、演算子について【Part.9】

 

【PostgreSQL】PostgreSQL のトランザクションについて【Part.10】

 

【PostgreSQL】SQL文【Part.11】

 

【PostgreSQL】テーブル設計(データ型、制約)【Part.12】

 

 

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

AlphaOmega Captcha Medica  –  What Do You See?
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください