MySQL - Abgeleitete Tabellen
Hallo da draußen, angehende Datenbankenthusiasten! Ich freue mich sehr, Ihr Guide auf dieser aufregenden Reise in die Welt der MySQL Abgeleiteten Tabellen zu sein. Als jemand, der seit Jahren Informatik unterrichtet, kann ich Ihnen versichern, dass dieses Thema虽然在开始时可能听起来 abschreckend ist, aber eigentlich sehr unterhaltsam und unglaublich nützlich ist. Also, tauchen wir ein!
Was sind MySQL Abgeleitete Tabellen?
Stellen Sie sich vor, Sie organisieren eine große Party (wer liebt nicht eine gute Datenbankparty, oder?). Sie haben eine Liste aller Ihrer Freunde, aber Sie möchten eine separate Liste nur für diejenigen erstellen, die in der Nähe wohnen. Genau das macht eine abgeleitete Tabelle in MySQL - es ist eine temporäre Tabelle, die innerhalb einer Abfrage erstellt wird, um Ihnen zu helfen, Ihre Daten effektiver zu organisieren und zu analysieren.
In technischen Begriffen ist eine abgeleitete Tabelle eine Unterabfrage, die im FROM-Klausel eines anderen SQL-Aufrufs erscheint. Es ist so, als ob Sie eine temporäre Tabelle auf dem fly erstellen, die Sie dann in Ihrer Hauptabfrage verwenden können.
Sehen wir uns ein einfaches Beispiel an:
SELECT * FROM
(SELECT name, age FROM people WHERE age > 18) AS adults
WHERE adults.age < 30;
In dieser Abfrage ist alles innerhalb der Klammern unsere abgeleitete Tabelle. Wir erstellen eine temporäre Tabelle aller Personen über 18 Jahre und wählen dann aus dieser Tabelle diejenigen unter 30 Jahren aus.
Verwendung der WHERE-Klausel mit Abgeleiteten Tabellen
Die WHERE-Klausel ist Ihr bester Freund bei der Arbeit mit abgeleiteten Tabellen. Sie ermöglicht es Ihnen, Ihre Daten sowohl in der abgeleiteten Tabelle als auch in der Hauptabfrage zu filtern. Lassen Sie uns unser vorheriges Beispiel erweitern:
SELECT * FROM
(SELECT name, age, city FROM people WHERE age > 18) AS adults
WHERE adults.city = 'New York' AND adults.age < 30;
Hier erstellen wir zuerst eine abgeleitete Tabelle aller Erwachsenen (age > 18) und wählen dann aus dieser Tabelle nur diejenigen aus, die in New York wohnen und unter 30 Jahre alt sind. Es ist wie ein doppeltes Filtern!
Alias einer Spalte in einer Abgeleiteten Tabelle
Manchmal möchten Sie Ihren Spalten in der abgeleiteten Tabelle beschreibendere Namen geben. Hier kommt das Aliasing ins Spiel. Sehen wir uns das an:
SELECT young_adult_name, years_alive FROM
(SELECT name AS young_adult_name, age AS years_alive
FROM people
WHERE age BETWEEN 18 AND 25) AS young_adults;
In diesem Beispiel haben wir 'name' in 'young_adult_name' und 'age' in 'years_alive' umbenannt. Dies kann Ihre Abfragen lesbarer und selbst erklärend machen.
Anzeige von Aggregatfunktionen als Abgeleitete Tabellen
Aggregatfunktionen wie COUNT, AVG, SUM können in abgeleiteten Tabellen sehr nützlich sein. Angenommen, wir möchten herausfinden, wie viele Personen wir in jeder Altersgruppe haben:
SELECT age_group, count FROM
(SELECT
CASE
WHEN age < 18 THEN 'Under 18'
WHEN age BETWEEN 18 AND 30 THEN '18-30'
WHEN age BETWEEN 31 AND 50 THEN '31-50'
ELSE 'Over 50'
END AS age_group,
COUNT(*) as count
FROM people
GROUP BY age_group) AS age_distribution
ORDER BY count DESC;
Diese Abfrage erstellt eine abgeleitete Tabelle, die Menschen in Alterskategorien einteilt und zählt, wie viele in jeder Gruppe sind. Wir wählen dann aus dieser abgeleiteten Tabelle, um die Ergebnisse anzuzeigen.
Erstellung einer Tabelle mit einem.Client-Programm
Obwohl wir unsere Abfragen normalerweise direkt in MySQL schreiben, können Sie abgeleitete Tabellen auch mit Client-Programmen erstellen. Hier ist ein einfaches Beispiel in Python:
import mysql.connector
# Verbindung zur Datenbank herstellen
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='127.0.0.1', database='your_database')
cursor = cnx.cursor()
# Eine Abfrage mit einer abgeleiteten Tabelle erstellen
query = """
SELECT * FROM
(SELECT name, age FROM people WHERE age > 18) AS adults
WHERE adults.age < 30;
"""
# Die Abfrage ausführen
cursor.execute(query)
# Die Ergebnisse abrufen und ausgeben
for (name, age) in cursor:
print(f"{name} ist {age} Jahre alt")
# Die Verbindung schließen
cursor.close()
cnx.close()
Dieses Python-Skript verbindet sich mit Ihrer MySQL-Datenbank, führt eine Abfrage mit einer abgeleiteten Tabelle aus und gibt dann die Ergebnisse aus.
Schlussfolgerung
Und das war's, Leute! Wir haben die Welt der MySQL Abgeleiteten Tabellen bereist, von den grundlegenden Konzepten bis zu den fortgeschrittenen Anwendungen. Denken Sie daran, dass abgeleitete Tabellen wie Ihre geheime Waffe in SQL sind - sie ermöglichen es Ihnen, temporäre Tabellen auf dem fly zu erstellen, um Ihre Daten auf mächtige Weise zu organisieren und zu analysieren.
Wie bei allem im Programmieren macht Übung den Meister. Also fürchten Sie sich nicht, abgeleitete Tabellen in Ihren eigenen Projekten auszuprobieren. Wer weiß? Vielleicht veranstalten Sie ja bald die beste Datenbankparty in der Stadt!
Hier ist eine schnelle Referenztabelle der Methoden, die wir behandelt haben:
Methode | Beschreibung |
---|---|
Basic Abgeleitete Tabelle | Erstellen einer temporären Tabelle im FROM-Klausel |
WHERE-Klausel | Filtern von Daten in der abgeleiteten Tabelle und der Hauptabfrage |
Aliasing | Geben von Spalten beschreibendere Namen in der abgeleiteten Tabelle |
Aggregatfunktionen | Verwendung von Funktionen wie COUNT, AVG, SUM in abgeleiteten Tabellen |
Client-Programm | Erstellen von abgeleiteten Tabellen mit externen Programmiersprachen |
Frohes Abfragen und möge Ihre Datenbanken stets normalisiert sein!
Credits: Image by storyset