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);

ALTER TABLE ...
        ADD <field>
        ADD INDEX
        ADD PRIMARY KEY
        ADD UNIQUE
        RENAME AS
        MODIFY
        CHANGE
        DROP COLUMN

Ä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;