Skip to main content

SQL-Befehlsübersicht //wp

DDL (Data Definition Language)

Datenbanken anlegen, löschen, auswählen:

SQL-Befehl Beschreibung Beispiel
CREATE DATABASE db_name

Erstelle die Datenbank db_name
CREATE DATABASE autovermietung

DROP DATABASE db_name

Lösche die Datenbank db_name
DROP DATABASE autovermietung

USE db_name

Auswahl der Datenbank, auf welchre die folgenden SQL-Befehle ausgeführt werden sollen  
USE autovermietung

Tabellen und Indizes erzeugen, ändern und löschen:

SQL-Befehl Beschreibung Beispiel
CREATE TABLE IF NOT EXISTS tb_name

Erstelle die Tabelle tb_name falls diese noch nicht existiert
CREATE TABLE kunden (kd_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, kd_name VARCHAR(30) NOT NULL);

CREATE INDEX ... ON ...
CREATE UNIQUE INDEX ... ON ...

Erstelle einen eindeutigen Index
CREATE INDEX kunden_name ON kunde (kd_name);


Ändere die Struktur der Tabelle, etwa durch Hinzufügen eines Index (z.B. zum Durchsuchen), Primärschlüssels, usw.
ALTER TABLE kunden ADD INDEX kunden_name (kd_name);
ALTER TABLE kunden RENAME AS kunde;
ALTER TABLE kunden MODIFY kd_name varchar(50);
ALTER TABLE kunden CHANGE kd_nname name varchar(30);
ALTER TABLE kunde ADD mobile varchar(20);

DROP TABLE ...

Lösche Tabelle aus DB
DROP TABLE kunden;

DROP INDEX ...

Entferne den Index  
DROP INDEX kunden_name;

DML (Data Manipulation Language)

SQL-Befehl Beschreibung Beispiel
INSERT INTO ... VALUES ...

Einfügen eines oder mehrerer Datensätze. Die Reihenfolge der Werte richtet sich nach der Reihenfolge der angegebenen Attribute
INSERT INTO kunden (kd_id, kd_name, kd_vname) VALUE (NULL, "Mustermann", "Max"), (NULL, "Musterfrau", "Frieda");

UPDATE ... SET ... WHERE ...

Ändern von Werten eines oder mehrerer Datensätze
UPDATE kunden SET kd_nname = "Mustermann" WHERE kd_id=42;

DELETE ... FROM ...

Löschen eines Datensatzes
DELETE FROM kunden WHERE kd_name = "Mustermann";

DQL (Data Query Language)

SQL-Befehl Beschreibung Beispiel
SELECT ... FROM ... WHERE ... GROUP BY ... ORDER BY ... HAVING ... LIMIT ...


SELECT * FROM kunden;
SELECT kd_ort, COUNT(kd_ort) FROM kunden GROUP BY kd_ort;
SELECT COUNT(*) FROM kunden WHERE kd_ort = "Hof";
SELECT * FROM kunden ORDER BY kd_name;

SELECT ... AS ...

Dem Feldnamen (Attribut) wird ein anderer Name gegeben (= Alias)
SELECT kd_id AS Kundennummer FROM kunden;

Funktionen

SQL-Befehl Beschreibung Beispiel
COUNT(ausdruck)

Anzahl aller Datensätze
SELECT COUNT(*) FROM kunden;

SUM(ausdruck)

Summe
SELECT SUM(po_preis) FROM posten;

MAX(ausdruck)

Maximum
SELECT MAX(po_preis) FROM posten;

MIN(ausdruck)

Minimum
AVG(ausdruck)

Durchschnitt
ABS(ausdruck)

Betrag
NOW()

Gibt das aktuelle Datum mit Uhrzeit im Format "JJJJ-MM-TT hh:mm:ss" zurück
YEAR(date)
MONTH(date)
DAY(date)
HOUR(date)
MINUTE(date)
SECOND(date)

Geben die aktuellen Zeit-Werte dem Namen nach zurück
SELECT * FROM kunden WHERE YEAR(gebdat) > 2000

DATEDIFF(datum1, datum2)

Berechnet die Differenz der Tage datum1 - datum2 mit Vorzeichen  

Informationen aus verschiedenen Tabelle holen (JOIN)

SQL-Befehl Beschreibung Beispiel
SELECT ... FROM ... JOIN ... ON ...

Schnittmenge, d.h. nur Kunden mit zugehörigen Aufträgen
SELECT * FROM kunden JOIN auftraege ON kd_id = au_kd_id;

LEFT JOIN ... ON ...

Alle Kunden (auch die ohne Auftrag!) und zugehörige Aufträge  
SELECT * FROM kunden LEFT JOIN auftraege ON kd_id = au_kd_id;

Operatoren

SQL-Befehl Beschreibung Beispiel
>, <, >=, =, !=

Boolsche Operatoren zum Vergleich zweier Werte
SELECT * FROM kunden WHERE kd_ort = "Hof";

IN, NOT IN

Prüfung, ob sich ein Attribut innerhalb einer Untermenge befindet. Häufig verwendet bei Sub-Selects
SELECT * FROM kunden WHERE kd_id IN (1,3,5);

BETWEEN ... AND ...

Prüfung eines Attributs, ob es sich zwischen den beiden Werten befindet
SELECT * FROM kunden WHERE kd_id BETWEEN 10 AND 20;

LIKE

Prüfung auf ähnliche Strings. Mit dem Platzhalter % werden im Beispiel Musterfrau und Mustermann erkannt
SELECT * FROM kunden WHERE kd_nname LIKE "Muster%";

AND, OR, NOT

Verknüpfung von boolschen Ausdrücken über UND, ODER und NICHT  
SELECT * FROM kunden WHERE kd_name LIKE "%ust%" AND kd_ka_id = 1;