MySQL-Temporäre Tabellen und Sitzungsdaten

MySQLMySQLBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie mit temporären Tabellen in MySQL arbeiten, wobei der Schwerpunkt auf ihrer Erstellung und Verwendung innerhalb einer Sitzung liegt. Sie beginnen, indem Sie sich als Root-Benutzer mit dem MySQL-Server verbinden und eine temporäre Tabelle namens temp_employees erstellen, die Spalten für id, name und department enthält.

Nach der Erstellung der temporären Tabelle überprüfen Sie deren Existenz, indem Sie ihre Struktur mit dem Befehl DESCRIBE beschreiben. Dies bestätigt die Erstellung der Tabelle und zeigt ihre Spaltendefinitionen, einschließlich Datentypen und Einschränkungen, an. Anschließend führt das Lab Sie durch das Einfügen und Abfragen von Daten in der temporären Tabelle und zeigt deren Nützlichkeit für die sitzungsspezifische Datenmanipulation. Schließlich erkunden Sie den Geltungsbereich von temporären Tabellen und lernen, wie Sie sie explizit löschen können.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/create_table("Table Creation") mysql/BasicKeywordsandStatementsGroup -.-> mysql/drop_table("Table Removal") mysql/BasicKeywordsandStatementsGroup -.-> mysql/select("Data Retrieval") mysql/BasicKeywordsandStatementsGroup -.-> mysql/insert("Data Insertion") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/int("Integer Type") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/varchar("Variable Character Type") subgraph Lab Skills mysql/create_table -.-> lab-550917{{"MySQL-Temporäre Tabellen und Sitzungsdaten"}} mysql/drop_table -.-> lab-550917{{"MySQL-Temporäre Tabellen und Sitzungsdaten"}} mysql/select -.-> lab-550917{{"MySQL-Temporäre Tabellen und Sitzungsdaten"}} mysql/insert -.-> lab-550917{{"MySQL-Temporäre Tabellen und Sitzungsdaten"}} mysql/int -.-> lab-550917{{"MySQL-Temporäre Tabellen und Sitzungsdaten"}} mysql/varchar -.-> lab-550917{{"MySQL-Temporäre Tabellen und Sitzungsdaten"}} end

Erstellen einer temporären Tabelle für die Sitzungsverwendung

In diesem Schritt lernen Sie, wie Sie eine temporäre Tabelle in MySQL erstellen. Temporäre Tabellen eignen sich hervorragend für die Speicherung von Zwischenergebnissen während einer Sitzung. Sie werden automatisch gelöscht, wenn die Sitzung endet. Dies macht sie ideal für Aufgaben wie Datenmanipulation und Berichterstellung, bei denen Sie einen temporären Arbeitsbereich benötigen.

Zunächst verbinden wir uns mit dem MySQL-Server. Öffnen Sie ein Terminal in der LabEx VM. Sie können den folgenden Befehl verwenden, um sich als root-Benutzer mit dem MySQL-Server zu verbinden. Sie werden zur Eingabe des Root-Passworts aufgefordert, das password lautet.

mysql -u root -p

Nach der Eingabe des Passworts sollten Sie die MySQL-Eingabeaufforderung mysql> sehen.

Jetzt erstellen wir eine temporäre Tabelle. Die Syntax für die Erstellung einer temporären Tabelle ähnelt der für die Erstellung einer normalen Tabelle, jedoch mit dem Schlüsselwort TEMPORARY.

CREATE TEMPORARY TABLE temp_employees (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255),
    department VARCHAR(255)
);

Dieser Befehl erstellt eine temporäre Tabelle namens temp_employees mit drei Spalten: id, name und department. Die Spalte id ist ein automatisch inkrementierender Primärschlüssel.

Sie können überprüfen, ob die Tabelle erstellt wurde, indem Sie den Befehl SHOW TABLES verwenden. Allerdings zeigt SHOW TABLES keine temporären Tabellen an. Stattdessen können Sie versuchen, die Tabelle zu beschreiben:

DESCRIBE temp_employees;

Dieser Befehl zeigt die Struktur der Tabelle temp_employees an und bestätigt, dass sie erstellt wurde. Die Ausgabe sollte in etwa so aussehen:

+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | int          | NO   | PRI | NULL    | auto_increment |
| name       | varchar(255) | YES  |     | NULL    |                |
| department | varchar(255) | YES  |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

Dies bestätigt, dass die temporäre Tabelle temp_employees erfolgreich in Ihrer aktuellen MySQL-Sitzung erstellt wurde.

Einfügen und Abfragen von Daten aus einer temporären Tabelle

In diesem Schritt lernen Sie, wie Sie Daten in die temporäre Tabelle einfügen, die Sie im vorherigen Schritt erstellt haben, und dann diese Daten abfragen. Dies zeigt, wie Sie temporäre Tabellen zur Speicherung und Abfrage von Informationen innerhalb einer Sitzung verwenden können.

Setzen Sie den Vorgang vom vorherigen Schritt fort. Sie sollten immer noch mit dem MySQL-Server verbunden sein und die mysql>-Eingabeaufforderung sehen. Wenn nicht, verbinden Sie sich erneut mit dem folgenden Befehl:

mysql -u root -p

Geben Sie das Passwort password ein, wenn Sie dazu aufgefordert werden.

Jetzt fügen wir einige Daten in die Tabelle temp_employees ein. Verwenden Sie die INSERT INTO-Anweisung, um Datensätze hinzuzufügen.

INSERT INTO temp_employees (name, department) VALUES ('Alice Smith', 'Sales');
INSERT INTO temp_employees (name, department) VALUES ('Bob Johnson', 'Marketing');
INSERT INTO temp_employees (name, department) VALUES ('Charlie Brown', 'IT');

Diese Befehle fügen drei Zeilen in die Tabelle temp_employees ein, mit Namen und Abteilungen für jeden Mitarbeiter.

Um zu überprüfen, ob die Daten korrekt eingefügt wurden, können Sie die Tabelle mit der SELECT-Anweisung abfragen.

SELECT * FROM temp_employees;

Dieser Befehl ruft alle Spalten und Zeilen aus der Tabelle temp_employees ab. Die Ausgabe sollte in etwa so aussehen:

+----+---------------+------------+
| id | name          | department |
+----+---------------+------------+
|  1 | Alice Smith   | Sales      |
|  2 | Bob Johnson   | Marketing  |
|  3 | Charlie Brown | IT         |
+----+---------------+------------+
3 rows in set (0.00 sec)

Sie können auch die WHERE-Klausel verwenden, um die Daten zu filtern. Beispielsweise können Sie nur die Mitarbeiter aus der Abteilung 'Marketing' auswählen:

SELECT * FROM temp_employees WHERE department = 'Marketing';

Die Ausgabe sollte wie folgt aussehen:

+----+-------------+------------+
| id | name        | department |
+----+-------------+------------+
|  2 | Bob Johnson | Marketing  |
+----+-------------+------------+
1 row in set (0.00 sec)

Dies zeigt, wie Sie Daten in eine temporäre Tabelle einfügen und mit Standard-SQL-Befehlen abfragen können. Die Daten sind nur innerhalb Ihrer aktuellen MySQL-Sitzung verfügbar.

Überprüfen des Gültigkeitsbereichs einer temporären Tabelle

In diesem Schritt überprüfen Sie den Gültigkeitsbereich der temporären Tabelle. Temporäre Tabellen sind nur innerhalb der Sitzung zugänglich, in der sie erstellt wurden. Um dies zu demonstrieren, öffnen Sie eine neue MySQL-Sitzung und versuchen Sie, auf die Tabelle temp_employees zuzugreifen.

Stellen Sie zunächst sicher, dass Sie aus den vorherigen Schritten noch mit dem MySQL-Server verbunden sind. Wenn ja, lassen Sie das Terminal geöffnet.

Öffnen Sie jetzt ein neues Terminalfenster in der LabEx VM. Sie können dies tun, indem Sie mit der rechten Maustaste auf den Desktop klicken und "Terminal hier öffnen" auswählen.

In diesem neuen Terminal verbinden Sie sich als root-Benutzer mit dem MySQL-Server:

mysql -u root -p

Geben Sie das Passwort password ein, wenn Sie dazu aufgefordert werden. Sie haben jetzt zwei separate MySQL-Sitzungen.

In dieser neuen Sitzung versuchen Sie, Daten aus der Tabelle temp_employees auszuwählen:

SELECT * FROM temp_employees;

Sie sollten eine Fehlermeldung ähnlich der folgenden sehen:

ERROR 1146 (42S02): Table 'test.temp_employees' doesn't exist

Diese Fehlermeldung bestätigt, dass die Tabelle temp_employees, die in der ersten Sitzung erstellt wurde, in dieser neuen Sitzung nicht sichtbar oder zugänglich ist. Dies liegt daran, dass temporäre Tabellen sessionspezifisch sind.

Versuchen Sie jetzt, die Tabelle zu beschreiben:

DESCRIBE temp_employees;

Auch hier erhalten Sie einen Fehler:

ERROR 1146 (42S02): Table 'test.temp_employees' doesn't exist

Dies bestätigt weiter, dass die temporäre Tabelle nur innerhalb der Sitzung existiert, in der sie erstellt wurde. Schließen Sie das neue Terminalfenster und kehren Sie zum ursprünglichen Terminal zurück, in dem Sie die temporäre Tabelle erstellt haben. Sie werden dieses Terminal im nächsten Schritt verwenden.

Löschen der temporären Tabelle

In diesem Schritt löschen Sie explizit die temporäre Tabelle, die Sie zuvor erstellt haben. Obwohl temporäre Tabellen am Ende einer Sitzung automatisch gelöscht werden, ist es eine gute Praxis, sie explizit zu löschen, wenn Sie fertig mit ihnen sind. Dies kann helfen, Ressourcen freizugeben und potenzielle Namenskonflikte zu vermeiden, wenn Sie später in derselben Sitzung eine Tabelle mit demselben Namen erstellen müssen.

Stellen Sie sicher, dass Sie noch in der ursprünglichen Terminalsitzung mit dem MySQL-Server verbunden sind, in der Sie die Tabelle temp_employees erstellt haben. Wenn nicht, verbinden Sie sich erneut mit dem folgenden Befehl:

mysql -u root -p

Geben Sie das Passwort password ein, wenn Sie dazu aufgefordert werden.

Um die temporäre Tabelle zu löschen, verwenden Sie die DROP TEMPORARY TABLE-Anweisung:

DROP TEMPORARY TABLE temp_employees;

Dieser Befehl entfernt die Tabelle temp_employees aus Ihrer aktuellen Sitzung.

Um zu überprüfen, ob die Tabelle gelöscht wurde, versuchen Sie erneut, Daten aus ihr auszuwählen:

SELECT * FROM temp_employees;

Sie sollten dieselbe Fehlermeldung wie im vorherigen Schritt sehen, als Sie versucht haben, auf die Tabelle aus einer anderen Sitzung zuzugreifen:

ERROR 1146 (42S02): Table 'test.temp_employees' doesn't exist

Dies bestätigt, dass die temporäre Tabelle erfolgreich gelöscht wurde.

Sie können jetzt den MySQL-Monitor beenden, indem Sie eingeben:

exit

Dadurch werden Sie vom MySQL-Server getrennt.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie eine temporäre Tabelle innerhalb einer MySQL-Sitzung erstellen. Dies umfasst die Verbindung mit dem MySQL-Server mithilfe des Befehls mysql -u root -p und die Verwendung der CREATE TEMPORARY TABLE-Anweisung, um die Tabellenstruktur zu definieren, einschließlich Spaltennamen, Datentypen und Einschränkungen wie Primärschlüssel und automatisch inkrementierende Felder.

Sie haben auch gelernt, dass der Standardbefehl SHOW TABLES keine temporären Tabellen anzeigt. Stattdessen können Sie die Erstellung der temporären Tabelle überprüfen, indem Sie den DESCRIBE-Befehl verwenden, um ihre Struktur anzuzeigen und die definierten Spalten und ihre Eigenschaften zu bestätigen.