0 Tage Serie
Code-Bibliothek

Code, der lesenswert ist.

Sorgfältig kuratierte Snippets — TypeScript, Python, Rust, Go und mehr. Jedes mit einer Zeile-für-Zeile-Erklärung, damit du Code so liest, wie die Leute ihn geschrieben haben.

3498 Snippets · 10 Sprachen
▶ Lernen starten
SQL · MittelSnippet

Gemeinsame Tabellenausdrücke (CTEs)

Ein CTE ist eine temporäre Ergebnismenge, auf die innerhalb einer anderen Anweisung verwiesen werden kann. Er verbessert die Lesbarkeit, indem komplexe Abfragen in logische Blöcke unterteilt werden.

snippet.sql
sql
1
2
3
4
5
6
7
8
WITH RegionSales AS (
SELECT region, SUM(amount) AS total
FROM sales
GROUP BY region
)
SELECT *
FROM RegionSales
WHERE total > 1000;
Queries & JoinsSyntax
SQL · MittelSnippet

Korrelierte Unterabfragen

Eine korrelierte Unterabfrage bezieht sich auf Spalten der äußeren Abfrage. Sie wird für jede von der äußeren Abfrage verarbeitete Zeile einmal ausgewertet, um zeilenspezifische Logik auszuführen.

snippet.sql
sql
1
2
3
4
5
6
7
SELECT e1.name
FROM employees e1
WHERE e1.salary > (
SELECT AVG(e2.salary)
FROM employees e2
WHERE e2.department_id = e1.department_id
);
Queries & JoinsPerformance
SQL · MittelSnippet

Filtern aggregierter Daten mit HAVING

Die HAVING-Klausel filtert Gruppen, die durch die GROUP BY-Klausel erstellt wurden. Im Gegensatz zu WHERE, das einzelne Zeilen filtert, filtert HAVING basierend auf Ergebnissen von Aggregatfunktionen.

snippet.sql
sql
1
2
3
4
SELECT department_id, AVG(salary) AS avg_sal
FROM employees
GROUP BY department_id
HAVING AVG(salary) > 5000;
Queries & JoinsSyntax
SQL · MittelSnippet

Atomare Transaktionen mit COMMIT

Transaktionen stellen sicher, dass mehrere Operationen als eine Einheit behandelt werden. COMMIT speichert alle ausstehenden Änderungen dauerhaft in der Datenbank und gewährleistet so die Datenkonsistenz.

snippet.sql
sql
1
2
3
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
TransaktionenBest Practices
SQL · MittelSnippet

Fensterfunktionen mit ROW_NUMBER

Fensterfunktionen führen Berechnungen über eine Menge von Tabellenzeilen durch, die mit der aktuellen Zeile in Beziehung stehen. ROW_NUMBER weist Zeilen innerhalb einer Partition eine eindeutige fortlaufende Ganzzahl zu.

snippet.sql
sql
1
2
3
4
5
6
SELECT
product_name,
category,
price,
ROW_NUMBER() OVER (PARTITION BY category ORDER BY price DESC) as rank
FROM products;
FunktionenQueries & Joins
SQL · MittelSnippet

Mengen-Schnittmenge mit INTERSECT

Der INTERSECT-Operator gibt nur die eindeutigen Zeilen zurück, die sowohl im ersten als auch im zweiten Abfrageergebnis enthalten sind. Dies ist nützlich, um gemeinsame Datensätze in verschiedenen Datensätzen zu finden, ohne komplexe Joins zu verwenden.

snippet.sql
sql
1
2
3
SELECT user_id FROM newsletter_subscribers
INTERSECT
SELECT user_id FROM premium_members;
Queries & JoinsSyntax
SQL · MittelSnippet

Umgang mit NULL-Werten mittels COALESCE

COALESCE nimmt eine Liste von Argumenten entgegen und gibt den ersten Wert zurück, der nicht NULL ist. Dies ist wichtig, um Ausweichwerte für optionale Spalten in einer Datenbank bereitzustellen.

snippet.sql
sql
1
2
3
SELECT employee_name,
COALESCE(personal_phone, work_phone, 'No Phone') AS contact_number
FROM employees;
FunktionenBest Practices
SQL · MittelSnippet

Self-Joins für hierarchische Beziehungen

Ein Self-Join ist ein regulärer Join, bei dem eine Tabelle mit sich selbst verknüpft wird. Dies wird primär verwendet, um hierarchische Daten abzufragen, z. B. Mitarbeiter und ihre Vorgesetzten in derselben Tabelle.

snippet.sql
sql
1
2
3
4
5
SELECT
e.name AS employee,
m.name AS manager
FROM staff e
JOIN staff m ON e.manager_id = m.staff_id;
Queries & JoinsSyntax