1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SQL, PL/pgSQLの違い

Last updated at Posted at 2022-10-03

要点

  • PL/pgSQLを理解するには、PL/SQLを理解する
  • PL/SQL, PL/pgSQLは、SQL(非手続き型言語)に加えて、繰り返し処理、条件分岐、配列、例外処理、トリガーなどといった便利な機能を備えたもの
  • 各RDBMSに特化して拡張されたSQLという認識でok
  • PLは、Procedural Language(手続き型言語)の略
  • 繰り返し処理、条件分岐などの処理のことを手続き処理という

SQLとは

  • RDBMSにおいて、データを操作するためのデータベース言語。クエリ言語とも呼ばれる。プログラミング言語とは区別される。
    • データベース言語はDBMSに命令を出すためのもので、基本的にそれ以外の用途に使用することができない。
    • ソフトウェア開発に使用されるプログラミング言語とは異なり、シンプルな構成になっているため、文法や使い方も独特なものとなっている
  • 標準化されているため、様々なRDBMSで利用することができる
    • 具体例)Oracle Database、MySQL、PostgreSQL、SQLiteなど

PL/SQL

  • Oracle Databaseでデータを管理するためにSQLを拡張して開発されたプログラミング言語。
  • SQLではできない、繰り返し処理や条件分岐などの処理を使用することができる
  • PL/SQLで記述された関数はSQLから呼び出すことやトリガーによって実行することもできる
  • Oracle Database:Oracle社が提供するRDBMS

PL/pgSQL

  • PostgreSQLでデータを管理するためにSQLを拡張して開発されたプログラミング言語。
  • PL/SQLの拡張であるため、文法など似ているところがある
  • 機能については、PostgreSQLに特化したものになっているがPL/SQLのPostgreSQL版に拡張しているという認識でok

PL/SQL, PL/pgSQLを使うことのメリット

  • 繰り返し処理、条件分岐などを使用することができる
  • パフォーマンスが向上する
    • SQLを含めたプログラム全体をまとめてRDBMSに送信することができる
    • PL/SQL, PL/pgSQL以外のプログラミング言語(C, Javaなど)では、プログラムに含まれるSQLが文単位でRDBMSに送信される
    • 両者の最終的に得られる結果は同じだが、効率に大きな差がある
  • SQLで定義する関数に比べて、制御文、条件分岐を使った関数を作成することができる
    • SQLでも関数を定義することは可能

その他(PL/python, PL/Perl)

  • PostgreSQLでは、標準でPL/python, PL/Perlなどを配布しているためインストールして使用することができる
  • PL/pythonをインストールして使用する場合、関数定義などをpythonで記述することができる
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?