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