Welche der folgenden SQL‑Abfragen ruft korrekt Zeilen ab, bei denen der Name “John” ist?
In SQL wird das einfache Gleichheitszeichen (=) für Gleichheitsprüfungen in der WHERE-Klausel verwendet, nicht == oder ===, das sind JavaScript‑Operatoren.
Die korrekte Syntax lautet SELECT * FROM users WHERE name = 'John';.
COUNT(column_name) zählt die Anzahl der Nicht-NULL-Werte in einer angegebenen Spalte. Um alle Zeilen, einschließlich NULLs, zu zählen, verwende COUNT(*).
Du kannst auch COALESCE benutzen, um sicherzustellen, dass NULLs zu einem Nicht-NULL-Wert defaulten. Zum Beispiel: COUNT(COALESCE(column_name, 0)).
Ein LEFT JOIN gibt alle Zeilen der linken Tabelle und die passenden Zeilen der rechten Tabelle zurück, wobei nicht passende Zeilen in der rechten Tabelle mit NULL gefüllt werden.
Ein INNER JOIN gibt Zeilen zurück, bei denen die Join‑Bedingung Zeilen aus beiden Tabellen entspricht. Nicht passende Zeilen werden nicht im Ergebnis enthalten.
Eine korrelierte Unterabfrage verweist auf Spalten ihrer äußeren Abfrage. Inhaltlich hängt das Ergebnis von der aktuellen äußeren Zeile ab. Der Optimierer kann die Ausführung jedoch umformen; eine separate tatsächliche Ausführung pro Zeile ist nicht garantiert.
Was ist der Zweck der WITH‑Klausel (Common Table Expression) in SQL?
Die WITH‑Klausel, oder Common Table Expression (CTE), wird verwendet, um ein temporäres Resultat‑Set zu definieren, das innerhalb der Hauptabfrage referenziert werden kann. In PostgreSQL kann WITH an Anweisungen wie SELECT, INSERT, UPDATE, DELETE oder MERGE angehängt werden.
Das kann die Lesbarkeit und Wartbarkeit komplexer Abfragen verbessern.
Der IN‑Operator filtert Zeilen, sodass sie zu irgendeinem Wert in einer angegebenen Liste passen, häufig als Alternative zu mehreren OR‑Bedingungen.
Während er möglicherweise “eindeutige Zeilen” zurückgibt (und das oft tut), ist das nicht unbedingt der Hauptzweck.
Ein Index ist nicht erforderlich. Ein passender B-Tree-Index kann einen selektiven IN-Filter beschleunigen, aber bei vielen Treffern oder kleinen Tabellen kann der Planer einen sequenziellen Scan vorziehen. UNIQUE erzwingt eine Datenbedingung und ist keine Voraussetzung zur Optimierung von IN.
Die COALESCE-Funktion gibt den ersten Nicht-NULL-Wert in einer angegebenen Liste zurück und ist nützlich, um Standardwerte zu substituieren, wenn NULL‑Werte auftreten.
Zum Beispiel würde COALESCE(column_name, 0)0 zurückgeben, wenn column_nameNULL ist.
Die GROUP BY-Klausel gruppiert Zeilen, die in den angegebenen Spalten gleiche Werte haben, sodass Aggregatfunktionen auf jede Gruppe angewendet werden können.