web-dev-qa-db-ja.com

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

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

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

325
Goober
  • SQLは集合を操作するための問い合わせ言語です。

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

  • PL/SQLは、Oracleで使用されている独自の手続き型言語です。

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

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

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

また、ストアドプロシージャを作成するためにも使用されます。サーバー上に存在し、純粋なセットベースの操作では管理が困難または不可能な複雑なビジネスルールを管理するためのコードです。

341
Quassnoi

SQL

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

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

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

PL/SQL

PL/SQLは、SQLとプログラミング言語の手続き型機能の組み合わせです。 オラクル社によって開発されました。

PL/SQLの特徴

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

T-SQL

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

構造化照会言語(SQL)は、リレーショナルデータベースの管理に焦点を当てたプログラミング言語です。 SQLには独自の制限があり、それによってソフトウェア大手Microsoftは独自の拡張機能を持つSQLの上に構築し、SQLの機能を強化しました。マイクロソフトはSQLにコードを追加し、それをTransact-SQLまたはT-SQLと呼びました。 T-SQLはプロプライエタリであり、Microsoftの管理下にありますが、SQLはIBMによって開発されていますがすでにオープンフォーマットです。

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

これには、手続き型プログラミング要素と、アプリケーションの流れをより柔軟に制御するためのローカル変数が含まれます。 T-SQLをより強力にするために、いくつかの関数も追加されました。数学演算、文字列演算、日付と時刻の処理などのための関数。これらの追加により、T-SQLはTuring完全性テスト(コンピューティング言語の普遍性を決定するテスト)に準拠します。 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は複数のバックエンドを持つ人々に好まれています。

References、Wikipedea、チュートリアルのポイント:www.differencebetween.com

96
  • SQLはデータベースと通信するための言語です。それはあなたが(テーブル、ビューなどのような)データベースオブジェクトを変更し、データベースオブジェクトを変更し、作成し、データを選択することを可能にします。
  • PL-SQL手続き型プログラミング言語(埋め込みSQL付き)
  • SQL Serverで使用されるSQLのT-SQL(手続き型)拡張
43
diederikh

1. SQLまたは構造化照会言語は、その製品 "System R"のためにIBMによって開発されました。

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

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

当時 "リレーションソフトウェア"として知られていた3. PL/SQLまたは手続き型言語/ SQLはOracleデータベースでした。

これを私の ブログ記事 に記録しました。

29
Manoj Pandey

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

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

T-SQLは、Microsoftの製品に合わせたSQLパターンであり、いくつかの特殊性があります。だから、あなたの限界を試して自由に感じなさい。

7
Jayron Soares

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

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

1
Kenta