Enzyklopädie > Artikel
SQL
SQL (Structured Query Language) ist die Datenbanksprache zum Umgang mit relationalen (=tabellenorientierten) Strukturen. SQL ist seit 1986 durch ISO Normen in mehreren Versionen standardisiert (ISO/IEC 9075, der aktuelle Standard hat über 2000 Seiten) und wird von nahezu jedem relationalen Datenbankmanagementsystem unterstützt, wobei allerdings jede Implementierung in mehr oder weniger wichtigen Eigenheiten vom Standard abweicht.
SQL ist eine deskriptive Sprache, d.h. es wird das gewünschte Ergebnis spezifiziert, aber nicht (im Unterschied zu Programmiersprachen wie z.B. Java, C oder PHP) der Weg dorthin.
Die Befehle von SQL gliedern sich in:
- Data Definition Language (DDL): Befehle zur Definition des Datenbankschemas; beispielsweise zum Anlegen, Löschen, oder Ändern einer Tabelle.
Beispiel:
CREATE TABLE abteilungen (abtlgnr INT, abtlgname CHAR(30)); - Data Manipulation Language (DML): Befehle zur Datenmanipulation; beispielsweise zum Einfügen, Löschen, Ändern oder Abfragen von Sätzen einer Tabelle.
Beispiele:
INSERT INTO abteilungen VALUES (25, 'Entwicklungsabteilung');
SELECT * FROM abteilungen WHERE abtlgnr > 20; - Data Control Language (DCL): Befehle zur Transaktionskontrolle und Rechteverwaltung; beispielsweise zum Abschließen oder Zurücknehmen einer Transaktion oder zur Vergabe von Benutzerberechtigungen.
Beispiele:
COMMIT;
GRANT SELECT ON abteilungen TO maier;
Der SQL-Standard definiert eine Vielzahl von Datentypen für Zahlen, Zeichenketten, binäre Strings, Datumsobjekte und 'große Objekte' (BLOB), wie beispielsweise Bilder oder auch Texte. In optionalen Erweiterungen des Standards werden unter anderem auch benutzerdefinierte Datentypen, nicht skalare Typen (ARRAY) und einfache objektorientierte Funktionalitäten definiert. Die Verfügbarkeit dieser Optionen variiert allerdings sehr stark zwischen den einzelnen Datenbankmanagementsystemen.
Einbettung in Programmiersprachen
SQL kann auch in Programmiersprachen eingebettet werden. Dabei gibt es unterschiedliche Varianten:
- Embedded SQL: Die SQL-Statements stehen direkt im Source Code und werden mit einem PreCompiler in Funktionsaufrufe der Zielsprache übersetzt.
- Aufruf von Programmierschnittstellen: Dabei werden die SQL-Statements als Parameter sprachspezifischen Funktionsaufrufen übergeben. Bekannte Beispiele dafür sind JDBC, ODBC und ADO.
- Nutzung von Persistenzframeworks: Dabei wird durch Verwendung spezifischer (meist objektorientierter) Frameworks der Zugriff auf die Datenbank abstrahiert. Der wohl bekannteste Vertreter dafür ist Hibernate.