Fügen Sie eine neue Spalte zwischen zwei Spalten in SQLite hinzu
- Fügen Sie der vorhandenen SQLite-Datenbank eine neue Spalte hinzu
- Erstellen Sie eine neue Tabelle mit aktualisierten Spalten
-
ALTER TABLE ADD COLUMN
-Ansätze in verschiedenen Datenbanken
In der SQLite-Datenbank speichern wir Daten in den Tabellen. Jede Tabelle enthält Zeilen und Spalten, um die Daten zu verwalten.
Die Spalte stellt die Attribute der Datenbank dar, während die Zeilen den Datensatz in jeder Zeile darstellen. Wenn wir während des Lebenszyklus einer Datenbank eine neue Spalte in die vorhandene Datenbank einfügen oder hinzufügen möchten, haben wir mehrere Möglichkeiten, sie zu übernehmen und daran zu arbeiten.
Eine der Optionen besteht darin, eine neue Spalte in die vorhandene Datenbank einzufügen oder eine neue Tabelle mit aktualisierten Spalten zu erstellen, die Daten in die Zeilen zu kopieren und die vorherige Tabelle zu löschen.
Fügen Sie der vorhandenen SQLite-Datenbank eine neue Spalte hinzu
Um eine neue Spalte in die Datenbank einzufügen, verwenden wir die folgende Syntax des Befehls ALTER TABLE
, um das gewünschte Ergebnis zu erhalten. Hier müssen wir den Namen der Tabelle erwähnen und dass wir eine neue Spalte hinzufügen möchten.
In der nächsten Zeile müssen wir nach dem Befehl ADD COLUMN
die Spaltendefinition angeben.
ALTER TABLE name_of_the_table
ADD COLUMN new_column type_of_column;
Die Spaltendefinition ist wie folgt definiert.
name_of_the_column type_of_data constraint;
Wenn wir uns die obige SQL-Anweisung ansehen, haben wir der Datenbank eine einzelne Spalte hinzugefügt. Wir verwenden jedoch die folgenden SQL-Befehle, wenn wir der SQL-Tabelle mehrere neue Spalten hinzufügen möchten.
ALTER TABLE name_of_the_table
ADD COLUMN new_column1_definition,
ADD COLUMN new_column2_definition;
Nehmen Sie als Beispiel eine Kundentabelle mit 4 Spalten: customer_id
als Primärschlüssel, c_first_name
, c_last_name
und c_email
des Kunden. Die Beschreibung des Kundentisches lautet wie folgt.
CREATE TABLE customers (
customers_id INT PRIMARY KEY,
c_first_name VARCHAR(40) NOT NULL,
c_last_name VARCHAR(40) NOT NULL,
c_email VARCHAR(100) NOT NULL UNIQUE
);
Eine neue Anforderung besteht darin, der Tabelle Kunden
eine neue Spalte Telefonnummer
hinzuzufügen. Um diese Aufgabe zu erfüllen, müssen wir den Befehl ALTER TABLE
verwenden, um den Namen der Tabelle anzugeben, um die neue Spalte hinzuzufügen.
In der nächsten Zeile wird der Befehl ADD COLUMN
benötigt, um eine neue Spaltendefinition hinzuzufügen, die den Spaltennamen und seinen Typ enthält.
ALTER TABLE customers
ADD COLUMN phone_number VARCHAR(35);
Wenn wir mehrere neue Spalten in die SQL-Datenbank einfügen möchten, müssen wir in ähnlicher Weise explizit den Befehl ADD COLUMN
für jede neue Spalte verwenden. Hier haben wir der Datenbank Kunden
drei neue Spalten hinzugefügt: c_mailing_address
, c_dob,
und c_social_media_account
.
Dieser Ansatz fügt die neuen Spalten am Ende einer Tabelle hinzu, nicht zwischen den vorhandenen Spalten.
Denken Sie daran, dass es unterschiedliche Syntaxen gibt, um den Befehl ALTER TABLE
in verschiedenen Datenbanken zu verwenden, während der Ansatz derselbe ist.
ALTER TABLE customers
ADD COLUMN c_mailing_address VARCHAR(155),
ADD COLUMN c_dob DATE,
ADD COLUMN c_social_media_account VARCHAR(255);
Erstellen Sie eine neue Tabelle mit aktualisierten Spalten
Die zweite Möglichkeit besteht darin, eine neue Tabelle mit der fehlenden Spalte und einem temporären Namen zu erstellen. Dieser Ansatz bringt die Säule in die richtige Position und Reihenfolge.
Kopieren Sie dann alle Datensätze aus der vorherigen Tabelle in die neue Tabelle und löschen Sie die vorherige Tabelle. Benennen Sie die neue Tabelle später in den Namen der gelöschten Tabelle um.
Erstellen Sie eine Tabelle mit einem temporären Namen
Der erste Schritt besteht darin, eine neue Tabelle mit einem temporären Namen mit denselben Spaltennamen wie die vorherigen Tabellenspalten zu erstellen. Die gleichen Spaltennamen sind notwendig, da wir alle Datensätze aus der alten Tabelle in die neue kopieren müssen.
CREATE TABLE {NewTableTemporaryName}
(n_name TEXT, COLNew {type} DEFAULT {defaultValue}, quantity INTEGER, n_rate REAL);
Kopieren Sie die Daten aus der alten Tabelle
Im zweiten Schritt müssen wir die Datensätze aus der alten Tabelle in die neu erstellte Tabelle mit denselben Spalten kopieren. Der Befehl INSERT INTO
hilft uns, alle Daten einzufügen, die die SELECT
-Klausel bereitstellt.
INSERT INTO {NewTableTemporaryName}
(n_name, n_quantity, n_rate) SELECT n_name, n_quantity, n_rate FROM Old_Table;
Löschen oder löschen Sie die alte Tabelle
Nachdem wir im nächsten Schritt alle Datensätze (Zeilen) aus der alten Tabelle in die neue kopiert haben, müssen wir die alte löschen oder löschen. Der Grund ist, dass wir die alten Tabellensätze nicht mehr brauchen.
DROP TABLE Old_Table;
Benennen Sie die neue Tabelle mit dem alten Tabellennamen um
Der letzte Schritt besteht darin, die neue Tabelle mit dem alten Tabellennamen umzubenennen. Dies ist ein viel besserer Ansatz, da wir alles entsprechend der Anforderung umbenennen können.
Nach dem letzten Schritt haben wir eine Tabelle mit einem erforderlichen Namen, aktualisierten Spalten und allen darin enthaltenen Datensätzen.
ALTER TABLE {NewTabletemporaryName} RENAME TO Old_Table;
ALTER TABLE ADD COLUMN
-Ansätze in verschiedenen Datenbanken
Wir haben bereits gesehen, wie man mit dem Befehl ADD COLUMN
Spalten in die bestehenden Tabellen einfügt. Dieser Abschnitt beschreibt, wie die Syntax ALTER TABLE ADD COLUMN
in verschiedenen Datenbanken verwendet wird.
Zu diesen Datenbanken gehören PostgreSQL, MYSQL, Oracle, SQL Server, SQLite und BD2.
PostgreSQL
ALTER TABLE name_of_the_table
ADD COLUMN column_definition;
MySQL
ALTER TABLE name_of_the_table
ADD [COLUMN] column_definition;
Orakel
ALTER TABLE name_of_the_table
ADD column_definition;
SQL Server
ALTER TABLE name_of_the_table
ADD column_definition;
SQLite
ALTER TABLE name_of_the_table
ADD COLUMN column_definition;
DB2
ALTER TABLE name_of_the_table
ADD column_definition;
Hi, I'm Junaid. I am a freelance software developer and a content writer. For the last 3 years, I have been working and coding with Python. Additionally, I have a huge interest in developing native and hybrid mobile applications.
LinkedIn