Was ist der Unterschied zwischen SQL, PL-SQL und T-SQL?


360

Was ist der Unterschied zwischen SQL, PL-SQL und T-SQL?

Kann jemand erklären, was die Unterschiede zwischen diesen drei sind, und Szenarien bereitstellen, in denen jedes relevant verwendet wird?


1
Die von Microsoft SQL Server verwendete Abfragesprache ist eine Variante der strukturierten Abfragesprache SQL nach ANSI-Standard. Die SQL Server-Variante heißt Transact-SQL.

SQL ist eine datenorientierte Sprache zum Auswählen und Bearbeiten von Datensätzen. PL / SQL ist eine prozedurale Sprache zum Erstellen von Anwendungen

SQL ist eine strukturierte Abfragesprache PL / SQL ist eine prozedurale Sprache, die auf SQL erweitert wurde. Sie wurde von Oracle entwickelt. T-SQL wurde von Microsoft entwickelt

Antworten:


379
  • SQL ist eine Abfragesprache für Sets.

    Es ist mehr oder weniger standardisiert und wird von fast allen relationalen Datenbankverwaltungssystemen verwendet: SQL Server, Oracle, MySQL, PostgreSQL, DB2, Informix usw.

  • PL/SQL ist eine proprietäre prozedurale Sprache, die von Oracle verwendet wird

  • PL/pgSQL ist eine prozedurale Sprache, die von PostgreSQL verwendet wird

  • TSQL ist eine proprietäre prozedurale Sprache, die von Microsoft in SQL Server verwendet wird.

Prozedurale Sprachen wurden entwickelt, um die Fähigkeiten von SQL zu erweitern und gleichzeitig eine gute Integration in SQL zu ermöglichen. Verschiedene Funktionen wie lokale Variablen und Zeichenfolgen- / Datenverarbeitung wurden hinzugefügt. Diese Funktionen machen die Sprache Turing-vollständig.

Sie werden auch zum Schreiben gespeicherter Prozeduren verwendet: Codeteile, die sich auf dem Server befinden, um komplexe Geschäftsregeln zu verwalten, die mit reinen satzbasierten Vorgängen nur schwer oder gar nicht zu verwalten sind.


14
TSQL wird auch von Sybase verwendet. Zumindest in Oracle können PL / SQL-Prozeduren viel mehr als nur "Geschäftsregeln" verwalten. PL / SQL-Prozeduren können auf Websites zugreifen, E-Mails senden usw.
Erich Kitzmüller

3
PL / SQL ist nicht nur in der Datenbank vorhanden, z. B. enthält Oracle Forms eine clientseitige Implementierung von PL / SQL.
Erich Kitzmüller

2
Beachten Sie, dass jede Datenbank eine eigene Implementierung von SQL hat (T-SQL und PL / SQL sind zwei der häufigsten). ANSII-Standard-SQL wird häufig verwendet, wenn mehrere Backends verwendet werden, aber nicht alle Datenbanken verwenden auch alle ANSII-SQL-Funktionen. Und die datenbankspezifische Implementierung von SQl ist in der Regel diejenige, die für diese Datenbank am besten geeignet ist - schließlich müssen sie Ihnen einen Grund geben, ihre Datenbank zu verwenden, oder?
HLGEM

2
Korrektur: SQL ist eine Sprache für Tabellen, für die SQL selbst die Definition bereitstellt. Der SQL-Standard vermeidet die Wörter "Menge" und "Beziehung" und ihre Ableitungen. SQL-Tabellen sind keine Mengen.
Tag, wenn

1
Es wäre sicher schön, eine SQL-prozedurale Sprache zu haben, die über Oracle und SQL Server hinweg funktioniert.
RayLoveless

113

SQL

SQL wird zur Kommunikation mit einer Datenbank verwendet. Es ist die Standardsprache für relationale Datenbankverwaltungssysteme.

Im Detail Structured Query Language ist eine spezielle Programmiersprache, die zum Verwalten von Daten in einem relationalen Datenbankverwaltungssystem (RDBMS) oder zur Stream-Verarbeitung in einem relationalen Datenstrom-Management-System (RDSMS) entwickelt wurde.

SQL basiert ursprünglich auf relationaler Algebra und relationaler Tupelrechnung und besteht aus einer Datendefinitionssprache und einer Datenmanipulationssprache. Der Umfang von SQL umfasst das Einfügen, Abfragen, Aktualisieren und Löschen von Daten, das Erstellen und Ändern von Schemata sowie die Datenzugriffskontrolle. Obwohl SQL häufig als deklarative Sprache (4GL) beschrieben wird und weitgehend ist, enthält es auch prozedurale Elemente.

PL / SQL

PL / SQL ist eine Kombination aus SQL und den prozeduralen Funktionen von Programmiersprachen. Es wurde von der Oracle Corporation entwickelt

Besonderheiten von PL / SQL

  • vollständig portable, leistungsstarke Transaktionsverarbeitungssprache.
  • bietet eine integrierte interpretierte und vom Betriebssystem unabhängige Programmierumgebung.
  • direkt von der Kommandozeilen-SQL * Plus-Schnittstelle aufgerufen werden.
  • Ein direkter Aufruf kann auch über externe Programmiersprachenaufrufe an die Datenbank erfolgen.
  • Die allgemeine Syntax basiert auf der Programmiersprache ADA und Pascal.
  • Abgesehen von Oracle ist es in der In-Memory-Datenbank von TimesTen und in IBM DB2 verfügbar.

T-SQL

Abkürzung für Transaction-SQL , eine erweiterte Form von SQL, die SQL deklarierte Variablen, Transaktionssteuerung, Fehler- und Ausnahmebehandlung sowie Zeilenverarbeitung hinzufügt

Die Structured Query Language oder SQL ist eine Programmiersprache, die sich auf die Verwaltung relationaler Datenbanken konzentriert. SQL hat seine eigenen Einschränkungen , die den Software-Riesen Microsoft dazu veranlassten, mit eigenen Erweiterungen auf SQL aufzubauen, um die Funktionalität von SQL zu verbessern . Microsoft fügte SQL Code hinzu und nannte ihn Transact-SQL oder T-SQL. Beachten Sie, dass T-SQL proprietär ist und von Microsoft kontrolliert wird, während SQL, obwohl von IBM entwickelt, bereits ein offenes Format ist.

T-SQL fügt eine Reihe von Funktionen hinzu, die in SQL nicht verfügbar sind.

Dies umfasst prozedurale Programmierelemente und eine lokale Variable, um eine flexiblere Steuerung des Anwendungsflusses zu ermöglichen. T-SQL wurde auch um eine Reihe von Funktionen erweitert, um es leistungsfähiger zu machen. Funktionen für mathematische Operationen, Zeichenfolgenoperationen, Datums- und Zeitverarbeitung und dergleichen. Durch diese Ergänzungen entspricht T-SQL dem Turing-Vollständigkeitstest, einem Test, der die Universalität einer Computersprache bestimmt. SQL ist nicht vollständig und in seinem Umfang sehr begrenzt.

Ein weiterer wesentlicher Unterschied zwischen T-SQL und SQL sind die Änderungen an den Befehlen DELETE und UPDATE, die bereits in SQL verfügbar sind. Bei T-SQL ermöglichen die Befehle DELETE und UPDATE die Aufnahme einer FROM-Klausel, die die Verwendung von JOINs ermöglicht. Dies vereinfacht das Filtern von Datensätzen, um auf einfache Weise die Einträge auszuwählen, die bestimmten Kriterien entsprechen, im Gegensatz zu SQL, wo dies etwas komplizierter sein kann.

Die Wahl zwischen T-SQL und SQL liegt ganz beim Benutzer. Die Verwendung von T-SQL ist jedoch immer noch besser, wenn Sie mit Microsoft SQL Server-Installationen arbeiten. Dies liegt daran, dass T-SQL ebenfalls von Microsoft stammt und die gemeinsame Verwendung der beiden Methoden die Kompatibilität maximiert. SQL wird von Personen mit mehreren Backends bevorzugt.

Referenzen , Wikipedea, Tutorial-Punkte: www.differencebetween.com


4
IMO, das ist derzeit die beste Antwort (aber auch Manojs Antwort und Blog-Beitrag sind eine Lektüre wert).
Salcoin

1
Wurde T-SQL nicht zusammen mit dem Datenbankcode, den sie für die Erstellung der ersten SQL Server-Version gekauft haben, von Sybase gekauft? Zumindest funktioniert T-SQL auch auf Sybase, also würde ich denken, dass es einen 'allgemeinen Code' gibt
phil_w

Microsoft und Sybase haben gemeinsam SQL Server für OS2 entwickelt. Daher haben beide Unternehmen gemeinsam an der Entwicklung von T-SQL gearbeitet. Aus diesem Grund können beide Datenbanken T-SQL verwenden, obwohl zwischen den beiden Varianten von T-SQL erhebliche Unterschiede bestehen.
Alaniane

44
  • SQLeine Sprache für die Kommunikation mit der Datenbank. Sie können Daten auswählen, mutieren und Datenbankobjekte (wie Tabellen, Ansichten usw.) erstellen sowie Datenbankeinstellungen ändern.
  • PL-SQL eine prozedurale Programmiersprache (mit eingebettetem SQL)
  • T-SQL (prozedurale) Erweiterungen für SQL, die von SQL Server verwendet werden

Sollte SPL (Stored Procedure Lang) sein, ist PL zu allgemein (dh C).
Samis

32

1. SQL oder Structured Query Language wurde von IBM für das Produkt "System R" entwickelt.

Später hat ANSI es als Standard festgelegt, auf dem alle Abfragesprachen basieren, und dies erweitert, um eigene DataBase Query Language-Anzüge zu erstellen. Der erste Standard war SQL-86 und der letzte war SQL: 2011

2. T-SQL oder Transact-SQL wurde von Sybase entwickelt und später von Microsoft SQL Server gemeinsam besessen .

3. PL / SQL oder Procedural Language / SQL war Oracle Database, damals als "Relation Software" bekannt.

Ich habe dies in meinem Blogbeitrag dokumentiert .


2
Diese Antwort ist gründlicher als die genehmigte Antwort, und der Blog-Beitrag ist eine großartige Lektüre.
Salcoin

7

Structured Query Language - SQL: ist ein ANSI-Standard, der von fast allen SGBD-Anbietern weltweit verwendet wird. Grundsätzlich ist SQL eine Sprache zum Definieren und Bearbeiten von Daten [DDL und DML].

PL / SQL ist eine vom Oracle-Universum erstellte Sprache. PL / SQL kombiniert Anweisungen für Programmierprozeduren und ermöglicht die Erstellung von Programmen, die direkt mit dem Datenbankszenario arbeiten.

T-SQL ist ein Microsoft-Produkt, das SQL-Muster mit einigen Besonderheiten ausrichtet. Testen Sie also Ihre Grenzen.


1

SQL ist ein Standard und es gibt viele Datenbankanbieter wie Microsoft und Oracle, die diesen Standard in ihrer eigenen proprietären Sprache implementieren.

Microsoft verwendet T-SQL, um den SQL-Standard für die Interaktion mit Daten zu implementieren, während Oracle PL / SQL verwendet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.