次に示す比較表を使用して、SQLとPL / SQLの違いについてもう少し説明しましょう。
比較表
比較の基礎 | SQL | PL / SQL |
---|---|---|
基本 | SQLでは、一度に1つのクエリまたはコマンドを実行できます。 | PL / SQLでは、一度に1ブロックのコードを実行できます。 |
完全形 | 構造化照会言語 | 手続き言語、SQLの拡張。 |
目的 | 表示されるのはデータのソースのようなものです。 | SQLで取得したデータを表示するアプリケーションを作成する言語です。 |
書きます | SQLでは、DDL、DMLステートメントを使用してクエリとコマンドを書くことができます。 | PL / SQLでは、プロシージャ、ファンクション、パッケージまたは変数などを含むコードのブロックを作成できます。 |
つかいます | SQLを使用すると、データベース内のデータを取得、変更、追加、削除、または操作できます。 | PL / SQLを使用すると、SQLから取得した情報を適切な形式で表示するアプリケーションまたはサーバー・ページを作成できます。 |
埋め込む | SQL文はPL / SQLに埋め込むことができます。 | PL / SQLをSQLに埋め込むことはできません。 |
SQLの定義
SQL( Structured Query Language )は、 1970年に IBMによって開発された確立されたリレーショナルデータベース言語です。 それはDDL 、すなわちデータ定義言語を使用してデータベース内の関係(テーブル)のセットを定義します。 DDLは、各関係のスキーマを作成し、各関係の整合性制約、セキュリティ、および承認を維持するために使用されます。
SQLの他の部分はDML、すなわちデータ操作言語です。 DMLを使用すると、ユーザーはデータベース内のデータにアクセスしたり操作したりできます。 DMLは基本的に2つのタイプの手続き型DMLと宣言型または非手続き型DMLです。 手続き型DML文は、必要なデータとそのデータの取得方法を指定します。 一方、宣言DML文では、必要なデータのみが指定されています。 SQlは宣言型DMLを使用します。
SQLは、C / C ++、Java、Perl、Python、PHPなどの他の多くの言語の構文に埋め込むことができます。これはデータ指向の宣言型言語です。
PL / SQLの定義
PL / SQLは、 90年代前半にOracle Corporationによって開発された手続き型リレーショナルデータベース言語です。 PL / SQLは、他の2つの言語であるSQLとJavaとともにOracleで使用されている言語です。 これはSQLの拡張であり、SQL文をその構文内に埋め込みます。
PL / SQLでは、一度に1ブロックのコードを実行できるため、パフォーマンスが向上します。 コードブロックは、プロシージャ、関数、ループ、変数パッケージ、トリガで構成されています。 PL / SQLは、Webアプリケーションとサーバーページを構築するように設計されています。 PL / SQLは、カプセル化、データ隠蔽、例外処理、オブジェクト指向データ型などの機能を禁止します。
SQLとPL / SQLの主な違い
- 2つの言語の基本的な違いは、SQLは一度に1つのクエリを実行するのに対し、Pl / SQLは一度にコードブロックを実行することです。
- SQLは構造化照会言語ですが、PL / SQLは手続き型言語/構造化照会言語です。
- SQLは、PL / SQLを使用して作成されたアプリケーションによって表示されるデータを取得するためのソースとして機能します。
- SQLクエリとコマンドはDDL(データ定義言語)、DML(データ操作言語)を使用して書かれています。 ただし、PL / SQLを使用すると、プロシージャ、ファンクション、トリガー、パッケージ、その構文内の変数を含むプログラミング・ブロックを作成できます。
- SQLクエリはデータベースからデータを取得するために使用されます。 データベース内のデータを追加、削除、または変更することもできます。 一方、PL / SQLは、SQLによって取得された情報を表示できるアプリケーションを作成するために使用されます。
- SQL問合せはPL / SQLの構文内に埋め込むことができます。 しかし、その逆は不可能です。
結論:
SQLは宣言型言語であり、どのデータが必要かを指定するだけです。 しかし、PL / SQLは手続き型言語であり、必要なデータと取得方法の両方を指定します。