Database Reference
In-Depth Information
INNER JOIN liefert nur dann eine Zeile zurück, wenn die Spaltenwerte über-
einstimmen .Daeskeine venues . venue _ id smitdemWert Null geben kann,
liefern die beiden NULL - eventsvenue _ id s nichts zurück. Wenn Sie unabhängig
von einem Veranstaltungsort alle Events abrufen wollen, müssen Sie einen
LEFT OUTER JOIN (kurz LEFT JOIN ) verwenden.
SELECT e.title, v.name
FROM events e
LEFT JOIN venues v
ON e.venue _ id = v.venue _ id;
title | name
-----------------+----------------
LARP Club | Voodoo Donuts
April Fools Day |
Christmas Day
|
Wenn Sie das Gegenteil brauchen, alle Veranstaltungsorte und nur passende
Events, verwenden Sie einen RIGHT JOIN . Schließlich gibt es noch den FULL
JOIN , also die Vereinigung von LEFT und RIGHT , bei der Sie garantiert alle
Werte aus beiden Tabellen zurückerhalten.
Schnelle Lookups per Indexierung
Die Geschwindigkeit von PostgreSQL (und anderen RDBMS) basiert auf der
effizienten Verwaltung von Datenblöcken, der Reduzierung von Leseopera-
tionen, der Query-Optimierung und anderen Techniken. Doch sie rufen Er-
gebnisse nur schnell ab. Wenn wir einenTitel wie Christmas Day aus der
events -Tabelle abrufen, muss der Algorithmus jede Zeile auf einen Treffer
untersuchen. Ohne einen Index muss jede Zeile von der Platte gelesen wer-
den, um herauszufinden, ob die Query sie zurückgeben muss.
matches "Christmas Day"? No.
LARP Club | 2 | 1
matches "Christmas Day"? No.
April Fools Day | | 2
matches "Christmas Day"? Yes!
Christmas Day | | 3
Ein Index ist eine spezielle Datenstruktur, die aufgebaut wird, um bei Ab-
fragen ein vollständiges Durchsuchen der Tabelle zu vermeiden. Wenn Sie
CREATE TABLE -Befehle ausgeführt haben, könnten Ihnen Meldungen wie die
folgende aufgefallen sein:
CREATE TABLE / PRIMARY KEY will create implicit index " events _ pkey "\
for table " events "
Search WWH ::




Custom Search