SQL (Structured Query Language) ist eine Programmiersprache, die zum Arbeiten mit relationalen Datenbanken verwendet wird. Es wird zum Erstellen, Ändern und Abrufen von Daten in Datenbanken verwendet. Häufig tritt eine Situation auf, in der Sie eine neue Tabelle basierend auf Daten erstellen müssen, die bereits in einer anderen Tabelle enthalten sind.
Es gibt mehrere Möglichkeiten, eine Tabelle aus einer vorhandenen Tabelle in SQL zu erstellen. Eine der gängigsten Methoden ist die Verwendung der CREATE TABLE AS SELECT-Anweisung. Die Syntax für diese Anweisung lautet wie folgt:
CREATE TABLE neue Tabelle AS SELECT * FROM Quelltabelle;
In diesem Beispiel ist "neue Tabelle" der Name der neuen Tabelle, die Sie erstellen möchten, und "Quelltabelle" ist der Name der Tabelle, aus der Sie Daten kopieren möchten. Ein Sternchen (*) bedeutet, dass Sie alle Spalten und Zeilen aus der ursprünglichen Tabelle in die neue Tabelle kopieren möchten.
Mit der CREATE TABLE AS SELECT-Anweisung können Sie mithilfe der Abfrageergebnisse eine neue Tabelle erstellen SELECT. Dies ist nützlich, wenn Sie eine Tabelle benötigen, die nur bestimmte Spalten oder Zeilen aus der ursprünglichen Tabelle enthält. Sie können auch Operatoren verwenden WHERE und GROUP BY innerhalb einer SELECT-Anweisung, um die Datenprobenbedingungen zu definieren.
Wie erstelle ich eine Tabelle in SQL aus einer anderen Tabelle?
Wenn Sie bereits eine Tabelle in der Datenbank haben, aber eine neue Tabelle erstellen möchten, die einige oder alle Daten aus einer bereits vorhandenen Tabelle enthält, können Sie die Anweisung CREATE TABLE in SQL verwenden.
Um eine Tabelle in SQL aus einer anderen Tabelle zu erstellen, können Sie die folgende Syntax verwenden:
| Operator | Die Beschreibung |
|---|---|
| CREATE TABLE new_table AS SELECT * FROM original_table WHERE condition; | Erstellt eine neue new_table mit allen Spalten und Daten aus der original_table , die die angegebene Bedingung erfüllen. |
Angenommen, Sie haben eine Tabelle mit den Spalten employee_id , first_name , last_name , email wie folgt: employee_id , first_name , last_name , email .
Sie möchten eine neue Tabelle employees_backup erstellen, die alle Daten aus der Tabelle employees enthält. Dazu können Sie die folgende SQL-Abfrage verwenden:
CREATE TABLE employees_backup AS SELECT * FROM employees;
Jetzt haben Sie eine neue Tabelle employees_backup , die alle Daten aus der Tabelle employees enthält. Wenn Sie nur einige Spalten auswählen oder einen Filter auf die Daten anwenden möchten, können Sie die SELECT-Abfrage entsprechend ändern.
Beachten Sie, dass beim Kopieren von Daten aus einer Tabelle in eine andere keine Einschränkungen, Indizes oder anderen Eigenschaften der Tabelle kopiert werden. Die erstellte Tabelle enthält nur die Struktur und die Daten aus der ursprünglichen Tabelle.
Erstellen einer Tabelle aus einer anderen Tabelle
In SQL können Sie eine neue Tabelle mit Daten aus einer anderen Tabelle erstellen. Dies kann nützlich sein, wenn Sie nur bestimmte Spalten oder Zeilen aus der Quelltabelle speichern möchten und wenn Sie Datenkonvertierungen vornehmen möchten.
Sie können einen CREATE TABLE-Ausdruck verwenden, um eine neue Tabelle aus einer anderen Tabelle in SQL zu erstellen. AS.
Angenommen, wir haben eine Tabelle "users" mit Spalten wie id, Name, E-Mail. Wir möchten eine neue Tabelle "active_users" mit denselben Spalten erstellen, jedoch nur mit aktiven Benutzern.
Dazu können wir die folgende Abfrage verwenden:
CREATE TABLE active_users ASSELECT *FROM usersWHERE status = 'active';
Durch Ausführen dieser Abfrage wird eine neue Tabelle "active_users" mit den gleichen Spalten wie in der Quelltabelle "users" erstellt, jedoch nur mit den Daten aktiver Benutzer.
Daher ist das Erstellen einer Tabelle aus einer anderen Tabelle eine bequeme und effiziente Möglichkeit, mit Daten in SQL zu arbeiten.
Kopieren von Daten in eine neue Tabelle
INSERT INTO new_table (column1, column2, column3) SELECT column1, column2, column3 FROM old_table;
In diesem Beispiel erstellen wir eine neue Tabelle mit den Spalten column1, column2 und column3 und wählen dann die Daten aus der alten Tabelle old_table aus und fügen Sie sie in die neue Tabelle new_table ein. Die Struktur der neuen Tabelle muss jedoch mit der Struktur der alten Tabelle übereinstimmen, damit die Daten erfolgreich kopiert werden können.
Wenn Sie also Daten von einer Tabelle in eine andere kopieren, können Sie eine neue Tabelle erstellen, die dieselben Daten wie die alte Tabelle enthält. Dies kann beispielsweise nützlich sein, wenn Sie eine Kopie einer Tabelle zum Sichern erstellen oder eine Datenanalyse durchführen.
Beachten Sie, dass beim Kopieren von Daten in eine neue Tabelle möglicherweise Einschränkungen der Datenintegrität berücksichtigt werden müssen, z. B. die Eindeutigkeit von Werten in einer Spalte oder Verweise auf andere Tabellen.
Umbenennen einer neuen Tabelle
Nachdem Sie eine neue Tabelle in SQL erstellt haben, können Sie die ALTER TABLE-Anweisung verwenden, um diese Tabelle umzubenennen. Dies kann nützlich sein, wenn Sie ihren Namen ändern oder ihn an Ihre festgelegten Benennungsregeln anpassen möchten.
Die Syntax zum Umbenennen einer Tabelle lautet wie folgt:
ALTER TABLE название_старой_таблицыRENAME TO название_новой_таблицы;
Sie müssen den Tabellennamen durch den aktuellen Namen der Tabelle ersetzen, die Sie umbenennen möchten, und den Namen der neuen Tabelle durch den neuen Namen ersetzen, den Sie verwenden möchten.
Nehmen wir zum Beispiel an, wir haben eine Tabelle mit dem Namen "Strengtabelle", und wir möchten sie in "neue Tabelle" umbenennen. Wir können die folgende SQL-Anweisung verwenden:
ALTER TABLE старая_таблицаRENAME TO новая_таблица;
Nachdem Sie diese Anweisung ausgeführt haben, wird die Tabelle "Tabelle" in "neue Tabelle" umbenannt und basierend auf dem neuen Namen verfügbar gemacht.
Beachten Sie, dass beim Umbenennen einer Tabelle in SQL auch alle Daten und die Tabellenstruktur beibehalten werden. Dies bedeutet, dass alle Datensätze und zugehörigen Objekte (wie Indizes, Einschränkungen und Trigger) ebenfalls unverändert bleiben.
Ändern des Tabellenschemas
Es gibt verschiedene Befehle und Operatoren, um das Tabellenschema in SQL zu ändern. In einigen Fällen können Sie die Spaltendatentypen ändern, Spalten hinzufügen und entfernen sowie die Einschränkungen und Indizes der Tabelle ändern.
Eine Möglichkeit, das Tabellenschema zu ändern, besteht darin, die ALTER TABLE-Anweisung zu verwenden. Verwenden Sie den Befehl ALTER TABLE mit dem Schlüsselwort ALTER COLUMN, um den Datentyp einer Spalte zu ändern:
- ALTER TABLE Tabellenname ALTER COLUMN Spaltenname neuer Datentyp;
Um beispielsweise den Datentyp der Spalte "age" in der Tabelle "users" in eine ganze Zahl zu ändern, führen Sie die folgende Abfrage aus:
- ALTER TABLE users ALTER COLUMN age INTEGER;
Verwenden Sie den Befehl ALTER TABLE mit dem Schlüsselwort ADD, um einer Tabelle eine Spalte hinzuzufügen:
- ALTER TABLE Tabellenname ADD Spaltenname Datentyp;
Um beispielsweise eine Spalte "email" vom Typ VARCHAR(50) zur Tabelle "users" hinzuzufügen, führen Sie die folgende Abfrage aus:
- ALTER TABLE users ADD email VARCHAR(50);
Um eine Spalte aus einer Tabelle zu entfernen, verwenden Sie den Befehl ALTER TABLE mit dem Schlüsselwort DROP:
- ALTER TABLE Tabellenname DROP COLUMN Spaltenname;
Um beispielsweise die Spalte "email" aus der Tabelle "users" zu entfernen, führen Sie die folgende Abfrage aus:
- ALTER TABLE users DROP COLUMN email;
Neben ALTER TABLE gibt es mehrere weitere Befehle und Anweisungen, mit denen Sie das Tabellenschema in SQL ändern können. Dies sind nur die grundlegendsten und beliebtesten Möglichkeiten, das Schema einer Tabelle zu ändern.
Verwenden des INSERT INTO-Befehls zum Erstellen einer neuen Tabelle
Befehl INSERT INTO in SQL wird es verwendet, um Daten in eine bereits vorhandene Tabelle einzufügen. Es kann jedoch auch verwendet werden, um eine neue Tabelle basierend auf Daten aus einer anderen Tabelle zu erstellen.
Um eine neue Tabelle zu erstellen, können Sie die folgende Syntax verwenden:
CREATE TABLE новая_таблица ASSELECT * FROM существующая_таблицаWHERE условие;
In diesem Beispiel erstellen wir eine neue Tabelle namens neue Tabelle und wir kopieren alle Daten aus einer vorhandenen Tabelle hinein.
Operator AS wird verwendet, um den Namen der neuen Tabelle zu bestimmen, und der Operator SELECT * wählt alle Spalten aus einer vorhandenen Tabelle aus.
Sie können auch hinzufügen WHERE ausdruck, um nur bestimmte Zeilen aus einer vorhandenen Tabelle auszuwählen, um eine neue Tabelle zu erstellen.
Nach Abschluss dieses Befehls wird eine neue Tabelle mit der gleichen schematischen Beschreibung und den Daten erstellt, die Sie aus der vorhandenen Tabelle ausgewählt haben.
Verwenden des Befehls INSERT INTO um eine neue Tabelle basierend auf Daten aus einer anderen Tabelle zu erstellen, ist es eine bequeme Möglichkeit, eine Tabelle schnell zu erstellen, ohne die Struktur neu definieren zu müssen.
Erstellen einer temporären Tabelle basierend auf einer vorhandenen Tabelle
In SQL können Sie eine temporäre Tabelle basierend auf einer bereits vorhandenen Tabelle erstellen. Diese Funktion kann nützlich sein, wenn Sie Operationen durchführen und Daten in einer temporären Tabelle analysieren möchten, ohne die ursprüngliche Tabelle zu ändern.
Verwenden Sie die folgende Syntax, um eine temporäre Tabelle basierend auf einer vorhandenen Tabelle zu erstellen:
CREATE TABLE #tempTableName
AS
SELECT * FROM originalTableName;
Das Zeichen "#" vor dem Tabellennamen gibt jedoch an, dass die Tabelle temporär ist und nur während der aktuellen Sitzung verfügbar ist.
Sie können beispielsweise die folgende Abfrage verwenden, um eine temporäre Tabelle basierend auf der Tabelle "orders" zu erstellen:
CREATE TABLE #tempOrders
AS
SELECT * FROM orders;
Nach Abschluss dieser Abfrage wird eine temporäre Tabelle "tempOrders" erstellt, die alle Datensätze und Spalten aus der ursprünglichen Tabelle "orders" enthält.
Eine temporäre Tabelle kann zum Ausführen verschiedener Vorgänge und zur Analyse von Daten verwendet werden, z. B. zum Auswählen bestimmter Datensätze, zum Ausführen bedingter Vorgänge oder zum Erstellen von Berichten.
Nachdem Sie die temporäre Tabelle beendet haben, können Sie sie mit dem Befehl löschen:
DROP TABLE #tempTableName;
Beachten Sie dabei, dass alle in der temporären Tabelle gespeicherten Daten endgültig gelöscht werden.
Das Erstellen einer temporären Tabelle basierend auf einer vorhandenen Tabelle bietet daher die Möglichkeit, Operationen und Datenanalysen effizient und sicher durchzuführen, ohne die ursprüngliche Tabelle zu beeinträchtigen.