Database Reference
In-Depth Information
Ein SQL-Tipp am Rande: Statt die venue _ id explizit anzugeben, können Sie
mit einem Sub- SELECT besser lesbaren Titel verwenden. Wenn also Moby im
Crystal Ballroom spielt, können Sie die venue _ id wie folgt setzen:
INSERT INTO events (title, starts, ends, venue _ id)
VALUES ( 'Moby' , '2012-02-06 21:00' , '2012-02-06 23:00' ,(
SELECT venue _ id
FROM venues
WHERE name = 'Crystal Ballroom'
)
);
Füllen Sie die events-Tabelle mit den folgenden Daten auf (um Valentine's
Day in PostgreSQL einzugeben, ersetzen Sie das Apostroph durch zwei, also
beispielsweise Heaven”s Gate ):
title | starts | ends | venue
-----------------+---------------------+---------------------+---------------
Wedding | 2012-02-26 21:00:00 | 2012-02-26 23:00:00 | Voodoo Donuts
Dinner with Mom | 2012-02-26 18:00:00 | 2012-02-26 20:30:00 | My Place
Valentine's Day | 2012-02-14 00:00:00 | 2012-02-14 23:59:00 |
Nachdem wir unsere Daten eingefügt haben, wollen wir einige Aggregat-Que-
ries ausprobieren. Die einfachste Aggregatfunktion ist count() .WennSiedie
Titel zählen (engl. count), die das Wort Day enthalten (Hinweis: % ist ein
Platzhalter für LIKE -Suchen), wird der Wert 3 zurückgegeben.
SELECT count (title)
FROM events
WHERE title LIKE '%Day%' ;
Um die Anfangszeit des ersten und die Endzeit des letzten Events im Crystal
Ballroom zu ermitteln, nutzen Sie min() (gibt den kleinsten Wert zurück) und
max() (gibt den größten Wert zurück).
SELECT min(starts), max(ends)
FROM events INNER JOIN venues
ON events.venue _ id = venues.venue _ id
WHERE venues.name = 'Crystal Ballroom' ;
min | max
---------------------+---------------------
2012-02-06 21:00:00 | 2012-02-06 23:00:00
Aggregatfunktionen sind nützlich, für sich genommen aber nur eingeschränkt
sinnvoll. Wenn wir die Anzahl der Events an jedem Veranstaltungsort zählen
wollen, können wir für jede venue-ID Folgendes schreiben:
Search WWH ::




Custom Search