PostgreSQL関数の使い方


  1. 関数の作成と呼び出し

関数を作成するには、CREATE FUNCTIONステートメントを使用します。関数の定義には、関数名、引数、戻り値の型、および関数の本体が含まれます。例えば、以下のような関数を作成できます:

CREATE FUNCTION calculate_sum(a INT, b INT) RETURNS INT AS $$
BEGIN
  RETURN a + b;
END;
$$ LANGUAGE plpgsql;

この関数は、2つの整数引数を受け取り、それらの合計を返します。

関数を呼び出すには、SELECTステートメントで関数名と引数を指定します。例えば:

SELECT calculate_sum(5, 3);

この場合、関数は引数として5と3を受け取り、8を返します。

  1. テーブルに対する関数の使用

関数はテーブルに対しても使用することができます。例えば、以下のような関数を作成して、テーブルの行数を返すことができます:

CREATE FUNCTION get_row_count() RETURNS INT AS $$
DECLARE
  row_count INT;
BEGIN
  SELECT COUNT(*) INTO row_count FROM your_table;
  RETURN row_count;
END;
$$ LANGUAGE plpgsql;

この関数は、your_tableというテーブルの行数を返します。関数を呼び出すには、以下のようにします:

SELECT get_row_count();
  1. 集約関数

PostgreSQLには、SUMやAVGなどの集約関数も用意されています。これらの関数は、特定の列の集計値を返します。例えば、以下のようなクエリを実行することで、特定のテーブルの列の合計を求めることができます:

SELECT SUM(column_name) FROM your_table;
  1. ユーザー定義型を使用した関数

PostgreSQLでは、ユーザー定義型を作成し、それを関数の引数や戻り値に使用することもできます。ユーザー定義型を作成するには、CREATE TYPEステートメントを使用します。例えば:

CREATE TYPE person_type AS (
  name VARCHAR(50),
  age INT
);

この例では、person_typeという名前のユーザー定義型を作成しています。この型は、名前と年齢の2つのフィールドを持ちます。

ユーザー定義型を使用した関数の例を以下に示します:

CREATE FUNCTION insert_person(p person_type) RETURNS VOID AS $$
BEGIN
  INSERT INTO persons (name, age) VALUES (p.name, p.age);
END;
$$ LANGUAGE plpgsql;

この関数は、person_typeのデータを受け取り、personsテーブルに挿入します。

これらはいくつかのPostgreSQL関数の例です。関数を使用することで、データベースの処理を効率化し、再利用可能なコードを作成することができます。