SQL、PL-SQL、T-SQLの違いは何ですか?


360

SQL、PL-SQL、T-SQLの違いは何ですか?

誰もがこれら3つの違いを説明でき、それぞれが適切に使用されるシナリオを提供できますか?


1
Microsoft SQL Serverが使用するクエリ言語は、ANSI標準の構造化クエリ言語であるSQLのバリアントです。SQL ServerバリアントはTransact-SQLと呼ばれます。

SQLは、データのセットを選択および操作するためのデータ指向言語です。PL / SQLは、アプリケーションを作成するための手続き型言語である

SQL構造化されたクエリ言語PL / SQLは、Microsoftによって開発されているOracle T-SQLによって開発され、それをSQLに拡張手続き型言語である

回答:


379
  • SQL セットを操作するクエリ言語です。

    これは多かれ少なかれ標準化されており、SQL Server、Oracle、MySQL、PostgreSQL、DB2、Informixなど、ほとんどすべてのリレーショナルデータベース管理システムで使用されています。

  • PL/SQL Oracleが使用する独自の手続き型言語

  • PL/pgSQL PostgreSQLで使用される手続き型言語です

  • TSQL MicrosoftがSQL Serverで使用する独自の手続き型言語です。

手続き型言語は、SQLと適切に統合しながら、SQLの機能を拡張するように設計されています。ローカル変数や文字列/データ処理などのいくつかの機能が追加されています。これらの機能により、言語はチューリング完全になります。

これらは、ストアドプロシージャ(サーバーに常駐するコードの一部)を記述するためにも使用されます。複雑なビジネスルールを管理するには、純粋なセットベースの操作では管理が難しいか不可能です。


14
TSQLはSybaseでも使用されます。少なくともOracleでは、PL / SQLプロシージャは単に「ビジネスルール」を管理するだけではありません。PL / SQLプロシージャは、Webサイトへのアクセス、電子メールの送信などを行うことができます
Erich Kitzmueller '25 / 06/25

3
PL / SQLはデータベースだけに存在するわけではありません。たとえば、Oracle FormsにはPL / SQLのクライアント側の実装が含まれています。
Erich Kitzmueller、2009年

2
各データベースには独自のSQL実装があることに注意してください(T-SQLとPL / SQLは2つが一般的です)。ANSII標準SQLは、複数のバックエンドが使用される場合によく使用されますが、すべてのデータベースがすべてのANSII SQL機能を使用するわけではありません。そして、SQlのデータベース固有の実装は、そのデータベースに最適なものになる傾向があります-結局、SQlはデータベースを使用する理由を提供する必要がありますよね?
HLGEM 2009年

2
訂正:SQLは、SQL自体が定義を提供するテーブルを操作するための言語です。SQL標準では、「セット」、「関係」、およびそれらの派生語は使用されません。SQLテーブルはセットではありません。
onedaywhen

1
OracleとSQLサーバーで機能するSQL手続き型言語があれば、すばらしいでしょう。
RayLoveless 2013

113

SQL

SQLはデータベースとの通信に使用され、リレーショナルデータベース管理システムの標準言語です。

詳細には、構造化照会言語は、リレーショナルデータベース管理システム(RDBMS)に保持されているデータを管理するため、またはリレーショナルデータストリーム管理システム(RDSMS)でストリーム処理のために設計された専用のプログラミング言語です。

もともとリレーショナル代数とタプルリレーショナル計算に基づいていたSQLは、データ定義言語とデータ操作言語で構成されています。SQLの範囲には、データの挿入、クエリ、更新と削除、スキーマの作成と変更、およびデータアクセス制御が含まれます。SQLはしばしば宣言型言語(4GL)として記述されますが、その大部分は手続き型要素も含まれています。

PL / SQL

PL / SQLは、プログラミング言語の手続き型機能とSQLを組み合わせたものです。オラクル社が開発

PL / SQLの専門分野

  • 完全に移植可能な高性能トランザクション処理言語。
  • 組み込みのインタープリタードおよびOSに依存しないプログラミング環境を提供します。
  • コマンドラインのSQL * Plusインタフェースから直接呼び出されます。
  • データベースへの外部プログラミング言語呼び出しから直接呼び出しを行うこともできます。
  • 一般的な構文は、ADAおよびPascalプログラミング言語の構文に基づいています。
  • Oracleとは別に、TimesTenインメモリデータベースとIBM DB2で利用できます。

T-SQL

宣言された変数、トランザクション制御、エラーと例外処理、および行処理をSQLに追加するSQLの拡張形式であるTransaction-SQLの短縮

構造化照会言語(SQL)は、リレーショナルデータベースの管理に重点を置いたプログラミング言語です。SQLには独自の制限があり、SQLの機能を拡張するために独自の拡張機能を備えたSQLの上に構築することをソフトウェアの巨人Microsoftに駆り立てました。MicrosoftはSQLにコードを追加し、それをTransact-SQLまたはT-SQLと呼んでいました。T-SQLは独自仕様であり、Microsoftの管理下にありますが、SQLはIBMによって開発されましたが、すでにオープンフォーマットです。

T-SQLは、SQLでは利用できないいくつかの機能を追加します。

これには、手続き型プログラミング要素とローカル変数が含まれ、アプリケーションのフローをより柔軟に制御できます。T-SQLには、より強力にするためにいくつかの関数も追加されました。数学演算、文字列演算、日付と時刻の処理などのための関数。これらの追加により、T-SQLは、コンピューティング言語の普遍性を決定するテストであるチューリング完全性テストに準拠します。SQLは完全なチューリングではなく、実行できることの範囲が非常に制限されています。

T-SQLとSQLのもう1つの重要な違いは、SQLですでに利用可能なDELETEコマンドとUPDATEコマンドに加えられた変更です。T-SQLでは、DELETEコマンドとUPDATEコマンドの両方に、JOINの使用を許可するFROM句を含めることができます。これにより、レコードのフィルタリングが簡略化され、SQLの場合とは異なり、特定の基準に一致するエントリを簡単に見つけることができます。

T-SQLとSQLのどちらを選択するかはユーザー次第です。それでも、Microsoft SQL Serverのインストールを扱う場合は、T-SQLを使用する方が優れています。これは、T-SQLもMicrosoftから提供されており、2つを一緒に使用すると互換性が最大になるためです。SQLは、複数のバックエンドを持つ人々に好まれています。

参考文献 、ウィキペディア、チュートリアルポイント:www.differencebetween.com


4
現在最良の回答であるIMO(ただし、manojの回答とブログ投稿も読む価値があります)。
salcoin 12/12 / 15、19:

1
T-SQLは、最初のSQLサーバーバージョンを作成するために購入したデータベースコードと共に、Sybaseから購入したのではありませんか?少なくともT-SQLはSybaseでも動作するため、いくつかの「共通コード」があると思います
phil_w

実際、MicrosoftとSybaseは共同でOS2用のSQL Serverを開発しました。したがって、両社はT-SQLの開発に共同で取り組みました。そのため、T-SQLの2つのバリアントには大きな違いがありますが、両方のデータベースでT-SQLを使用できます。
アラニアン

44
  • SQLデータベースと対話するための言語。データの選択、データベースオブジェクト(テーブル、ビューなど)の変更と作成、データベース設定の変更を行うことができます。
  • PL-SQL 手続き型プログラミング言語(埋め込みSQLを使用)
  • T-SQL SQL Serverで使用されるSQLの(手続き​​型)拡張機能

SPL(Stored Procedure Lang)である必要がありますが、PLは一般的すぎます(つまり、C)。
samis

32

1. SQLまたは構造化照会言語は、IBMの製品「システムR」用に開発されました。

後にANSIはそれをすべてのクエリ言語の基礎となる標準にし、独自のデータベースクエリ言語のスーツを作成するためにこれを拡張しました。最初の標準はSQL-86で、最新はSQL:2011でした

2. T-SQLまたはTransact-SQLは、Sybaseによって開発され、後にMicrosoft SQL Server によって共有されました。

3. PL / SQLまたは手続き型言語/ SQLは、当時「関係ソフトウェア」として知られているOracleデータベースでした。

これについてはブログの投稿で説明しました


2
この回答は承認済みの回答よりも詳細であり、ブログの投稿は素晴らしい読み物です。
salcoin 12/12 / 15、19:

7

構造化照会言語-SQL:世界中のほとんどすべてのSGBDベンダーが使用するANSI標準です。基本的に、SQLはデータの定義と操作に使用される言語です[DDLおよびDML]。

PL / SQLは、Oracleユニバースによって作成された言語です。PL / SQLは、プログラミング手順命令を組み合わせて、データベースシナリオで直接動作するプログラムの作成を可能にします。

T-SQLは、Microsoft製品に合わせたSQLパターンであり、いくつかの特徴があります。したがって、制限を自由にテストしてください。


1

SQLは標準であり、独自の独自言語を使用してこの標準を実装するMicrosoft、Oracleなどの多くのデータベースベンダーがあります。

MicrosoftはT-SQLを使用してSQL標準を実装し、データと対話するのに対し、oracleはPL / SQLを使用します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.