WikiDer > SQL

SQL

SQL (Strukturierte Abfragesprache) ist ein ANSIA/ISO-Standardsprache für eine Beziehung Datenbankverwaltungssystem (DBMS). Es ist eine standardisierte Sprache, die für Aufgaben wie Abfragen und Ändern verwendet werden kann Daten in einem relationale Datenbank. SQL kann mit fast allen modernen relationalen Datenbankprodukten verwendet werden.

SQL ist ein Sprache der vierten Generation (G4-Sprache), weil sie es nicht tun Imperativ aber deklarativ ist wie Prolog.[1][2]

Beschreibung

SQL basiert auf dem relationale Algebra und wurde in den 1970er Jahren von IBM (San Jose) Seit der Einführung von SQL haben mehrere SQL-Versionen das Licht der Welt erblickt. In den 1980er Jahren wurde SQL standardisiert, gefolgt von Innovationen wie SQL-92, SQL-99, SQL-2003 und darüber hinaus.[3]

Fast jedes DBMS hat SQL-92 seine eigenen zusätzlichen Funktionen hinzugefügt. Das bedeutet, dass Computerprogramme, bei denen die Datenbankschnittstelle mit SQL geschrieben wurde, nicht unbedingt problemlos von einer SQL-kompatiblen Datenbank in eine andere migrieren müssen. In vielen Fällen hat der Softwareentwickler eine SQL-Funktion verwendet, die nur in der SQL-Implementierung eines bestimmten DBMS vorhanden ist.

Ursprünglich wurde SQL als Abfragesprache für die Endbenutzer. Die Idee war das Geschäftsleiter SQL zur Analyse von Geschäftsdaten. Danach stellte sich heraus, dass SQL zu komplex ist, um von Endbenutzern angewendet zu werden. Schließlich setzt der Einsatz von SQL eine vollständige Kenntnis der Struktur der abzufragenden Datenbank voraus. Heute sind die Ansätze Programmierer aus der Anwendung die Datenbank mit SQL über a Programmierschnittstelle (API), wie zum Beispiel ODBC oder ADO (Fenster), JDBC (Java) oder eine produktspezifische API. SQL hat sich damit im Wesentlichen von einer Endbenutzersprache zu einer Brücke zwischen Anwendungen und Datenbanken entwickelt.

SQL lässt sich in vier Teile unterteilen: die Abfragesprache, die Datenmanipulierungssprache (DML), die Datenkontrollsprache (DCL) und die Datendefinitionssprache (DTL).

Operation

SQL verwendet sogenannte für die Kommunikation mit dem DBMS Abfrages. Eine Abfrage ist a ASCIIstring und ist ein an das DBMS gesendeter Befehl. Das DBMS interpretiert und führt den Befehl aus und sendet schließlich Daten an das Befehlsprogramm zurück.

Eine SQL-Abfrage sieht beispielsweise so aus:

WÄHLEN*VONtblKundenWOtblKunden.Anerkennung<0;

Die obige Abfrage hat folgende Bedeutung:

  • WÄHLEN: dahinter steht, welche Felder (Spalten) ausgewählt sind; * bedeutet 'alle Felder'.
  • VON: danach kommt der Name der Tabelle, in diesem Fall tblKunden.
  • WO: Es folgen Feldnamen mit Werten, die die Felder erfüllen müssen.
    In diesem Fall: alle Datensätze, deren Feld Anerkennung in der Tabelle tblKunden ist kleiner als 0.

Mit SQL ist es möglich, Tabellen zu erstellen, zu ändern, zu füllen und zu löschen.

Erstellen Sie eine Tabelle

ERSTELLENTABELLETabellenname(Feldname1Feldtyp1[NICHTNULL][PRIMÄRSCHLÜSSEL|EINZIGARTIG],Feldname2Feldtyp2[NICHTNULL][PRIMÄRSCHLÜSSEL|EINZIGARTIG][,...]);

Tabelle löschen

FALLENTABELLETabellenname;

Eine Tabelle füllen

Siehe auch: Einfügen (SQL)
EINFÜGENINTabellenname[Feldname1[,Feldname2[,....]]]WERTE(Wert1[,Wert2[,...]]);

Lesen Sie eine Tabelle

Siehe auch: Auswählen (SQL)
WÄHLENFeld na(ein)ich(und)VONTabellenname[WOBedingung][GRUPPEDURCHFeldname[,Feldname...]][HABENBedingung2][AUFTRAGDURCHFeldname[ASC|DESC][,Feldname[ASC|DESC]...]];

Daten aktualisieren

AKTUALISIEREN<Tabelle-Name>EINSTELLENFeldname=Wert,Feldname2=Wert2WOBedingung;

SQL-Schlüsselwörter sind in GROSSBUCHSTABEN, optionaler Code zwischen [ und ], Iterationen mit ...

SQL-Ausdrücke

AusdruckBeschreibungAbfrage
DATENBANK ERSTELLENneue DatenbankCREATE DATABASE Datenbankname;
TABELLE ERSTELLENneuer TischCREATE TABLE Tabellenname(Spalte1 Text, Spalte2 Ganzzahl [, ...] );
EINFÜGENfüge neue Daten in die Tabelle einINSERT INTO Tabellenname (Spalte1, Spalte2 [, ...] ) VALUES (Wert1, Wert2 [, ...] );
WÄHLENDaten aus einer Tabelle auswählenSELECT Spalte1, Spalte2 [, ...] FROM Tabellenname where Bedingung;
AKTUALISIERENvorhandene Zeilen (Englisch: Reihen) ändernUPDATE Tabellenname SET Spalte1 = Wert1 [, ...] WHERE Bedingung;
LÖSCHENZeilen aus einer Tabelle löschenDELETE FROM Tabellenname WHERE-Bedingung;
KÜRZENalle Zeilen aus einer Tabelle löschenTRUNCATE TABLE Tabellenname;
FALLENTabelle komplett aus Datenbank löschenDROP TABLE-Tabellenname;

Transaktionen

EIN Transaktion besteht aus einer Folge von einer oder mehreren Datenbankoperationen. Die Transaktion ermöglicht, dass eine solche Reihe von Operationen entweder alle oder keine von ihnen ausgeführt wird.

Ein Beispiel ist die Datenbank einer Bank, wo bei einer Überweisung zunächst der Saldo von Konto A mit einem SQL-Befehl verringert und dann der Saldo von Konto B mit einem SQL-Befehl erhöht wird. Tritt ein Fehler auf, nachdem der Saldo auf Konto A verringert wurde, aber bevor der Saldo auf Konto B erhöht wurde, „verschwindet“ der Betrag. Die Datenbank ist dann "inkonsistent". Dieser unerwünschte Zustand kann vermieden werden, indem die beiden SQL-Anweisungen innerhalb einer Transaktion beendet werden.

Eine Transaktion kann explizit gestartet werden (FANG AN ZU ARBEITEN oder TRANSAKTION STARTEN) oder implizit beim ersten Lese- oder Schreibbefehl seit der vorherigen Transaktion (oder seit dem Sitzungsstart).

Es gibt zwei Befehle, um eine Transaktion abzuschließen:

  • VERPFLICHTEN: Die Transaktion wird ausgeführt. Wenn der Commit-Befehl erfolgreich von der Datenbank ausgeführt wird, werden die Änderungen schließlich in der Datenbank gespeichert. Einige Anweisungen enthalten einen impliziten Commit. Manchmal ist es möglich, einen impliziten Commit selbst zu definieren.
  • ROLLBACK oder ABBRECHEN: Die Transaktion wird nicht festgeschrieben. Die Daten behalten den Wert, den sie vor der Transaktion hatten. Einige Datenbanken führen automatisch ein Rollback durch, wenn während einer Transaktion ein Fehler auftritt.

Syntax und Arbeitsweise unterscheiden sich geringfügig je nach Datenbanksystem wie z DB2, MySQL, Orakel, PostgreSQL, SQLite und andere.

In Oracle beispielsweise beinhaltet die Ausführung von DDL (Datendefinitionssprache) implizit einen Commit, sodass ein solcher Befehl nicht zurückgesetzt werden kann (geROLLBACKt). Im Gegensatz dazu können in PostgreSQL DDL-Befehle in einer Transaktion ausgeführt und dann per ROLLBACK zurückgesetzt werden.

LOSLEGENARBEIT;AKTUALISIERENTabelleEINSTELLENSpalte1=Wert1,Spalte2=Wert2WOSpalten-ID=anID;KOMITEE;

Siehe auch

Externe Links

  • (und) SQLzoo.net: SQL mit DIY-Befehlen lernen
  • (und) SQL-Geige: Versuchen Sie SQL mit einer Auswahl an verschiedenen DBMS
  • (NL) 1Keydata.com: Dieses SQL-Tutorial soll Anfängern die Bausteine ​​der Datenbanksprache SQL beibringen