Intermediate SQL
November 18, 2017
Erweiterte SQL-Themen: Aggregationen, GROUP BY, Constraints, Foreign Keys.
Aggregatfunktionen
COUNT()AnzahlSUM()SummeAVG()DurchschnittMAX()/MIN()Extremwerte
code
SELECT COUNT(*) FROM movies;
SELECT AVG(tickets) FROM movies;
SELECT MAX(tickets), MIN(tickets) FROM movies;
GROUP BY
code
SELECT genre, SUM(cost)
FROM movies
GROUP BY genre;
HAVING (Filter fuer Gruppen)
code
SELECT genre, COUNT(*)
FROM movies
GROUP BY genre
HAVING COUNT(*) > 1;
Constraints
NOT NULL: PflichtfeldUNIQUE: keine DuplikatePRIMARY KEY: eindeutig + not nullCHECK: Validierung
code
CREATE TABLE promotions (
id INT PRIMARY KEY,
name VARCHAR(150) NOT NULL UNIQUE,
category VARCHAR(15)
);
Foreign Keys
code
CREATE TABLE movies (
id INT PRIMARY KEY,
title VARCHAR(120) NOT NULL UNIQUE
);
CREATE TABLE promotions (
id INT PRIMARY KEY,
movie_id INT REFERENCES movies(id),
name VARCHAR(50)
);
Orphan Records
Foreign Keys verhindern, dass Child-Records ohne Parent existieren.
code
DELETE FROM movies WHERE id = 6; -- Fehler, wenn Referenzen existieren
CHECK Constraint
code
CREATE TABLE movies (
id INT PRIMARY KEY,
duration INT CHECK (duration > 0)
);