SQL (Structured Query Language) ist eine Abfragesprache für relationale Datenbanken. Sie hat eine relativ einfache, an die Umgangssprache angelehnte, Syntax. Durch ihre Rolle als Quasi-Standard ist SQL von großer Bedeutung, da eine weitgehende Unabhängigkeit von der benutzten Software erzielt werden kann. Allerdings weichen in der Praxis die einzelnen (insbesondere proprietären) Implementierungen voneinander ab (z.B. Microsofts JetSQL, das in neueren Versionen von Access verwendet wird, oder Oracle Sql).
Es gibt auch Open Source-Datenbanksysteme, wie z.B. MySQL oder PostgreSQL, die beide gerne im Zusammenhang mit PHP benutzt werden.
Geschichte
Die Grundlage aller rationalen Datenbanken legte 1970 Edgar F. Codd mit seinem Artikel "A Relational Model of Data for Large Shared Data Banks". Codd arbeitete damals im IBM-Forschungslabor in San Jose Kalifornien. Bei den auf diesen Artikel folgenden weltweiten Forschungsarbeiten war ein Aspekt die Entwicklung relationaler Sprachen. Die Bedeutendste von der komerziellen Sichtweise her war die "Structured English Query Language" SEQUEL, die in den IBM Forschungslabors 1974 entwickelt wurde. 1976 wurde SEQUEL /2 definiert und aus rechtlichen Gründen in SQL umbenannt. Der Prototyp System R wurde 1977 funktionsfähig implementiert und enthielt einen Großteil der Sprache SQL.
Nach den Erfolgen bei den Benutzern von System R, beschlossen mehrere Firmen SQL basierte Datenbanken auf den Markt zu bringen. Das System ORACLE der Firma Relational Software Inc. (später in Oracle Corporation umbenannt) kam 1980 vor IBMs SQL/DS (1981) auf den Markt. Die Urversion der noch aktuell verfügbaren SQL-Implementierung DB2 von IBM entstand 1983. INGRES folgte im Jahre 1985, SYBASE 1986. SQL hatte sich innerhalb von 10 Jahren zum de-facto Standard in der Welt der Datenbanken etabliert.
Das American National Standards Institute (ANSI) beauftragte 1982 die Standarisierung einer relationalen Sprache, die 1986 ratifiziert wurde und zum guten Teil aus dem IBM-Dialekt von SQL bestand. 1987 wurde SQL/86 auch als ISO-Standard akzeptiert. Aktualisierungen und Erweiterungen erfolgten mit SQL/89, SQL/92 und SQL/99.
Beispiele
select * from Adressen where Name="Müller"
- Wählt alle Einträge aus der Tabelle Adressen, bei denen in der Spalte Name der Wert Müller steht.
select Name from Adressen
- Zeigt die Spalte Name aus der Tabelle Adressen an
insert into Adressen (Name, Vorname, Ort) values ("Schroeder", "Knut", "Köln")
- Fügt eine Zeile mit den geg. Werten für die Spalten Name, Vorname und Ort in die Tabelle Adressen hinzu
update Adressen set Ort="Berlin" where Name="Schroeder"
- Ändert das Feld Ort aller Einträge mit Namen "Schroeder" auf "Berlin"
truncate table Adressen
- Löscht alle Einträge aus der Tabelle Adressen
delete from Adressen where name="Müller"
- Löscht alle Datensätze aus der Tabelle Adressen mit dem Namen Müller
drop table Adressen
- Löscht die gesamte Tabelle Adressen