Erstellen einer Sicht aus einer SELECT-Abfrage
In diesem Schritt werden Sie lernen, wie Sie in MySQL eine Sicht (view) aus einer SELECT
-Abfrage erstellen. Eine Sicht ist eine virtuelle Tabelle, die auf dem Ergebnis einer SQL-Anweisung basiert. Sichten sind nützlich, um komplexe Abfragen zu vereinfachen, Datenkomplexität zu verbergen und ein gewisses Maß an Abstraktion für den Datenzugriff bereitzustellen.
Zunächst verbinden wir uns mit dem MySQL-Server. Öffnen Sie ein Terminal in der LabEx VM. Sie sollten sich bereits im Verzeichnis ~/project
befinden.
mysql -u root -p
Geben Sie bei entsprechender Aufforderung das Root-Passwort ein. Wenn Sie kein Root-Passwort festgelegt haben, drücken Sie einfach die Eingabetaste.
Jetzt erstellen wir eine Datenbank namens company
.
CREATE DATABASE company;
Als Nächstes wechseln wir zur company
-Datenbank.
USE company;
Erstellen wir eine einfache Tabelle namens employees
mit einigen Beispieldaten.
CREATE TABLE employees (
id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
salary DECIMAL(10, 2),
department VARCHAR(50)
);
INSERT INTO employees (id, first_name, last_name, salary, department) VALUES
(1, 'John', 'Doe', 60000.00, 'Sales'),
(2, 'Jane', 'Smith', 75000.00, 'Marketing'),
(3, 'Robert', 'Jones', 50000.00, 'Sales'),
(4, 'Emily', 'Brown', 80000.00, 'Engineering'),
(5, 'Michael', 'Davis', 65000.00, 'Marketing');
Jetzt erstellen wir eine Sicht namens sales_employees
, die nur die Mitarbeiter aus der Abteilung 'Sales' anzeigt.
CREATE VIEW sales_employees AS
SELECT id, first_name, last_name, salary
FROM employees
WHERE department = 'Sales';
Diese Anweisung erstellt eine Sicht namens sales_employees
. Die Sicht wählt die Spalten id
, first_name
, last_name
und salary
aus der employees
-Tabelle aus, aber nur für Zeilen, bei denen die department
'Sales' ist.
Um zu überprüfen, ob die Sicht erstellt wurde, können Sie sie beschreiben:
DESCRIBE sales_employees;
Dieser Befehl zeigt die Struktur der sales_employees
-Sicht an, ähnlich wie beim Beschreiben einer Tabelle.
Sie können auch die Sicht wie eine normale Tabelle abfragen:
SELECT * FROM sales_employees;
Dies zeigt alle Mitarbeiter der Sales-Abteilung an, basierend auf den Daten in der employees
-Tabelle.
+------+------------+-----------+----------+
| id | first_name | last_name | salary |
+------+------------+-----------+----------+
| 1 | John | Doe | 60000.00 |
| 3 | Robert | Jones | 50000.00 |
+------+------------+-----------+----------+
2 rows in set (0.00 sec)
Sie haben nun erfolgreich eine Sicht aus einer SELECT
-Abfrage erstellt.