Für SQL gibt es diverse Standards, somit kann eine SQL Befehle Übersicht relativ umfangreich werden. Glücklicherweise halten sich die meisten an den ANSII Standard, bzw. wird der aktuelle ISO/IEC 9075 ab 2008 von den meisten Herstellern unterstützt. Diese SQL Befehle Übersicht sowie die nachfolgende SQL Befehl Liste folgt also diesem SQL Standard.
SQL Befehle Übersicht
SQL-Befehle lassen sich in drei Kategorien unterteilen
- (DML) Befehle zur Datenmanipulation (Ändern, Einfügen, Löschen)
- (DDL) Befehle zur Definition des Datenbankschemas
- (DCL) Befehle für die Rechteverwaltung und Transaktionskontrolle.
Die Bezeichnung SQL bezieht sich auf das englische Wort “query” (deutsch: „Abfrage“). Mit Abfragen werden die in einer Datenbank gespeicherten Daten abgerufen, also dem Benutzer oder einer Anwendersoftware zur Verfügung gestellt. Das Ergebnis einer Abfrage sieht wiederum aus wie eine Tabelle und kann oft auch wie eine Tabelle angezeigt, bearbeitet und weiterverwendet werden.
SQL Befehel Übersicht: Einfachste Abfrage
SELECT * FROM Student
listet alle Spalten und alle Zeilen der Tabelle Student auf.
SQL Befehel Übersicht: Abfrage mit Spaltenauswahl
SELECT MatrNr, Name FROM Student
listet die Spalten MatrNr und Name aller Zeilen der Tabelle Student auf.
SQL Befehle Übersicht: Abfrage mit eindeutigen Werten
SELECT DISTINCT Name FROM Student
listet nur unterschiedliche Einträge der Spalte Name aus der Tabelle Student auf. Doppelt aufgeführte Namen werden unterbunden.
SQL Befehle Übersicht: Abfrage mit Umbenennung
SELECT MatrNr AS Matrikelnummer, Name FROM Student
listet die Spalten MatrNr und Name aller Zeilen der Tabelle Student auf. MatrNr wird beim Anzeigeergebnis als Matrikelnummer aufgeführt.
SQL Befehel Übersicht: Abfrage mit Filter
SELECT VorlNr, Titel FROM Vorlesung WHERE Titel = 'ET'
listet VorlNr und Titel aller derjenigen Zeilen der Tabelle Vorlesung auf, deren Titel ‘ET’ ist.
Die solchermaßen strukturierte, häufig verwendete Anweisung wird nach den Anfangsbuchstaben auch als „SFW-Block“ bezeichnet.
SQL Befehel Übersicht: Abfrage mit Filter nach Inhalt
SELECT Name FROM Student WHERE Name LIKE 'F%'
listet die Namen aller Studenten auf, deren Namen mit F beginnen. (im Beispiel: Fichte und Fauler).
LIKE kann mit verschiedenen Platzhaltern belegt werden: _ steht für ein fehlendes Zeichen und % steht für eine beliebige Zeichenfolge. So können mit der Abfrage auch Felder nach Inhalt durchsucht werden.
SQL Befehel Übersicht: Abfrage mit Filter und Sortierung
SELECT Vorname, Name, StrasseNr, Plz, Ort FROM Student WHERE Plz = '20095' ORDER BY Name
listet Vorname, Name, StrasseNr, Plz und Ort aller Studenten aus dem angegebenen Postleitzahlbereich sortiert nach Nachnamen.
SQL Befehel Übersicht: Abfrage mit verknüpften Tabellen
SELECT Vorlesung.VorlNr, Vorlesung.Titel, Professor.PersNr, Professor.Name FROM Professor, Vorlesung WHERE Professor.PersNr = Vorlesung.PersNr
Die Aufzählung hinter FROM legt die Datenquellen fest: an dieser Stelle können mit Hilfe sogenannter JOINs mehrere Tabellen über Schlüsselfelder miteinander verknüpft werden, so dass Daten aus verschiedenen Tabellen zusammengeführt und angezeigt werden.
Innerer natürlicher Verbund: Alle Datensätze aus den Tabellen Professor und Vorlesung, die den gleichen Wert im Feld PersNr haben. Professoren ohne Vorlesung und Vorlesungen ohne Professor werden damit nicht angezeigt.
Dies ist theoretisch äquivalent zu:
SELECT Vorlesung.VorlNr, Vorlesung.Titel, Professor.PersNr, Professor.Name FROM Professor INNER JOIN Vorlesung ON Professor.PersNr = Vorlesung.PersNr
Vorsicht: Nicht alle Implementierungen verstehen die Schlüsselworte „INNER“, „OUTER“ und „JOIN“.
Tabellen können auch ohne Verwendung von Schlüsselfeldern miteinander verknüpft werden:
SELECT Vorlesung.Titel, Professor.Name FROM Professor, Vorlesung WHERE Professor.PersNr = Vorlesung.PersNr
SQL Befehel Übersicht: Linker äußerer Verbund
SELECT Vorlesung.VorlNr, Vorlesung.Titel, Professor.PersNr, Professor.Name FROM Professor LEFT OUTER JOIN Vorlesung ON Professor.PersNr = Vorlesung.PersNr
Äußerer linker Verbund: Alle Datensätze der Tabelle Professor und alle Datensätze aus beiden Tabellen, die den gleichen Wert im Feld PersNr haben. Professoren ohne Vorlesung sind enthalten, Vorlesungen ohne Professor sind nicht enthalten.
Die folgende Abfrage liefert nur diejenigen Datensätze, zu denen kein passender Datensatz im linken äußeren Verbund existiert (alle Professoren, die keine Vorlesungen halten):
SELECT Professor.PersNr, Professor.Name FROM Professor LEFT OUTER JOIN Vorlesung ON Professor.PersNr = Vorlesung.PersNr WHERE Vorlesung.PersNr IS NULL
Das Gleiche mittels einer Unterabfrage:
SELECT a.PersNr, a.Name FROM Professor a WHERE NOT EXISTS (SELECT * FROM Vorlesung WHERE PersNr = a.PersNr)
SQL Befehel Übersicht: Gruppierung mit Aggregat-Funktionen
SELECT COUNT(Vorlesung.PersNr) AS Anzahl, Professor.PersNr, Professor.Name FROM Professor LEFT OUTER JOIN Vorlesung ON Professor.PersNr = Vorlesung.PersNr GROUP BY Professor.Name, Professor.PersNr
Äußerer linker Verbund und Gruppierung, Aggregation: Zählt die Anzahl der Vorlesungen pro Professor.
Bemerkung: COUNT(Professor.PersNr) oder COUNT(*) wären falsch (Nullwerte sollen nicht mitgezählt werden).
Die Seite wird demnächst mit weiteren SQL Befehlen erweitert, bzw. die SQL Befehle Übersicht wird fertiggestellt.
Quelle für diese SQL Befehle Übersicht: http://de.wikipedia.org/wiki/SQL
Lizenzhinweis: Diese SQL Befehle Übersicht steht unter der Lizenz CC-BY-SA.
Schlüsselworte: “sql befehle übersicht” 880/180 2.46 CHF und “sql befehl” 3600/198000 1.95 CHF