PL/SQLとはOracle社によってデータベース言語SQLを拡張して作成されたプログラミング言語です。PL/SQLはOracle Databaseの内部でSQLと緊密な連携をおこなうことで効率的に業務処理を実行できます。この記事ではPL/SQLについて理解をするために構造や特徴、その他の独自拡張品などの基礎知識を簡単に解説していきます。
PL/SQLとはOracle Databaseにおいて使用するためにOracle社によってデータベース言語SQLを拡張して作成されたプログラミング言語です。SQLが非手続型であるのに対し、PL/SQLは手続き型を採用しております。それからも分かるようにPL/SQLという名称は「Procedural Language(手続き型言語)」が由来しております。PL/SQLで作成されたプログラムを『PL/SQLブロック』と呼び、宣言部・実行部・例外処理部の3つの部で構成されます。特徴として「SQLとの親和性が高い」「移植性に優れている」「パフォーマンスが高い」ことが挙げられます。
SQLとはリレーショナルデータベースの管理・操作をするため最も普及されているデータベース言語です。主な用途としてデータベース管理システム(DBMS)へデータの検索、追加、削除、更新などの指示のために使用されます。1970年代にIBM社の開発によって誕生した『Structured English Query Language(SEQUEL)』が元になっております。
そのことから広く知れ渡っている呼び名は『シーケル』です。またSQLは国際標準化機構(ISO)で規格化をされております。そのためMySQL、Oracle、PostgreSQLなど様々なデータベース管理システムにおいてもSQLにて対応することが可能です。またSQLの代表的な拡張プログラム言語としてPL/SQLやT-SQLなどが挙げられます。
SQLの歴史や特徴について解説された記事はこちら>>
Oracleとは米国発祥の世界で有数のソフトウェア企業です。DBMS(データベース管理システム)のOracle Databaseを主力商品としており、他にもに加え、データベース開発ツール、ERP、CRM、SCMなどの製品を持っております。
PL/SQLの読み方は『ピーエルエスキューエル』です。PL/SQLの名前の由来は「Procedural Language(手続き型言語)」からきております。非手続型言語であるSQLに対し、手続き型言語に拡張する目的でPL/SQLが誕生しました。
PL/SQLの構造を見ていきましょう。
DECLARE(宣言部)では変数、定数、その他のコード要素の宣言文(宣言後のコード要素はそのブロック内で使用可能)を記述します。
BEGIN(実行部)ではブロックの実行時に実行される文(SQLによるデータ操作や、手続き処理など)を記述します。
EXCEPTION(例外処理部)は実行可能セクションの実行時に発生した例外を”キャッチ”(捕捉)するために使用できる特別構造のセクションです。
END;でブロックの終了を宣言します。
ストアドプロシージャ・ストアドファンクションについて見ていきましょう。
ストアド・プロシージャとはPL/SQLで記述した一連の処理手続きに名前をつけ、Oracle Databaseに格納したものです。
ストアド・ファンクションとはPL/SQLで記述した特定の値を返却する処理手続きに名前をつけてOracle Databaseに格納したものです。
PL/SQLの特徴を見ていきましょう。
PL/SQLにはSQLとの親和性が高いという特徴があります。SQL言語(非手続き型言語)と緊密に統合されており、手続き型の処理を記述することが可能です。またストアド・ファンクションを作成することで、SQL操作に複雑な業務ロジックを組み込むことが可能です。元々PL/SQLはSQLを拡張して作られたプログラム言語ということもあり、プログラム内ではSQLの全ての文や関数などを使用することができます。
PL/SQLは移植性に優れているという特徴があります。PL/SQLで記述されたプログラムは特定のハードウェアやプラットフォームに依存しません。Oracle Databaseが動作する任意のオペレーティング・システムおよびプラットフォームで実行可能です。
PL/SQLはパフォーマンスに優れているという特徴があります。Oracle Databaseが動作する環境においてSQL併わせて使用するとプロセス間通信のオーバーヘッドやネットワークトラフィックを削減が可能です。
PL/SQL以外のSQL独自拡張品について見ていきましょう。
T-SQLとはMicrosoft SQL Serverにおいて使用するためにMicrosoft社とSybase社によって共同開発されたデータベース言語SQLを拡張して作成されたプログラミング言語です。正式名称はTransact-SQLとなっておりT-SQLという略して呼ばれることが多いです。特徴として原型のSQLを強化するために制御フロー言語、局所変数、グローバル変数などの機能が追加されております。
PL/pgSQLとはPostgreSQLにおいて使用するために『PostgreSQL Global Development Group』によってデータベース言語SQLを拡張して開発されたプログラミング言語です。正式名称は「Procedural Language/PostgreSQL Structured Query Language」となっておりPL/pgSQLと略して呼ばれることが多いです。PL/pgSQLは「SQLよりも複雑な処理を実現」「簡単に扱える」という目的の元に設計されました。
PL/SQLを理解するために構造や特徴、その他の独自拡張品などの基礎知識を簡単に解説させて頂きました。PL/SQLを一言で表すと『OracleDatabase向けにSQLを拡張開発したデータベース言語』です。PL/SQLの特徴として「SQLとの親和性が高い」「移植性に優れている」「パフォーマンスが高い」などが挙げられます。PL/SQLについてこの記事で記載されている最低限の内容は理解しておくようにしましょう。