SQL

SQL ("S-Q-L"; manchmal gekennzeichnet als Strukturierte Anfragensprache) ist eine Programmiersprache, die für Betriebsdaten in Verwandtschaftsdatenbankverwaltungssystemen (RDBMS) entworfen ist.

Ursprünglich gestützt auf der Verwandtschaftsalgebra und dem Tupel Verwandtschaftsrechnung schließt sein Spielraum Dateneinsatz, Abfrage, Aktualisierung ein, und, löschen Sie Diagramm-Entwicklung und Modifizierung und Datenzugriffskontrolle.

SQL war eine der ersten Handelssprachen für das Verwandtschaftsmodell von Edgar F. Codd, wie beschrieben, in seiner einflussreichen 1970-Zeitung, "Ein Verwandtschaftsmodell von Daten für Große Geteilte Datenbanken". Trotz des nicht Haftens am Verwandtschaftsmodell, wie beschrieben, durch Codd ist es die am weitesten verwendete Datenbanksprache geworden. Obwohl SQL häufig als beschrieben wird, und in reichem Maße, eine Aussagesprache ist, schließt er auch Verfahrenselemente ein. SQL ist ein Standard von American National Standards Institute (ANSI) 1986, und der Internationalen Organisation für Standards (ISO) 1987 geworden. Seitdem ist der Standard mehrere Male mit Komfortmerkmalen erhöht worden. Jedoch bestehen Probleme der SQL-Codebeweglichkeit zwischen RDBMS Hauptprodukten noch erwartet, des vollen Gehorsams, oder verschiedene Interpretationen, der Standard zu fehlen. Unter den erwähnten Gründen sind die große Größe und die unvollständige Spezifizierung des Standards, sowie das Verkäufer-Schloss - darin.

Geschichte

SQL wurde an IBM von Donald D. Chamberlin und Raymond F. Boyce am Anfang der 1970er Jahre am Anfang entwickelt. Diese Version, am Anfang genannte FORTSETZUNG (Strukturierte englische Anfragensprache), wurde entworfen, um Daten zu manipulieren und wiederzubekommen, die im ursprünglichen Quasiverwandtschaftsdatenbankverwaltungssystem von IBM, System R versorgt sind, den eine Gruppe an IBM San Jose Research Laboratory während der 1970er Jahre entwickelt hatte. Die Akronym-FORTSETZUNG wurde später zu SQL geändert, weil "FORTSETZUNG" eine Handelsmarke der mit Sitz im vereinigtem Königreich Flugzeugsgesellschaft des Straßenhändlers Siddeley war.

Das erste Verwandtschaftsdatenbankverwaltungssystem (RDBMS) war RDMS, der an MIT am Anfang der 1970er Jahre bald entwickelt ist, die von Ingres gefolgt sind, entwickelt 1974 an U.C. Berkeley. Ingres hat eine Anfragensprache bekannt als QUEL durchgeführt, der später im Marktplatz durch SQL verdrängt wurde.

Gegen Ende der 1970er Jahre hat Relational Software, Inc. (jetzt Oracle Corporation) das Potenzial der Konzepte gesehen, die von Codd, Chamberlin und Boyce beschrieben sind, und hat sich entwickelt ihr eigenes hat RDBMS mit Sehnsüchten des Verkaufs davon zur amerikanischen Marine, Zentraler Intelligenzagentur und den anderen amerikanischen Regierungsstellen SQL-basiert. Im Juni 1979 hat Relational Software, Inc. die erste gewerblich verfügbare Durchführung von SQL, Orakel V2 (Version2) für VAX Computer eingeführt. Orakel V2 hat die Ausgabe im August von IBM des Systems/38 RDBMS geschlagen, um um ein paar Wochen einzukaufen.

Nach der Prüfung von SQL an Kundentestseiten, um die Nützlichkeit und Nützlichkeit des Systems zu bestimmen, hat IBM begonnen, kommerzielle Produkte zu entwickeln, die auf ihrem System R Prototyp einschließlich des Systems/38, SQL/DS und der DB2 gestützt sind, die 1979, 1981, und 1983 beziehungsweise gewerblich verfügbar waren.

Die SQL Sprache wird in mehrere Sprachelemente unterteilt, einschließlich:

  • Klauseln, die konstituierende Bestandteile von Behauptungen und Abfragen sind. (In einigen Fällen sind diese fakultativ.)
  • Ausdrücke, die entweder Skalarwerte oder Tische erzeugen können, die aus Säulen und Reihen von Daten bestehen.
  • Prädikate, die Bedingungen angeben, die zu SQL drei geschätzte Logik (3VL) oder Boolean (wahre/falsche/unbekannte) Wahrheitswerte bewertet werden können, und die verwendet werden, um die Effekten von Behauptungen und Abfragen zu beschränken, oder Programm-Fluss zu ändern.
  • Abfragen, die die auf spezifischen Kriterien gestützten Daten wiederbekommen. Das ist das wichtigste Element von SQL.
  • Behauptungen, die eine beharrliche Wirkung auf Diagramme und Daten haben können, oder die Transaktionen, Programm-Fluss, Verbindungen, Sitzungen oder Diagnostik kontrollieren können.
  • SQL Behauptungen schließen auch den Strichpunkt ein (";") Behauptung terminator. Obwohl nicht erforderlich auf jeder Plattform es als ein Standardteil der SQL Grammatik definiert wird.
  • Unbedeutender whitespace wird allgemein in SQL Behauptungen und Abfragen ignoriert, es leichter machend, SQL-Code für die Lesbarkeit zu formatieren.

Abfragen

Die allgemeinste Operation in SQL ist die Abfrage, die mit der Aussagebehauptung durchgeführt wird. bekommt Daten von einem oder mehr Tischen oder Ausdrücke wieder. Standardbehauptungen haben keine beharrlichen Effekten auf die Datenbank. Einige Sonderdurchführungen dessen können beharrliche Effekten wie die Syntax haben, die in einigen Datenbanken besteht.

Abfragen erlauben dem Benutzer, gewünschte Daten zu beschreiben, das Datenbankverwaltungssystem (DBMS) verantwortlich für die Planung, die Optimierung und das Durchführen der physischen Operationen verlassend, die notwendig sind, um dieses Ergebnis zu erzeugen, wie es wählt.

Eine Abfrage schließt eine Liste von Säulen ein, die ins Endresultat sofort im Anschluss an das Schlüsselwort einzuschließen sind. Ein Sternchen ("") kann auch verwendet werden, um anzugeben, dass die Abfrage alle Säulen der gefragten Tische zurückgeben sollte. ist die kompliziertste Behauptung in SQL, mit fakultativen Schlüsselwörtern und Klauseln, die einschließen:

  • Die Klausel, die den Tisch (E) anzeigt, von denen Daten wiederbekommen werden soll. Die Klausel kann fakultative Subklauseln einschließen, um die Regeln anzugeben, um sich Tischen anzuschließen.
  • Die Klausel schließt ein Vergleich-Prädikat ein, das die durch die Abfrage zurückgegebenen Reihen einschränkt. Die Klausel beseitigt alle Reihen vom Ergebnis-Satz, für den das Vergleich-Prädikat zum Wahren nicht bewertet.
  • Die Klausel wird verwendet, um Reihen zu planen, die allgemeine Werte in einen kleineren Satz von Reihen haben. wird häufig in Verbindung mit SQL Ansammlungsfunktionen verwendet oder Doppelreihen von einem Ergebnis-Satz zu beseitigen. Die Klausel wird vor der Klausel angewandt.
  • Die Klausel schließt ein Prädikat ein, das verwendet ist, um Reihen zu filtern, die sich aus der Klausel ergeben. Weil es den Ergebnissen der Klausel folgt, können Ansammlungsfunktionen im Klausel-Prädikat verwendet werden.
  • Die Klausel identifiziert sich, welche Säulen verwendet werden, um die resultierenden Daten zu sortieren, und in der Richtung sie sortiert werden sollten (Optionen steigen oder steigen hinunter). Ohne eine Klausel ist die Ordnung von durch eine SQL-Abfrage zurückgegebenen Reihen unbestimmt.

Der folgende ist ein Beispiel einer Abfrage, die eine Liste von teuren Büchern zurückgibt. Die Abfrage bekommt alle Reihen vom Buchtisch wieder, in dem die Preissäule einen Wert enthält, der größer ist als 100.00. Das Ergebnis wird in aufsteigender Reihenfolge durch den Titel sortiert. Das Sternchen (*) in der ausgesuchten Liste zeigt an, dass alle Säulen des Buchtisches in den Ergebnis-Satz eingeschlossen werden sollten.

WÄHLEN SIE * AUS

AUS dem Buch

WO Preis> 100.00

ORDNUNG DURCH den Titel;

</syntaxhighlight>

Das Beispiel demonstriert unten eine Abfrage von vielfachen Tischen, Gruppierung und Ansammlung, durch das Zurückbringen einer Liste von Büchern und der Zahl von mit jedem Buch vereinigten Autoren.

WÄHLEN SIE Book.title, AUS

Zählung (*) ALS Autoren

AUS dem Buch SCHLIEßEN SICH Book_author AN

AUF Book.isbn = Book_author.isbn

GRUPPE DURCH Book.title;

</syntaxhighlight>

Beispiel-Produktion könnte dem folgenden ähneln:

Titelautoren

-----------------------------

SQL Beispiele und Führer 4

Die Heiterkeit von SQL 1

Eine Einführung in SQL 2

Fallen von SQL 1

Unter der Vorbedingung, dass isbn der einzige allgemeine Säulenname der zwei Tische ist, und dass eine Säule genannt Titel nur im Buchtisch besteht, konnte die obengenannte Abfrage in der folgenden Form umgeschrieben werden:

WÄHLEN SIE Titel, AUS

Zählung (*) ALS Autoren

AUS dem Buch NATÜRLICHE VERBINDUNGSLINIE Book_author

GRUPPE DURCH den Titel;

</syntaxhighlight>

Jedoch unterstützen viele Verkäufer entweder diese Annäherung nicht, oder verlangen bestimmte Säule, Vereinbarung in der Größenordnung von natürlichen Verbindungslinien nennend, um effektiv zu arbeiten.

SQL schließt Maschinenbediener ein und fungiert, um Werte auf versorgten Werten zu berechnen. SQL erlaubt dem Gebrauch von Ausdrücken in der ausgesuchten Liste, Daten, als im folgenden Beispiel zu planen, das eine Liste von Büchern zurückgibt, die mehr als 100.00 mit einer zusätzlichen sales_tax Säule kosten, die eine zu 6 % des Preises berechnete Umsatzsteuer-Zahl enthält.

WÄHLEN SIE isbn, AUS

Titel,

Preis,

Preis * 0.06 ALS sales_tax

AUS dem Buch WO Preis> 100.00 ORDNUNG DURCH den Titel;</syntaxhighlight>

Subabfragen

Abfragen können verschachtelt werden, so dass die Ergebnisse einer Abfrage in einer anderen Abfrage über einen Vergleichsoperatoren oder Ansammlungsfunktion verwendet werden können. Eine verschachtelte Abfrage ist auch bekannt als eine Subabfrage. Während sich anschließt und andere Tabellenoperationen rechenbetont höher (d. h. schneller) Alternativen in vielen Fällen zur Verfügung stellen, führt der Gebrauch von Subabfragen eine Hierarchie in der Ausführung ein, die nützlich oder notwendig sein kann. Im folgenden Beispiel erhält die Ansammlungsfunktion, wie eingegeben, das Ergebnis einer Subabfrage:

WÄHLEN SIE isbn, Titel, Preis AUS

AUS dem Buch

WO Preis

Ungültige und drei geschätzte Logik (3VL)

Die Idee von Ungültigen wurde in SQL eingeführt, um fehlende Information im Verwandtschaftsmodell zu behandeln. Die Einführung von Ungültigen (oder Unbekannt) zusammen mit dem Wahren und Falschen ist das Fundament der drei geschätzten Logik. Ungültig hat keinen Wert (und ist nicht ein Mitglied jedes Datengebiets), aber ist eher ein Platzhalter oder "Zeichen" für die fehlende Information. Deshalb können Vergleiche mit dem Ungültigen entweder Wahr oder Falsch, aber immer im dritten logischen Ergebnis nie hinauslaufen.

SQL verwendet Ungültig, um fehlende Information zu behandeln. Es unterstützt drei geschätzte Logik (3VL) und die Regeln, SQL regelnd, der drei geschätzter Logik unten gezeigt wird (p und q logische Staaten vertreten). Das UNGÜLTIGE Wort ist auch ein vorbestelltes Schlüsselwort in SQL, verwendet, um den Ungültigen speziellen Anschreiber zu identifizieren.

Zusätzlich, da SQL Maschinenbediener Unbekannt zurückkehren, wenn sie irgendetwas mit dem Ungültigen vergleichen, stellt SQL zwei Ungültig-spezifische Vergleich-Prädikate zur Verfügung: Und Test, ob Daten sind oder nicht Ungültig sind.

Bemerken Sie, dass SQL nur Ergebnisse zurückgibt, für die WO Klausel einen Wert von Wahren zurückgibt; d. h. es schließt Ergebnisse mit Werten von Falschen aus und schließt auch diejenigen aus, deren Wert Unbekannt ist.

| valign = "Spitze" |

| }\| valign = "Spitze" || }\

Universale Quantifizierung wird durch SQL nicht ausführlich unterstützt, und muss als eine verneinte existenzielle Quantifizierung ausgearbeitet werden.

Es gibt auch"

Datenmanipulation

Data Manipulation Language (DML) ist die Teilmenge von SQL, der verwendet ist, um Daten hinzuzufügen, zu aktualisieren und zu löschen:

  • tragen Reihen (formell Tupel) zu einem vorhandenen Tisch z.B bei:

EINSATZ IN My_table

(field1, field2, field3)

WERTE

('Test', 'N', UNGÜLTIG);

</syntaxhighlight>
  • modifiziert eine Reihe vorhandener Tabellenreihen z.B:

AKTUALISIEREN SIE My_table

SATZ field1 = 'hat Wert' aktualisiert

WO field2 = 'N';

</syntaxhighlight>
  • entfernt vorhandene Reihen von einem Tisch z.B:

LÖSCHEN SIE VON My_table

WO field2 = 'N';</syntaxhighlight>
  • wird verwendet, um die Daten von vielfachen Tischen zu verbinden. Es verbindet sich und Elemente. Es wird im SQL:2003 Standard definiert; davor haben einige Datenbanken ähnliche Funktionalität über die verschiedene Syntax, manchmal genannt "upsert" zur Verfügung gestellt.

Transaktionssteuerungen

Transaktionen, wenn verfügbar, wickeln DML Operationen:

  • (oder, oder, abhängig von SQL Dialekt) kennzeichnen den Anfang einer Datenbanktransaktion, die entweder völlig oder überhaupt nicht vollendet.
  • (oder) sparen Sie den Staat der Datenbank am aktuellen Punkt in der Transaktion

SCHAFFEN SIE TABELLE TBL_1 (id interne Nummer);

EINSATZ IN tbl_1 (id) WERTE (1);

EINSATZ IN tbl_1 (id) WERTE (2);

BEGEHEN SIE;

AKTUALISIEREN SIE Tbl_1-SATZ-id=200 WO id=1;

SAVEPOINT id_1upd;

AKTUALISIEREN SIE Tbl_1-SATZ-id=1000 WO id=2;

ROLLBACK zu id_1upd;

WÄHLEN SIE id von tbl_1 AUS;

</syntaxhighlight>
  • Ursachen alle Daten ändern sich in eine Transaktion, die dauerhaft zu machen ist.
  • Ursachen alle Datenänderungen seit dem letzten oder verworfen zu werden, den Staat der Daten verlassend, wie es vor jenen Änderungen war.

Sobald die Behauptung vollendet, können die Änderungen der Transaktion nicht wiederholt werden.

und begrenzen Sie die aktuelle Transaktion und veröffentlichen Sie Datenschlösser. Ohne a oder ähnliche Behauptung ist die Semantik von SQL von der Durchführung abhängig.

Beispiel: Eine klassische Banküberweisung der Kapital-Transaktion.

FANGEN SIE TRANSAKTION AN;

AKTUALISIEREN SIE Konto-SATZ amount=amount-200 WO account_number=1234;

AKTUALISIEREN SIE Konto-SATZ-amount=amount+200 WO account_number=2345;

WENN ERRORS=0 BEGEHEN;

WENN FEHLER

</syntaxhighlight>

Datendefinition

Data Definition Language (DDL) führt Tisch und Index-Struktur. Die am meisten Grundpositionen von DDL sind, und Behauptungen:

  • schafft einen Gegenstand (ein Tisch, zum Beispiel) in der Datenbank z.B:

SCHAFFEN SIE TISCH My_table (

INTERNE

My_field1-NUMMER,

my_field2 VARCHAR (50),

My_field3-DATUM NICHT UNGÜLTIG,

PRIMÄRER SCHLÜSSEL (my_field1, my_field2)

);

</syntaxhighlight>
  • modifiziert die Struktur eines vorhandenen Gegenstands auf verschiedene Weisen, zum Beispiel eine Säule zu einem vorhandenen Tisch oder einer Einschränkung z.B hinzufügend:

VERÄNDERN SIE TISCH My_table FÜGEN my_field4 NICHT UNGÜLTIGE NUMMER (3) HINZU;

</syntaxhighlight>
  • löscht alle Daten von einem Tisch auf eine sehr schnelle Weise, die Daten innerhalb des Tisches und nicht des Tisches selbst löschend. Es deutet gewöhnlich an, dass ein nachfolgender Operation BEGEHT, d. h. es kann nicht wiederholt werden. (Daten werden dem Klotz für rollback später nicht geschrieben, unterschiedlich LÖSCHEN)

ABGESTUTZTER TISCH My_table;

</syntaxhighlight>
  • löscht einen Gegenstand in der Datenbank gewöhnlich unheilbar, d. h. sie kann z.B nicht wiederholt werden:

FALL-TISCH My_table;

</syntaxhighlight>

Datentypen

Jede Säule in einem SQL Tisch erklärt den Typ (En), den Säule enthalten kann. ANSI SQL schließt die folgenden Datentypen ein.

Charakter-Schnuren

  • oder — feste Breite-Buchstaben Schnur, die mit Räumen, wie erforderlich, ausgepolstert ist
  • oder — Schnur der variablen Breite mit einer maximalen Größe von Charakteren
  • oder — befestigte Breite-Schnur, die eine internationale Codierung unterstützt
  • oder — Schnur der variablen Breite

Bit-Schnuren

  • — eine Reihe von Bit
  • — eine Reihe bis zu Bit

Zahlen

  • und
  • und
  • oder

Zum Beispiel hat die Nummer 123.45 eine Präzision 5 und eine Skala 2. Einer positiven ganzen Zahl zu sein, die die Zahl von positiven Ziffern in einer besonderen Basis (binär oder dezimal) bestimmt. Einer natürlichen Zahl zu sein. Eine Skala 0 zeigt an, dass die Zahl eine ganze Zahl ist. Für eine Dezimalzahl mit der Skala S ist der genaue numerische Wert der Wert der ganzen Zahl der positiven Ziffern, die durch 10 geteilt sind.

SQL stellt eine Funktion der Runde numerics oder den Daten, genannt (in Informix, DB2, PostgreSQL, Orakel und MySQL) oder (in Informix, Sybase, Orakel, PostgreSQL und Microsoft SQL Server) zur Verfügung

Datum und Zeit

  • — für Datum-Werte (z.B,)
  • — für Zeitwerte (z.B,). Die Körnung des Zeitwertes ist gewöhnlich eine Zecke (100 Nanosekunden).
  • oder — dasselbe als, aber einschließlich Details über die fragliche Zeitzone.
  • — Das ist a und ein zusammengestellter in einer Variable (z.B,).
oder — dasselbe als, aber einschließlich Details über die fragliche Zeitzone.

SQL stellt mehrere Funktionen zur Verfügung, für ein Datum / Zeitvariable aus einem Datum / Zeitschnur zu erzeugen , sowie für die jeweiligen Mitglieder (Sekunden, zum Beispiel) von solchen Variablen herauszuziehen. Das aktuelle Systemdatum / Zeit des Datenbankservers kann durch das Verwenden von Funktionen wie genannt werden.

Datenkontrolle

Data Control Language (DCL) bevollmächtigt Benutzer und Gruppen von Benutzern, auf Daten zuzugreifen und sie zu manipulieren.

Seine zwei Hauptbehauptungen sind:

  • bevollmächtigt einen oder mehr Benutzer, eine Operation oder eine Reihe von Operationen auf einem Gegenstand durchzuführen.
  • beseitigt eine Bewilligung, die die Verzug-Bewilligung sein kann.

Beispiel:

GEWÄHREN SIE AUSGESUCHT, AKTUALISIERUNG

AUF My_table

ZU some_user, another_user;

WIDERRUFEN SIE AUSGESUCHT, AKTUALISIEREN SIE

AUF My_table

VON some_user, another_user;

</syntaxhighlight>

Verfahrenserweiterungen

SQL wird zu einem spezifischen Zweck entworfen: In einer Verwandtschaftsdatenbank enthaltene Daten zu fragen. SQL ist eine Satz-basierte Aussageanfragensprache, nicht eine befehlende Sprache wie C oder GRUNDLEGEND. Jedoch gibt es Erweiterungen auf Normale SQL, die Verfahrensprogrammiersprache-Funktionalität wie Konstruktionen der Kontrolle des Flusses hinzufügen. Diese schließen ein:

Zusätzlich zu den SQL/PSM Standarderweiterungen und SQL Eigentumserweiterungen ist verfahrensrechtlicher und objektorientierter programmability auf vielen SQL Plattformen über die DBMS Integration mit anderen Sprachen verfügbar. Der SQL Standard definiert SQL/JRT Erweiterungen (SQL Routinen und Typen für die javanische Programmiersprache), um javanischen Code in SQL Datenbanken zu unterstützen. SQL Server-2005 verwendet den SQLCLR (SQL Server-Durchlaufzeit der Gemeinsamen Sprache), um geführte.NET Bauteile in der Datenbank zu veranstalten, während vorherige Versionen des SQL Servers auf das Verwenden von ungeführten erweiterten versorgten Verfahren eingeschränkt wurden, die in erster Linie in C geschrieben wurden. PostgreSQL erlaubt Funktionen, in einem großen Angebot an Sprachen einschließlich Perl, Pythonschlange, Tcl und C geschrieben zu werden.

Kritik

SQL geht auf mehrere Weisen von seinem theoretischen Fundament, dem Verwandtschaftsmodell und seiner Tupel-Rechnung ab.

In diesem Modell ist ein Tisch eine Reihe von Tupeln, während in SQL Tische und Anfragenergebnisse Listen von Reihen sind: Dieselbe Reihe kann mehrmals vorkommen, und die Ordnung von Reihen kann in Abfragen (z.B in der GRENZE-Klausel) verwendet werden.

Außerdem wurden zusätzliche Eigenschaften (solcher als UNGÜLTIG und Ansichten) eingeführt, ohne sie direkt auf dem Verwandtschaftsmodell zu gründen, das sie schwieriger macht zu dolmetschen.

Kritiker behaupten, dass SQL durch eine Sprache ersetzt werden sollte, die ausschließlich zum ursprünglichen Fundament zurückkehrt - sieh z.B, Das Dritte Manifest.

Andere Kritiken von SQL schließen ein:

  • Durchführungen sind zwischen Verkäufern unvereinbar. Im besonderen Datum und der Zeitsyntax ändern sich Schnur-Verkettung, s, und Vergleich-Fall-Empfindlichkeit vom Verkäufer dem Verkäufer. Eine besondere Ausnahme ist PostgreSQL, der um den Gehorsam kämpft.

Quer-Verkäufer-Beweglichkeit

Populäre Durchführungen von SQL lassen allgemein Unterstützung für grundlegende Eigenschaften von Normalem SQL, solcher als oder Datentypen weg. Das offensichtlichste solche Beispiele, und beiläufig der populärste kommerzielle Eigentums-SQL DBMSs, sind Orakel (dessen sich als benimmt, und hat an einem Typ Mangel), und die FRAU SQL Server (vor der 2008-Version). Infolgedessen kann SQL Code zwischen Datenbanksystemen ohne Modifizierungen selten getragen werden.

Es gibt mehrere Gründe für diesen Mangel an der Beweglichkeit zwischen Datenbanksystemen:

  • Die Kompliziertheit und Größe des SQL Standards bedeuten, dass die meisten implementors den kompletten Standard nicht unterstützen.
  • Der Standard gibt Datenbankverhalten in mehreren wichtigen Gebieten (z.B, Indizes, Dateilagerung …) nicht an, Durchführungen verlassend, um zu entscheiden, wie man sich benimmt.
  • Der SQL Standard gibt genau die Syntax an, die ein übereinstimmendes Datenbanksystem durchführen muss. Jedoch ist die Spezifizierung des Standards der Semantik von Sprachkonstruktionen weniger bestimmt, zu Zweideutigkeit führend.
  • Viele Datenbankverkäufer haben große vorhandene Kundenbasen; wo die SQL Standardkonflikte mit dem vorherigen Verhalten der Datenbank des Verkäufers, der Verkäufer widerwillig sein kann, rückwärts gerichtete Vereinbarkeit zu brechen.
  • Softwareverkäufer wünschen häufig, Inkompatibilitäten mit anderen Produkten zu schaffen, weil es einen starken Ansporn für ihre vorhandenen Benutzer zur Verfügung stellt, loyal zu bleiben (sieh Verkäufer sich - in schließen lassen).

Standardisierung

SQL wurde als ein Standard von American National Standards Institute (ANSI) 1986 als SQL-86 und die Internationale Organisation für die Standardisierung (ISO) 1987 angenommen. Heutzutage ist der Standard der dauernden Verbesserung durch das Gemeinsame Technische Komitee ISO/IEC JTC 1, Informationstechnologie, Unterausschuss SC 32, Datenverwaltung und Austausch unterworfen, die sich zu ISO sowie IEC anschließen. Er wird allgemein angezeigt, sich dem Muster anpassend: ISO/IEC 9075-n:yyyy Teil n: Titel oder ISO/IEC 9075 als eine Abkürzung.

ISO/IEC 9075 wird durch ISO/IEC 13249 ergänzt: SQL Multimedia und Anwendungspakete, der SQL definiert, haben Schnittstellen und Pakete gestützt, um Anwendungen wie Video, Audio- und Raumdaten weit auszubreiten.

Bis 1996 hat das Nationale Institut für Standards und Technologie (NIST) Datenverwaltungsstandardprogramm SQL DBMS Gehorsam des SQL Standards bescheinigt. Verkäufer selbstbescheinigen jetzt den Gehorsam ihrer Produkte.

Der ursprüngliche SQL Standard hat erklärt, dass die offizielle Artikulation für SQL "es Warteschlange el" ist. Viele englisch sprechende Datenbankfachleuten verwenden noch die Sonderartikulation (wie das Wort "Fortsetzung") einschließlich Donald Chamberlins selbst.

Der SQL Standard ist mehrere Revisionen, wie gezeigt, unten durchgegangen:

Interessenten können SQL Standarddokumente in ISO, IEC oder ANSI kaufen. Ein Entwurf von SQL:2008 ist als ein Schwirren-Archiv frei verfügbar.

Standardstruktur

Der SQL Standard wird in neun Teile geteilt.

  • ISO/IEC 9075-1:2011 Teil 1: Fachwerk (SQL/Framework). Es stellt logische Konzepte zur Verfügung.
  • ISO/IEC 9075-2:2011 Teil 2: Fundament (SQL/Foundation). Es enthält die zentralsten Elemente der Sprache und besteht sowohl aus obligatorischen als auch aus optionalen Zusatzeinrichtungen.
  • ISO/IEC 9075-3:2008 Teil 3: Schnittstelle des Anruf-Niveaus (SQL/CLI). Es definiert verbindende Bestandteile (Strukturen, Verfahren, Variable bindings), der verwendet werden kann, um SQL Behauptungen aus Anwendungen durchzuführen, die in Ada, C beziehungsweise C ++, COBOL, Fortran, MUMPS, Pascal oder PL/I geschrieben sind. (Weil Java Teil 10 sieht.) wird SQL/CLI auf solche Art und Weise definiert, dass SQL Behauptungen und SQL/CLI Verfahren-Anrufe als getrennt aus dem Benennen-Anwendungsquellcode behandelt werden. Offene Datenbankkonnektivität ist eine wohl bekannte Obermenge von SQL/CLI. Dieser Teil des Standards besteht allein aus obligatorischen Eigenschaften.
  • ISO/IEC 9075-4:2011 Teil 4: Beharrliche Versorgte Module (SQL/PSM) standardisiert Es Verfahrenserweiterungen für SQL, einschließlich des Flusses von Kontrolle, Bedingungsberühren, Behauptungsbedingungssignalen und Wiedersignalen, Cursors und lokalen Variablen und Anweisung von Ausdrücken zu Variablen und Rahmen. Außerdem formalisiert SQL/PSM Behauptung und Wartung von beharrlichen Datenbanksprachroutinen (z.B, "hat Verfahren" versorgt). Dieser Teil des Standards besteht allein aus optionalen Zusatzeinrichtungen.
  • ISO/IEC 9075-9:2008 Teil 9: Management von Außendaten (SQL/MED). Es stellt Erweiterungen auf SQL zur Verfügung, die Auslandsdaten-Streifbänder und datalink Typen definieren, um SQL zu erlauben, Außendaten zu führen. Außendaten sind Daten, der für, aber nicht geführt durch, ein SQL-basierter DBMS zugänglich ist. Dieser Teil des Standards besteht allein aus optionalen Zusatzeinrichtungen.
  • ISO/IEC 9075-10:2008 Teil 10: Gegenstand-Sprache Bindings (SQL/OLB). Es definiert die Syntax und Semantik von SQLJ, der in Java eingebetteter SQL ist (sieh auch Teil 3). Der Standard beschreibt auch Mechanismen, binäre Beweglichkeit von SQLJ Anwendungen zu sichern, und gibt verschiedene javanische Pakete und ihre enthaltenen Klassen an. Dieser Teil des Standards besteht allein aus optionalen Zusatzeinrichtungen. Im Vergleich mit SQL/OLB JDBC - der nicht ist, definiert ein Teil des SQL Standards - eine API.
  • ISO/IEC 9075-11:2011 Teil 11: Information und Definitionsdiagramme (SQL/Schemata). Es definiert das Informationsdiagramm- und Definitionsdiagramm, ein Standardset von Werkzeugen zur Verfügung stellend, um das SQL Datenbank- und Gegenstand-Selbstbeschreiben zu machen. Diese Werkzeuge schließen den SQL-Gegenstand-Bezeichner, die Struktur und die Integritätseinschränkungen, die Sicherheit und die Genehmigungsspezifizierungen, die Eigenschaften und die Pakete von ISO/IEC 9075, Unterstützung von Eigenschaften ein, die durch SQL-basierte DBMS Durchführungen, SQL-basierte DBMS Durchführungsinformation und nach Größen ordnende Sachen und die durch die DBMS Durchführungen unterstützten Werte zur Verfügung gestellt sind. Dieser Teil des Standards enthält sowohl obligatorische als auch optionale Zusatzeinrichtungen.
  • ISO/IEC 9075-13:2008 Teil 13: SQL Routinen und Typen mit der javanischen Programmiersprache (SQL/JRT). Es gibt die Fähigkeit an, statische javanische Methoden als Routinen aus SQL Anwendungen ('Java in der Datenbank') anzurufen. Es verlangt auch nach der Fähigkeit, javanische Klassen zu verwenden, weil SQL benutzerbestimmte Typen strukturiert hat. Dieser Teil des Standards besteht allein aus optionalen Zusatzeinrichtungen.
  • ISO/IEC 9075-14:2011 Teil 14: XML-zusammenhängende Spezifizierungen (SQL/XML). Es gibt SQL-basierte Erweiterungen an, um XML in Verbindung mit SQL zu verwenden. Der XMLType Datentyp, wird sowie mehrere Routinen, Funktionen und XML-to-SQL Datentyp mappings eingeführt, um Manipulation und Lagerung von XML in einer SQL Datenbank zu unterstützen. Dieser Teil des Standards besteht allein aus optionalen Zusatzeinrichtungen.

ISO/IEC 9075 wird durch ISO/IEC 13249 SQL Multimedia- und Anwendungspakete ergänzt. Dieser nah zusammenhängende, aber getrennte Standard wird von demselben Komitee entwickelt. Es definiert Schnittstellen und Pakete, die auf SQL basieren. Das Ziel ist ein vereinigter Zugang zu typischen Datenbankanwendungen wie Text, Bilder, Datenbergwerk oder Raumdaten.

  • ISO/IEC 13249-1:2007 Teil 1: Fachwerk
  • ISO/IEC 13249-2:2003 Teil 2: Voller Text
  • ISO/IEC 13249-3:2011 Teil 3: Räumlicher
  • ISO/IEC 13249-5:2003 Teil 5: Noch Image
  • ISO/IEC 13249-6:2006 Teil 6: Daten, die abbauen
  • ISO/IEC 13249-8:xxxx Teil 8: Registrierungen von Metadata (MDR) (arbeiten im Gange)

Alternativen

Eine Unterscheidung sollte zwischen Alternativen zu Verwandtschaftsanfragensprachen und Alternativen zu SQL gemacht werden. Unten werden Verwandtschaftsalternativen zu SQL vorgeschlagen. Sieh Navigationsdatenbank und NoSQL für Alternativen zum Verwandtschafts-:

  • .QL - objektorientierter Datalog
  • 4D Anfragensprache (4D QL)
  • Datalog
  • HTSQL - URL-ADRESSE hat Anfragenmethode gestützt
  • IBM Business System 12 (IBM BS12) - eines der ersten völlig Verwandtschaftsdatenbankverwaltungssysteme, eingeführt 1982
  • ISBL
  • Java Persistence Query Language (JPQL) - Die Anfragensprache, die durch die javanische Fortsetzungs-API verwendet ist, und Überwintert Fortsetzungsbibliothek
  • JoSQL - Läufe SQL als Schnuren schriftliche Behauptungen, um Sammlungen aus dem javanischen Code zu fragen.
  • LINQ - Läufe SQL wie Sprache schriftliche Behauptungen bauen, um Sammlungen direkt aus dem.Net-Code zu fragen.
  • Gegenstand-Anfragensprache
  • QBE (Abfrage Durch das Beispiel) geschaffen von Moshè Zloof, IBM 1977
  • Quel hat 1974 durch das Projekt von U.C. Berkeley Ingres eingeführt.
  • Tutorenkurs D
  • SBQL - Stack Based Query Language (SBQL)
  • UnQL - die Unstrukturierte Anfragensprache, eine funktionelle Obermenge von SQL, der von den Autoren von SQLite und CouchDB entwickelt ist
  • XQuery

Siehe auch

  • Vergleich von mit dem Gegenstandverwandtschaftsdatenbankverwaltungssystemen
  • Vergleich von Verwandtschaftsdatenbankverwaltungssystemen
  • D (Datensprachspezifizierung)
  • D4 (Programmiersprache) (eine Durchführung von D)
  • Hierarchisches Modell
  • Liste von Verwandtschaftsdatenbankverwaltungssystemen
  • MUMPS
  • NoSQL

Referenzen

  • .
  • (C2 wiki)
  • C. J. Date mit Hugh Darwen: Ein Handbuch zum SQL Standard: Benutzer führen in die Standarddatenbanksprache SQL, 4. Hrsg., Addison Wesley, die USA 1997, internationale Standardbuchnummer 978-0201964264

Links


Artbildung / Die Hormuz-Straße
Impressum & Datenschutz