SQLite - Subqueries: Ein Anfängerleitfaden

Hallo, angehende Programmierer! Heute machen wir uns auf eine aufregende Reise in die Welt der SQLite-Subqueries. Machen Sie sich keine Sorgen, wenn Sie neu im Programmieren sind – ich werde Ihr freundlicher Guide sein und alles Schritt für Schritt erklären. Tauchen wir ein!

SQLite - Subqueries

Was sind Subqueries?

Bevor wir uns den Details zuwenden, lassen Sie uns verstehen, was Subqueries sind. Stellen Sie sich vor, Sie planen eine Party und müssen eine Gästeliste erstellen. Sie könnten zunächst eine Liste aller Ihrer Freunde machen und diese dann auf diejenigen eingrenzen, die in der Nähe wohnen. In SQL ist eine Subquery wie dieser zweite Schritt – eine Abfrage innerhalb einer Abfrage, die Ihnen hilft, Ihre Ergebnisse zu verfeinern.

Subqueries mit SELECT-Anweisung

Lassen Sie uns mit der häufigsten Verwendung von Subqueries beginnen – in SELECT-Anweisungen.

Beispiel für eine einfache Subquery

SELECT name
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

In diesem Beispiel suchen wir nach Mitarbeitern, deren Gehalt über dem Durchschnitt liegt. Die innere Abfrage (SELECT AVG(salary) FROM employees) berechnet das Durchschnittsgehalt, und die äußere Abfrage verwendet dieses Ergebnis, um Mitarbeiter zu filtern.

Subquery im FROM-Klausel

SELECT department, avg_salary
FROM (
SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department
) AS dept_salaries
WHERE avg_salary > 50000;

Hier erstellen wir eine temporäre Tabelle mit Durchschnittsgehältern pro Abteilung und wählen thereafter Abteilungen mit einem Durchschnittsgehalt über 50.000 aus.

Subqueries mit INSERT-Anweisung

Subqueries können auch verwendet werden, um Daten basierend auf vorhandenen Informationen einzufügen.

INSERT INTO high_earners (employee_id, name)
SELECT id, name
FROM employees
WHERE salary > (SELECT AVG(salary) * 1.5 FROM employees);

Diese Abfrage fügt Mitarbeiter, die mehr als 1,5 Mal das Durchschnittsgehalt verdienen, in eine 'high_earners'-Tabelle ein.

Subqueries mit UPDATE-Anweisung

Daten basierend auf Subqueries zu aktualisieren ist eine weitere leistungsstarke Funktion.

UPDATE employees
SET bonus = salary * 0.1
WHERE department_id IN (
SELECT id
FROM departments
WHERE performance_rating > 8
);

Diese Abfrage gibt Mitarbeitern in leistungsfähigen Abteilungen eine Prämie von 10 %.

Subqueries mit DELETE-Anweisung

Schließlich werfen wir einen Blick darauf, wie Subqueries beim Löschen von Daten helfen können.

DELETE FROM products
WHERE id NOT IN (
SELECT product_id
FROM orders
WHERE order_date > DATE('now', '-1 year')
);

Diese Abfrage löscht Produkte, die in den letzten zwölf Monaten nicht bestellt wurden.

Methoden für Subqueries

Hier ist eine Tabelle, die die verschiedenen Methoden zusammenfasst, die wir behandelt haben:

Methode Beschreibung Beispiel
SELECT mit Subquery Verwenden Sie eine Subquery, um Werte für die Hauptabfrage zu filtern oder zu berechnen SELECT ... WHERE column > (SELECT AVG(...))
Subquery im FROM Erstellen Sie eine abgeleitete Tabelle, von der abgefragt wird SELECT ... FROM (SELECT ...) AS derived_table
INSERT mit Subquery Daten basierend auf einer Subquery einfügen INSERT INTO ... SELECT ... WHERE ...
UPDATE mit Subquery Daten basierend auf einer Subquery aktualisieren UPDATE ... SET ... WHERE column IN (SELECT ...)
DELETE mit Subquery Daten basierend auf einer Subquery löschen DELETE FROM ... WHERE column NOT IN (SELECT ...)

Schlussfolgerung

Glückwunsch! Sie haben gerade Ihre ersten Schritte in die Welt der SQLite-Subqueries unternommen. Bedenken Sie, dass das Beherrschen von Subqueries, wie das Fahrradfahren lernen, Übung erfordert. Lassen Sie sich nicht entmutigen, wenn es nicht sofort klappt – experimentieren Sie weiter mit verschiedenen Abfragen, und bald werden Sie komplexe Subqueries mühelos schreiben können.

Als wir uns verabschieden, hier ist eine kleine Geschichte aus meiner Lehrerfahrung: Ich hatte einmal eine Schülerin, die mit Subqueries kämpfte. Sie verglich sie mit russischen Matrjoschka-Puppen – Abfragen innerhalb von Abfragen. Diese Analogie half ihr, das Konzept zu visualisieren, und sie wurde bald eine der Besten in der Klasse im Schreiben von Subqueries.

Also, egal ob Sie Subqueries als Matrjoschka-Puppen oder vielleicht als Schatzsuche betrachten, bei der jede Abfrage Sie näher zum Preis führt, bleiben Sie am Ball und erkunden Sie weiter. Die Welt der Daten ist riesig und aufregend, und Subqueries sind Ihr Schlüssel, um ihre Geheimnisse zu enträtseln!

Frohes Abfragen und denken Sie daran – in der Welt der Datenbanken ist Neugier Ihr bester Freund. Halten Sie immer Fragen zu stellen, und Sie werden immer Antworten finden!

Credits: Image by storyset