Datenbank und eine einfache CTE einrichten
In diesem ersten Schritt richten Sie die Datenbankumgebung ein und definieren eine einfache Common Table Expression (CTE). CTEs werden mit der WITH-Klausel definiert und fungieren als temporäre Ansicht, die nur für die Dauer einer einzelnen Abfrage existiert. Dies erleichtert das Lesen und Verwalten komplexer Abfragen.
Öffnen Sie zunächst das Terminal auf Ihrem Desktop.
Verbinden Sie sich als Benutzer root mit dem MySQL-Server. In dieser Laborumgebung können Sie sudo verwenden, um sich ohne Passwort zu verbinden.
sudo mysql -u root
Sobald Sie verbunden sind, sehen Sie die MySQL-Eingabeaufforderung (mysql>). Erstellen Sie nun eine Datenbank namens labex_db und wechseln Sie zu dieser.
CREATE DATABASE IF NOT EXISTS labex_db;
USE labex_db;
Erstellen Sie als Nächstes eine Tabelle namens employees und fügen Sie einige Beispieldaten ein. Diese Tabelle speichert grundlegende Informationen über Mitarbeiter, einschließlich ihrer Abteilung und ihres Gehalts.
CREATE TABLE IF NOT EXISTS employees (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
department VARCHAR(50),
salary DECIMAL(10, 2)
);
INSERT INTO employees (employee_id, first_name, last_name, department, salary) VALUES
(1, 'John', 'Doe', 'Sales', 60000.00),
(2, 'Jane', 'Smith', 'Marketing', 75000.00),
(3, 'Robert', 'Jones', 'Sales', 55000.00),
(4, 'Emily', 'Brown', 'IT', 90000.00),
(5, 'Michael', 'Davis', 'Marketing', 70000.00);
Nachdem die Tabelle nun bereit ist, definieren wir eine einfache CTE, um nur die Mitarbeiter aus der Abteilung 'Sales' auszuwählen.
WITH SalesEmployees AS (
SELECT employee_id, first_name, last_name, salary
FROM employees
WHERE department = 'Sales'
)
SELECT * FROM SalesEmployees;
Lassen Sie uns diese Abfrage aufschlüsseln:
WITH SalesEmployees AS (...): Dies definiert eine CTE namens SalesEmployees.
- Die Abfrage in den Klammern wählt Mitarbeiter aus der Tabelle
employees aus, bei denen die department 'Sales' ist.
SELECT * FROM SalesEmployees;: Dies ist die Hauptabfrage, die alle Daten aus unserem temporären SalesEmployees-Ergebnissatz abruft.
Sie sollten die folgende Ausgabe sehen, die nur die Mitarbeiter aus der Abteilung Sales auflistet:
+-------------+------------+-----------+----------+
| employee_id | first_name | last_name | salary |
+-------------+------------+-----------+----------+
| 1 | John | Doe | 60000.00 |
| 3 | Robert | Jones | 55000.00 |
+-------------+------------+-----------+----------+
2 rows in set (0.00 sec)
Dies bestätigt, dass Ihre erste CTE korrekt funktioniert. Bitte bleiben Sie in der MySQL-Shell für den nächsten Schritt.