SQL-Kurzreferenz
Die SQL-Kurzreferenz gibt eine kompakte tabellarische Übersicht der wichtigsten SQL-Befehle. Die Beispiele beziehen sich auf die University-Datenbank aus dem SQL-Tutorial. Hinweise zur Syntax-Notation: Die SQL-Schlüsselwörter sind in Großbuchstaben geschrieben, z.B. SELECT, INSERT, UPDATE. Optionale Bestandteile ("Klauseln") eines SQL-Befehls werden in eckige Klammern gesetzt.
Befehl | Art | Syntax | Wirkung | Beispiel |
---|---|---|---|---|
CREATE DATABASE | DDL | CREATE DATABASE datenbank_name; | Datenbank erstellen. | CREATE DATABASE university; |
DROP DATABASE | DDL | DROP DATABASE datenbank_name; | Datenbank löschen. |
DROP DATABASE university; |
ALTER DATABASE | DDL | ALTER DATABASE datenbank_name MODIFY NAME = neuer_name; | Datenbank ändern. Datenbank wird geändert, z.B. der Name. |
ALTER DATABASE university
MODIFY NAME = university2; |
SELECT * | DML | SELECT * FROM Tabellenliste; | Tabelleninhalte abfragen. Gebe alle Zeilen und alle Spalten der Tabellen zurück. |
SELECT * FROM studiengang; |
SELECT (allgemein) | DML |
SELECT Spaltenliste FROM Tabellenliste
WHERE Bedingungen |
Tabelleninhalte abfragen. Gebe die angegebenen Spalten der angegebenen Tabellen zurück, gefiltert nach Zeilen, die die Bedingungen erfüllen. |
SELECT Student.Name, Vorname, Studiengang.Name AS StgName
FROM Student, Studiengang WHERE Student.StudiengangID= Studiengang.ID; |
SELECT mit ORDER BY | DML | SELECT Spaltenliste FROM Tabellenliste
WHERE Bedingungen ORDER BY Spaltennamen; |
Tabelleninhalte abfragen und sortieren. Wie SELECT, die Spalten werden zusätzlich nach der angegebenen Reihenfolge sortiert, ASC: aufsteigend, DESC: absteigend. |
SELECT Student.Name, Vorname, Studiengang.Name AS StgName
FROM Student, Studiengang WHERE Student.StudiengangID= Studiengang.ID ORDER BY Studiengang.Name ASC, Student.Name DESC; |
SELECT DISTINCT | DML | SELECT DISTINCT Spaltenliste FROM Tabelle; | Gebe nur unterschiedliche Werte zurück. DISTINCT bewirkt, das mehrfach auftretende Werte nur einmal ausgegeben werden. Das Schlüsselwort wird stets nach SELECT und vor die Spaltennamen eingefügt. |
SELECT DISTINCT Vorname FROM Student; |
SELECT mit GROUP BY | DML | SELECT Attributliste FROM Tabellenliste WHERE Bedingungen GROUP BY Attribut1, Attribut2 | Zeilen gruppieren. Durch die GROUP BY-Klausel werden alle Zeilen, die in einer oder mehreren Spalten den gleichen Wert enthalten, in jeweils einer Gruppe zusammengefasst. Gebe Anzahl der Studenten aus, gruppiert nach Art des Studiengangs. |
SELECT STG.Art, COUNT(S.ID) AS AnzStudis
FROM Student AS S, Studiengang AS STG WHERE S.StudiengangID = STG.ID GROUP BY STG.Art; |
SELECT mit INNER JOIN | DML |
SELECT Attributliste FROM Tabelle
INNER JOIN Tabelle2 ON JOIN-Bedingung [WHERE Auswahl-Bedingung] |
Tabellen verknüpfen. Die JOIN-Klausel wird verwendet, um eine Tabelle durch explizite Angabe der Fremdschlüssel-Bedingung mit einer anderen Tabelle zu verknüpfen. Ein INNER JOIN liefert nur diejenigen Datensätze, die passende Werte in beiden Tabellen haben. |
SELECT Student.Name, Vorname, Matrikelnr,
Studiengang.Name AS Stg_Name FROM Student INNER JOIN Studiengang ON Student.StudiengangID = Studiengang.ID; |
INSERT INTO | DML | INSERT INTO Tabelle [Attributliste] VALUES Werteliste; | Tabelleninhalte einfügen. Füge die angegebenen Werte in die Spalten der Tabelle ein. |
INSERT INTO Student (Name, Vorname, Matrikelnr, StudiengangID, Semester)
VALUES ('Bart', 'Simpson', 12349, 3, 4), ('Marge', 'Simpson', 12350, 3, 2); |
UPDATE | DML | UPDATE Tabelle SET Attribut1=Wert1, Attribut2=Wert2,…Attributn=Wertn [WHERE Bedingung]; | Tabelleninhalte ändern. Ändere Werte der Tabelle ab. |
UPDATE Student
SET Name = 'Muster', Vorname = 'Horst' WHERE Name = 'Mustermann'; |
DELETE | DML | DELETE FROM Tabelle [ WHERE Bedingungen ] ; | Tabelleninhalte löschen. Lösche Zeilen der Tabelle, die den angegebenen Bedingungen entsprechen. Läßt man die WHERE-Klausel weg. wird der komplette Inhalt der Tabelle gelöscht. |
DELETE FROM Student WHERE Name = 'Mustermann'; |
CREATE TABLE | DDL | CREATE TABLE Tabelle ( Attributliste) | Tabelle erstellen. Erstellt eine Tabelle mit angegebener Attributliste. Für jedes Attribut werden Name, Datentyp und ggf. Constraints angegeben. |
CREATE TABLE Student (
ID int NOT NULL, Name varchar(50) NOT NULL, StudiengangID int NOT NULL); |
CREATE TABLE
(mit PRIMARY KEY und FOREIGN KEY) |
DDL | CREATE TABLE Tabelle(Attributliste,
PRIMARY KEY(Attribut_PK), FOREIGN KEY (Attribut_FK) REFERENCES Tabelle2 (Attribut_PK2)] ); |
Tabelle erstellen. Erstellt eine Tabelle mit angegebener Attributliste, Primärschlüssel Attribut_PK und Fremdschlüssel Attribut_FK. |
CREATE TABLE Student (
ID int NOT NULL, Name varchar(50) NOT NULL, StudiengangID int NOT NULL, PRIMARY KEY(ID), FOREIGN KEY (StudiengangID ) REFERENCES Studiengang (ID) ); |
CREATE VIEW | DDL | CREATE VIEW View_Name AS
SELECT Attributliste FROM Tabellenliste WHERE Bedingungen; |
Datensicht erstellen. Erstelle eine View / Datensicht auf Basis einer Abfrage. |
CREATE VIEW Studenten_ET AS
SELECT Matrikelnr, Student.Name, Vorname, Art FROM Student, Studiengang WHERE Student.StudiengangID = Studiengang.ID; |
GRANT | DCL | GRANT Berechtigungen ON Datenbankobjekt TO Benutzer [WITH GRANT OPTION]; | Zugriffsrechte erteilen. Z.B. dem Benutzer localuser das Recht erteilen, Tabellen anzulegen. |
GRANT CREATE TABLE TO localuser;
GRANT SELECT, INSERT, UPDATE, DELETE ON university.Student TO localuser; |
REVOKE | DCL | REVOKE Berechtigungen FROM Benutzer | Zugriffsrechte entziehen. Z.B. dem Benutzer localuser das Recht entziehen, Tabellen anzulegen. |
REVOKE CREATE TABLE FROM localuser; |
TRUNCATE | DDL | TRUNCATE TABLE Tabelle; | Tabelleninhalt endgültig löschen. TRUNCATE gilt als DDL-Befehl, da er den Tabelleninhalt vollständig löscht, und auch einige Definitionseigenschaften der Tabelle zurücksetzt, dieser Befehl kann nicht rückgängig gemacht werden. |
TRUNCATE TABLE Mitarbeiter; |
Befehl | Art | Syntax | Wirkung | Beispiel |
Tools, Quellen und weiterführende Links
Tools:
- SQL Server 2019 Express + SQL Server Management Studio
- MariaDB: mariadb.org
- MySQL: mysql.com
- XAMPP: apachefriends.org
Quellen und weiterführende Links:
- [1] SQL-Tutorial "Erste Schritte mit SQL": evamariakiss.de/tutorial/sql/
- [2] SQL-Quiz: evamariakiss.de/tutorial/sqlquiz/
- [3] Erste Schritte mit phpMyAdmin: evamariakiss.de/tutorial/phpmyadmin/
- [4] W3Schools SQL Tutorials: w3schools.com/sql/
- [5] MySQL SQL-Referenz: dev.mysql.com/doc/refman/8.0/en/sql-statements.html