Temporäre Tabellen bieten eine praktische Lösung zum Speichern von Zwischenergebnissen und spielen eine entscheidende Rolle bei der Optimierung der Abfrageleistung.
Wenn Sie verstehen, wann und wie temporäre Tabellen erstellt werden, können Sie:
- Komplexe SQL-Abfragen vereinfachen
- Daten effizienter analysieren:
- Zwischenergebnisse speichern
- Die Verarbeitung komplexer Abfragen übersichtlicher gestalten
- Die Gesamtleistung Ihrer Datenbankoperationen verbessern
In diesem Leitfaden finden Sie interaktive SQL-Übungen, mit denen Sie das Erstellen und Verwenden von temporären Tabellen direkt in Ihrem Browser üben können — keine Datenbankeinrichtung erforderlich.
In diesem Artikel führe ich Sie durch den Prozess der Erstellung einer temporären Tabelle in SQL mit einfachen, aber leistungsstarken Techniken.
Um eine temporäre Tabelle in SQL zu erstellen, können Sie die CREATE TEMPORARY TABLE-Anweisung verwenden und dabei die Tabellenstruktur und Datentypen für jede Spalte angeben. Diese Tabellen werden für verschiedene Zwecke verwendet, wie z.B. Leistungsoptimierung, Aufteilen komplexer Abfragen in verständlichere Teile oder Verarbeitung von Ergebnissen, die nicht in den Haupttabellen einer Datenbank gespeichert werden.
Wichtig: Beachten Sie, dass temporäre Tabellen sitzungsspezifisch sind, d.h. sie werden verworfen, wenn die jeweilige Sitzung endet. Seien Sie sich der potenziellen Nachteile bewusst, insbesondere in Umgebungen mit hohem Datenverkehr, und setzen Sie temporäre Tabellen mit Bedacht ein.
Temporäre Tabellen bieten interessante Vorteile gegenüber traditionellen Tabellen, da sie ressourceneffizienter sind und eine bessere Abfrageoptimierung ermöglichen.
Dies sind häufige Anwendungsfälle für temporäre Tabellen in SQL:
- Verarbeitung großer Datensätze
- Kombinieren von Daten aus mehreren Quellen
- Speichern von Berechnungen oder Aggregaten
- Durchführen rekursiver Operationen
- Tests und Entwicklung
Eine gut konzipierte temporäre Tabelle kann die Leistung und Wartbarkeit im SQL-Datenbankmanagement erheblich verbessern.
Lassen Sie uns tiefer in den Erstellungsprozess eintauchen und die potenziellen Vorteile erkunden, die sie für Ihre Datenbankverwaltungsaufgaben bringen kann.
Temporäre Tabellen können in MySQL, PostgreSQL, Oracle, SQL Server und anderen Datenbanksystemen verwendet werden, obwohl Syntax und Funktionen zwischen den Implementierungen leicht variieren können.
Temporäre Tabellen in SQL erstellen
Temporäre Tabellen, auch bekannt als Temp Tables, werden spontan erstellt und gefüllt und automatisch bereinigt, wenn die Sitzung oder Verbindung endet. Dieser Abschnitt soll einige wichtige Aspekte temporärer Tabellen und ihre Rolle in SQL hervorheben.
Um eine temporäre Tabelle in SQL zu erstellen, verwendet die typische Syntax die CREATE TEMPORARY TABLE-Anweisung, gefolgt von der gewünschten Tabellenstruktur. SQL Server-Benutzer müssen jedoch CREATE TABLE zusammen mit dem #-Präfix für den Tabellennamen verwenden — ein einzigartiges Merkmal von SQL Server. Hier ist ein Beispiel für SQL Server:
CREATE TABLE #ExampleTempTable (
ID INT PRIMARY KEY,
Name NVARCHAR(50),
Age INT
);
Ein bemerkenswerter Vorteil von temporären Tabellen ist, dass sie alle DDL- (Data Definition Language) und DML-Operationen (Data Manipulation Language) unterstützen, genau wie reguläre Tabellen. Das bedeutet, dass Sie Daten einfügen, aktualisieren, löschen und auswählen sowie Indizes und Constraints erstellen und Änderungen an der Tabellenstruktur vornehmen können.
Ein potenzieller Nachteil von temporären Tabellen ist, dass sie in der tempdb-Datenbank erstellt werden, die von allen Benutzern auf einem Server gemeinsam genutzt wird. Dies kann Ressourcenkonflikte und Leistungsprobleme auf stark ausgelasteten Servern verursachen. Es ist wichtig, temporäre Tabellen nur bei Bedarf zu verwenden und wenn möglich andere Optimierungstechniken einzusetzen.
Temporäre Tabellen können entweder lokal oder global sein, abhängig von ihrem beabsichtigten Verwendungszweck:
-
Lokale temporäre Tabellen sind nur für die Sitzung sichtbar, die sie erstellt hat, und werden automatisch gelöscht, wenn die Sitzung endet. In SQL Server beginnen die Namen lokaler temporärer Tabellen mit einem einzelnen Hash (
#). -
Globale temporäre Tabellen sind für alle aktiven Sitzungen und Verbindungen sichtbar. Eine globale temporäre Tabelle bleibt zugänglich, bis die letzte Verbindung, die sie verwendet, beendet wird. In SQL Server beginnen die Namen globaler temporärer Tabellen mit zwei Hashes (
##).
Mehr über lokale und globale temporäre Tabellen im folgenden Abschnitt.
Es ist wichtig zu verstehen, dass temporäre Tabellen in der tempdb-Datenbank erstellt werden. Sie existieren nur für die Dauer einer Sitzung oder bis die Verbindung beendet wird. Sobald die Sitzung endet, wird die temporäre Tabelle automatisch gelöscht.
Hier ist eine Übersicht des Prozesses zur Erstellung einer temporären Tabelle in SQL:
- Definieren Sie einen Tabellennamen mit dem Präfix # oder ##.
- Verwenden Sie ein einzelnes # für lokal zugängliche Tabellen.
- Verwenden Sie doppeltes ## für global zugängliche Tabellen.
- Geben Sie die Spaltennamen und Datentypen der Tabelle an.
- Verwenden Sie eine optionale PRIMARY KEY- und INDEX-Klausel für die Indizierung.
Schauen wir uns nun ein Beispiel für die Erstellung einer temporären Tabelle an. Sie können diesen einfachen Schritten folgen:
-- Eine temporäre Tabelle erstellen
CREATE TABLE #TempStudents
(
StudentID INT PRIMARY KEY,
FirstName NVARCHAR(50),
LastName NVARCHAR(50),
Age INT
);
Im obigen Beispiel wird eine temporäre Tabelle namens #TempStudents mit vier Spalten definiert: StudentID, FirstName, LastName und Age. Die Spalte StudentID dient als PRIMARY KEY.
Um mit der neu erstellten temporären Tabelle zu arbeiten, können Sie Standard-SQL-Operationen wie INSERT, UPDATE, SELECT und DELETE ausführen. Um beispielsweise Daten in die #TempStudents-Tabelle einzufügen, führen Sie den folgenden Befehl aus:
-- Daten in die temporäre Tabelle einfügen
INSERT INTO #TempStudents (StudentID, FirstName, LastName, Age)
VALUES (1, 'John', 'Doe', 20);
In manchen Fällen möchten Sie möglicherweise eine temporäre Tabelle erstellen, indem Sie Daten aus einer vorhandenen Tabelle auswählen. Verwenden Sie dazu den SELECT INTO-Befehl:
-- Eine temporäre Tabelle aus einer vorhandenen Tabelle erstellen
SELECT *
INTO #TempStudents
FROM Students
WHERE Age >= 18;
Die obige Abfrage generiert eine #TempStudents-Tabelle, indem Datensätze aus der Students-Tabelle extrahiert werden, bei denen das Age größer oder gleich 18 ist.
Zusammenfassend ist das Erstellen einer temporären Tabelle in SQL ein unkomplizierter Prozess, der das Definieren der Tabellenstruktur, das Angeben von Spalten und Datentypen und optional das Definieren eines PRIMARY KEY umfasst. Die Verwendung temporärer Tabellen in Ihren Abfragen kann die Effizienz und Lesbarkeit Ihrer SQL-Skripte erheblich verbessern.
Probieren Sie es selbst aus:
[[ testData.title ]]
Erstellen Sie eine temporäre Tabelle namens temp_active_projects und füllen Sie sie mit Projekten aus der projects-Tabelle, die status = 'active' haben. Fragen Sie dann die temporäre Tabelle ab, um alle Spalten der aktiven Projekte zurückzugeben.
[[ col ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.your_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.expected_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ error ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ testData.solution ]]
Verfügbare Tabellen
[[ table.name ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
Wahl zwischen lokalen und globalen temporären Tabellen
Temporäre Tabellen gibt es in zwei Typen — lokal und global. Das Verständnis des Unterschieds zwischen diesen beiden Typen kann Ihnen helfen, eine fundierte Entscheidung darüber zu treffen, welche Sie in Ihren SQL-Abfragen verwenden sollten.
Beginnen wir mit den lokalen temporären Tabellen. Diese Tabellen sind spezifisch für die aktuelle Benutzersitzung, was bedeutet, dass sie automatisch zerstört werden, sobald diese Sitzung endet. Ein hervorragender Anwendungsfall für lokale temporäre Tabellen wäre, wenn Sie Berechnungen in einer gespeicherten Prozedur oder während einer bestimmten Benutzertransaktion durchführen müssen. Die Syntax zum Erstellen einer lokalen temporären Tabelle in SQL ist einfach:
CREATE TABLE #LocalTempTable (Column1 DataType, Column2 DataType);
Lokale temporäre Tabellen haben einige bemerkenswerte Eigenschaften:
- Der Tabellenname muss mit einem einzelnen Hash-Symbol (#) beginnen
- Sie bieten Isolation, was ideal ist, um Konflikte mit anderen Benutzern zu vermeiden
- Sie haben einen begrenzten Geltungsbereich und werden automatisch gelöscht, wenn die Sitzung vorbei ist
Andererseits haben globale temporäre Tabellen einen breiteren Geltungsbereich. Diese Tabellen sind für mehrere Benutzer gleichzeitig zugänglich, was sie nützlich macht, wenn Sie Ihre temporären Daten zwischen mehreren Benutzern oder Sitzungen teilen müssen. Hier ist die Syntax zum Erstellen einer globalen temporären Tabelle in SQL:
CREATE TABLE ##GlobalTempTable (Column1 DataType, Column2 DataType);
Globale temporäre Tabellen haben auch spezifische Attribute:
- Der Tabellenname muss mit zwei Hash-Symbolen (##) beginnen
- Sie ermöglichen den Datenaustausch zwischen Benutzersitzungen
- Sie werden nicht gelöscht, bis der letzte Benutzer, der auf die temporäre Tabelle zugreift, die Verbindung trennt
Bei der Wahl zwischen lokalen und globalen temporären Tabellen ist Folgendes zu berücksichtigen:
- Datenumfang: Wenn die temporären Daten benutzerspezifisch oder auf eine einzelne Sitzung beschränkt sind, wählen Sie eine lokale temporäre Tabelle. Wenn Sie hingegen die Daten zwischen mehreren Benutzern teilen müssen, entscheiden Sie sich für eine globale temporäre Tabelle.
- Ressourcenmanagement: Lokale temporäre Tabellen bieten ein besseres Ressourcenmanagement, da sie automatisch zerstört werden, wenn die Sitzung endet. Globale temporäre Tabellen hingegen erfordern eine genauere Überwachung, um zu verhindern, dass sie unnötige Ressourcen verbrauchen.
Kurz gesagt: Die Wahl zwischen lokalen und globalen temporären Tabellen hängt von den Anforderungen Ihres Projekts ab. Wägen Sie für jede Situation immer die Aspekte Datenumfang und Ressourcenmanagement ab, um eine gut optimierte SQL-Umgebung zu gewährleisten.
Spalten und Datentypen definieren
Beim Arbeiten mit temporären Tabellen in SQL ist es entscheidend, Spalten und ihre Datentypen genau zu definieren. Dieser Abschnitt behandelt die wesentlichen Aspekte der Definition von Spalten und Datentypen, wenn Sie eine temporäre Tabelle in SQL erstellen.
Bevor wir in die Details eintauchen, verstehen wir zunächst das Konzept der Datentypen in SQL. In einer relationalen Datenbank werden Datentypen verwendet, um die Art der Daten zu definieren, die eine bestimmte Spalte enthalten kann. Häufige Datentypen sind:
- INT: Stellt einen ganzzahligen Wert dar
- VARCHAR: Stellt Zeichendaten variabler Länge dar
- DATE: Stellt ein Datum im Format JJJJ-MM-TT dar
- FLOAT: Stellt eine Gleitkommazahl dar
Beim Erstellen einer temporären Tabelle ist es wichtig, den Namen und Datentyp jeder Spalte anzugeben. Bei Bedarf können Sie auch Constraints wie NOT NULL definieren, um die Datenintegrität zu gewährleisten.
Um zu demonstrieren, wie Spalten und Datentypen beim Erstellen einer temporären Tabelle in SQL definiert werden, betrachten wir ein praktisches Beispiel. Angenommen, wir möchten eine temporäre Tabelle erstellen, um Informationen über Mitarbeiter zu speichern, einschließlich ihrer Mitarbeiter-ID, Vorname, Nachname, Einstellungsdatum und Gehalt.
Hier ist ein Beispiel-SQL-Skript zum Erstellen der temporären Tabelle:
CREATE TEMP TABLE employees_temp (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
hire_date DATE NOT NULL,
salary FLOAT
);
In diesem Beispiel haben wir eine temporäre Tabelle namens employees_temp mit fünf Spalten erstellt:
-
employee_id(ganzzahliger Datentyp und dient als Primärschlüssel) -
first_name(varchar-Datentyp mit maximaler Länge von 50 Zeichen und NOT NULL-Constraint) -
last_name(varchar-Datentyp mit maximaler Länge von 50 Zeichen und NOT NULL-Constraint) -
hire_date(date-Datentyp mit NOT NULL-Constraint) -
salary(float-Datentyp)
Durch die Angabe der Datentypen und Constraints wie im Beispiel gezeigt, können wir sicherstellen, dass die temporäre Tabelle nur Daten akzeptiert, die die definierten Kriterien erfüllen. Dies hilft bei der Aufrechterhaltung der Datenkonsistenz und erleichtert die Arbeit mit der temporären Tabelle in nachfolgenden Abfragen.
Zusammenfassend ist das Definieren von Spalten und ihren Datentypen ein wesentlicher Schritt beim Erstellen temporärer Tabellen in SQL. Es hilft bei der Aufrechterhaltung der Datenintegrität, gewährleistet konsistente Datenspeicherung und vereinfacht das Abfragen der temporären Tabelle für weitere Analysen.
Probieren Sie es selbst aus:
[[ testData.title ]]
Erstellen Sie eine temporäre Tabelle namens temp_category_totals, die den Gesamtumsatz pro Kategorie aus der sales-Tabelle speichert. Fragen Sie dann die temporäre Tabelle ab, um category und total_sales für alle Kategorien mit total_sales größer als 1000 anzuzeigen.
[[ col ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.your_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.expected_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ error ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ testData.solution ]]
Verfügbare Tabellen
[[ table.name ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
Temporäre Tabellen für bessere Leistung indizieren
Beim Arbeiten mit temporären Tabellen in SQL ist die Optimierung ihrer Leistung entscheidend für die Effizienz Ihrer Datenbankabfragen. Eine effektive Methode, dies zu erreichen, ist das Indizieren temporärer Tabellen. Die Indizierung kann Ihre Abfragen dramatisch beschleunigen, indem sie die Zeit zum Suchen und Sortieren von Daten reduziert — ein unverzichtbares Werkzeug in der SQL-Welt.
Das Erstellen einer temporären Tabelle in SQL beginnt typischerweise mit der CREATE TABLE-Anweisung. Beim Aufbau dieser temporären Tabellen ist es wichtig zu bestimmen, auf welche Spalten am häufigsten zugegriffen oder gesucht wird, da diese Spalten für eine verbesserte Leistung indiziert werden sollten.
Es gibt einige wichtige Gründe, warum das Indizieren temporärer Tabellen die Geschwindigkeit Ihrer Abfragen erheblich verbessern kann:
- Reduzierte Tabellenscans: Indizes helfen, vollständige Tabellenscans zu minimieren, indem sie der SQL-Engine ermöglichen, bestimmte Zeilen in der Tabelle schnell zu lokalisieren.
- Verbesserte Sortierung: Das Indizieren temporärer Tabellen beschleunigt Sortiervorgänge, besonders bei großen Datenmengen.
- Schnellere Joins: Beim Verknüpfen mehrerer Tabellen spielen Indizes eine entscheidende Rolle bei der Leistungsverbesserung und Verkürzung der Abfrageausführungszeiten.
Um einen Index auf einer temporären Tabelle zu erstellen, folgen Sie diesen grundlegenden Schritten:
- Erstellen Sie die temporäre Tabelle mit der
CREATE TABLE-Anweisung. - Verwenden Sie die
CREATE INDEX-Anweisung, um einen Index auf einer oder mehreren Spalten der temporären Tabelle zu erstellen. - Führen Sie Ihre Abfragen aus.
Es ist wichtig zu beachten, dass das Indizieren temporärer Tabellen zwar zahlreiche Vorteile bietet, es aber auch einige Nachteile gibt:
-
Erhöhter Overhead: Die Indizierung fügt Overhead zu
INSERT-,UPDATE- undDELETE-Operationen hinzu und erfordert mehr Zeit und Ressourcen für die Pflege der Indizes. - Speicherplatznutzung: Beim Erstellen eines Index in SQL muss die Datenbank-Engine zusätzlichen Speicherplatz verbrauchen. Dies kann die Systemleistung beeinträchtigen, wenn der Speicherplatz begrenzt ist.
Um die besten Ergebnisse zu erzielen, beachten Sie diese Best Practices für das Indizieren temporärer Tabellen:
- Analysieren Sie Ihre Abfragen und bestimmen Sie die am häufigsten verwendeten Spalten in Ihren
WHERE-,GROUP BY-,ORDER BY- undJOIN-Klauseln. - Entscheiden Sie sich wenn möglich für abdeckende Indizes, da diese alle erforderlichen Daten für eine bestimmte Abfrage enthalten können und Zugriffe auf die Basistabelle minimieren.
- Überwachen und bewerten Sie kontinuierlich die Indexnutzung, um eine optimale Leistung sicherzustellen.
Die Optimierung der Leistung temporärer Tabellen in SQL ist ein entscheidender Bestandteil eines effektiven Datenbankmanagements. Durch den Einsatz von Indizierungsstrategien und Best Practices können Sie Ihre Abfragen verbessern und die Gesamteffizienz Ihrer SQL-Operationen erheblich steigern.
Temporäre Tabellen und permanente Tabellen verknüpfen
Beim Arbeiten mit SQL-Datenbanken müssen Sie oft temporäre Tabellen erstellen und diese mit bestehenden permanenten Tabellen verknüpfen. Die Kombination von temporären und permanenten Tabellen kann Abfragen optimieren, die Leistung verbessern und komplexe Datenoperationen überschaubarer machen.
Um eine temporäre Tabelle in SQL zu erstellen, verwenden Sie die CREATE TEMPORARY TABLE-Anweisung. Nach der Erstellung können Sie Standard-SQL-JOIN-Anweisungen verwenden, um diese temporären Tabellen mit permanenten Tabellen zu kombinieren. Es gibt vier Arten von Joins in SQL:
- INNER JOIN
- LEFT JOIN
- RIGHT JOIN
- FULL OUTER JOIN
Jeder Join-Typ bestimmt, wie die Tabellen basierend auf übereinstimmenden oder nicht übereinstimmenden Daten in den angegebenen Spalten kombiniert werden. Hier ist eine kurze Erklärung jedes Typs:
- INNER JOIN: Ruft Zeilen aus beiden Tabellen ab, wenn eine Übereinstimmung zwischen den angegebenen Spalten besteht.
- LEFT JOIN: Gibt alle Zeilen aus der linken Tabelle und die übereinstimmenden Zeilen aus der rechten Tabelle zurück.
- RIGHT JOIN: Zeigt alle Zeilen aus der rechten Tabelle und die übereinstimmenden Zeilen aus der linken Tabelle.
- FULL OUTER JOIN: Enthält alle Zeilen aus beiden Tabellen, übereinstimmend oder nicht.
Nachfolgend finden Sie Beispiele, wie Sie temporäre Tabellen in SQL erstellen und diese mit einer permanenten Tabelle verknüpfen. Angenommen, Sie haben eine permanente Tabelle namens employees und eine temporäre Tabelle namens temp_salaries:
-- Eine temporäre Tabelle für Gehälter erstellen
CREATE TEMPORARY TABLE temp_salaries (
employee_id INT PRIMARY KEY,
salary DECIMAL(10, 2)
);
-- Beispieldaten in die temporäre Tabelle einfügen
INSERT INTO temp_salaries (employee_id, salary)
VALUES (1, 5000.00), (2, 6000.00), (3, 5500.00);
-- INNER JOIN Beispiel: Mitarbeiterinformationen mit übereinstimmenden Gehältern abrufen
SELECT employees.*, temp_salaries.salary
FROM employees
INNER JOIN temp_salaries ON employees.id = temp_salaries.employee_id;
-- LEFT JOIN Beispiel: Alle Mitarbeiterdaten und übereinstimmende Gehaltsdaten wenn verfügbar
SELECT employees.*, temp_salaries.salary
FROM employees
LEFT JOIN temp_salaries ON employees.id = temp_salaries.employee_id;
-- RIGHT JOIN Beispiel: Alle verfügbaren Gehaltsdaten und übereinstimmende Mitarbeiterinformationen
SELECT employees.*, temp_salaries.salary
FROM employees
RIGHT JOIN temp_salaries ON employees.id = temp_salaries.employee_id;
-- FULL OUTER JOIN Beispiel: Alle Mitarbeiterdaten mit entsprechenden Gehaltsdaten kombinieren
SELECT employees.*, temp_salaries.salary
FROM employees
FULL OUTER JOIN temp_salaries ON employees.id = temp_salaries.employee_id;
Diese Beispiele zeigen, wie Sie temporäre Tabellen in SQL erstellen und mit permanenten Tabellen verknüpfen. Durch das Verständnis der verfügbaren Join-Typen und ihrer angemessenen Verwendung können Sie Abfragen optimieren und komplexe Datenanalysen effektiver durchführen.
Probieren Sie es selbst aus:
[[ testData.title ]]
Erstellen Sie eine temporäre Tabelle namens temp_high_scorers, die Studenten aus der students-Tabelle mit score >= 80 enthält. Verknüpfen Sie dann diese temporäre Tabelle mit der courses-Tabelle, um student_name, score und course_name für jeden Studenten mit hoher Punktzahl anzuzeigen.
[[ col ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.your_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.expected_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ error ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ testData.solution ]]
Verfügbare Tabellen
[[ table.name ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
Temporäre Tabellen modifizieren
Um eine temporäre Tabelle zu modifizieren, bietet SQL die ALTER TABLE-Anweisung. Dieser Befehl ermöglicht es Benutzern, Änderungen an der Tabellenstruktur vorzunehmen, einschließlich Hinzufügen und Löschen von Spalten. Die Syntax zum Hinzufügen einer neuen Spalte ist wie folgt:
ALTER TABLE #TempTableName
ADD ColumnName DataType;
Angenommen, wir haben eine temporäre Tabelle namens #Orders und möchten eine neue Spalte namens OrderStatus mit dem Datentyp varchar hinzufügen. Der Code würde so aussehen:
ALTER TABLE #Orders
ADD OrderStatus VARCHAR(50);
Falls der Benutzer eine Spalte entfernen muss, kann er die DROP COLUMN-Anweisung verwenden. Die Syntax für diesen Befehl lautet:
ALTER TABLE #TempTableName
DROP COLUMN ColumnName;
Um beispielsweise die OrderStatus-Spalte aus der temporären Tabelle #Orders zu entfernen, wäre der Code:
ALTER TABLE #Orders
DROP COLUMN OrderStatus;
Gelegentlich müssen Benutzer Daten innerhalb der temporären Tabelle aktualisieren, bevor sie das Endergebnis abrufen. Der UPDATE-Befehl ermöglicht genau das:
UPDATE #TempTableName
SET ColumnName = NewValue
WHERE Conditions;
Angenommen, wir möchten den Status einer bestimmten Bestellung in der temporären Tabelle #Orders ändern. Der folgende Code ändert den OrderStatus der Bestellung mit OrderID gleich 101:
UPDATE #Orders
SET OrderStatus = 'Complete'
WHERE OrderID = 101;
Temporäre Tabellen löschen
Temporäre Tabellen können entweder automatisch oder manuell aus der Datenbank entfernt werden. Schauen wir uns diese beiden Optionen an:
-
Automatisches Löschen: SQL Server entfernt temporäre Tabellen automatisch, wenn der Benutzer die Verbindung trennt oder die Sitzung endet. Je nach Methode, mit der die temporäre Tabelle erstellt wurde, kann der Bereinigungsprozess unterschiedlich sein. Hier ist ein Überblick, wie es funktioniert:
- Lokale temporäre Tabelle: Mit einem einzelnen ‘#’-Symbol (Hash) im Tabellennamen erstellt, werden lokale temporäre Tabellen gelöscht, sobald die Sitzung die Verbindung zur Datenbank trennt.
- Globale temporäre Tabelle: Mit zwei ‘##’-Symbolen (Hashes) in ihren Tabellennamen gekennzeichnet, werden globale temporäre Tabellen gelöscht, wenn die letzte Sitzung, die sie referenziert, geschlossen wird.
-
Manuelles Löschen: Es können Situationen auftreten, in denen ein Benutzer eine temporäre Tabelle vor dem Trennen der Verbindung oder dem Ende der Sitzung löschen möchte. Dazu wird der
DROP TABLE-Befehl verwendet. So löschen Sie eine temporäre Tabelle in SQL manuell:-
Lokale/Globale temporäre Tabelle: Um sie manuell zu löschen, führen Sie den folgenden Befehl aus:
DROP TABLE #TempTableName; -- für lokale temporäre Tabelle DROP TABLE ##TempTableName; -- für globale temporäre Tabelle
-
Lokale/Globale temporäre Tabelle: Um sie manuell zu löschen, führen Sie den folgenden Befehl aus:
Es ist wichtig, temporäre Tabellen zu löschen, da sie Speicherressourcen verbrauchen und viele ungenutzte Tabellen zu verschwendetem Speicherplatz und ineffizienten Abfragen führen können. Die ordnungsgemäße Verwaltung temporärer Tabellen gewährleistet eine optimierte Datenbankumgebung, die schnellere Abfrageausführung und bessere Leistung ermöglicht. Das Beibehalten temporärer Tabellen über längere Zeiträume kann auch Konflikte mit anderen Tabellen verursachen, Wartungsschwierigkeiten schaffen oder das Risiko bergen, versehentlich veraltete Daten in neue Abfragen einzubeziehen.
Arbeiten mit temporären Tabellen in Beekeeper Studio
Wenn Sie regelmäßig mit temporären Tabellen arbeiten, macht ein guter SQL-Editor den Unterschied. Beekeeper Studio bietet eine übersichtliche, intuitive Oberfläche zum Schreiben und Testen von Abfragen mit temporären Tabellen.
Funktionen, die beim Arbeiten mit temporären Tabellen helfen:
- Autovervollständigung: Schlägt Spaltennamen während der Eingabe vor und reduziert Fehler
- Abfrageverlauf: Speichern und wiederverwenden Sie Ihre Muster für temporäre Tabellen
- Multi-Datenbank-Unterstützung: Verwenden Sie temporäre Tabellen in PostgreSQL, MySQL, SQLite, SQL Server und mehr
- Tabellenbrowser: Zeigen Sie einfach die Struktur und Daten Ihrer temporären Tabelle an
Die kostenlose Version enthält alles, was Sie brauchen, um temporäre Tabellen und andere SQL-Konzepte zu beherrschen — perfekt zum Lernen und für die tägliche Datenbankarbeit.
Wichtige Erkenntnisse
Temporäre Tabellen sind ein leistungsstarkes Werkzeug für SQL-Entwickler. Hier ist, was Sie sich merken sollten:
- Temporäre Tabellen speichern Zwischenergebnisse und werden automatisch bereinigt, wenn die Sitzung endet
-
Verwenden Sie
CREATE TEMP TABLEoderCREATE TEMPORARY TABLEin den meisten Datenbanken, oder das#TableName-Präfix in SQL Server - Lokale temporäre Tabellen sind sitzungsspezifisch, während globale temporäre Tabellen zwischen Sitzungen geteilt werden können
- Definieren Sie immer Spalten und Datentypen, um die Datenintegrität zu gewährleisten
- Fügen Sie Indizes hinzu zu temporären Tabellen, wenn Sie mit großen Datensätzen arbeiten
- Verknüpfen Sie temporäre Tabellen mit permanenten Tabellen wie normale Tabellen mit Standard-JOIN-Syntax
- Verwalten Sie temporäre Tabellen ordnungsgemäß, indem Sie sie löschen, wenn sie nicht mehr benötigt werden, um Ressourcen zu schonen
Wenn Sie temporäre Tabellen beherrschen, werden Sie effizientere SQL-Abfragen schreiben und komplexe Datenoperationen mit Leichtigkeit bewältigen.
Beekeeper Studio Ist Eine Kostenlose & Open-Source-Datenbank-GUI
Das beste SQL-Abfrage- und Editor-Tool, das ich je benutzt habe. Es bietet alles, was ich zur Verwaltung meiner Datenbank brauche. - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studio ist schnell, intuitiv und einfach zu bedienen. Beekeeper unterstützt viele Datenbanken und funktioniert hervorragend unter Windows, Mac und Linux.
Was Benutzer Über Beekeeper Studio Sagen
"Beekeeper Studio hat meinen alten SQL-Workflow komplett ersetzt. Es ist schnell, intuitiv und macht die Datenbankarbeit wieder angenehm."
"Ich habe viele Datenbank-GUIs ausprobiert, aber Beekeeper findet die perfekte Balance zwischen Funktionen und Einfachheit. Es funktioniert einfach."