PostgreSQL ALTER Table: Spalte HINZUFÜGEN, Spalte/Tabelle umbenennen – Beispiele
Der Befehl ALTER TABLE wird verwendet, um die Struktur von a zu ändern PostgreSQL Tisch. Mit diesem Befehl können Sie die Tabellenspalten oder den Namen der Tabelle ändern.
Syntax
Hier ist die Syntax für PostgreSQL ALTER TABLE-Befehl:
ALTER TABLE table-name action;
Der Parameter Tabellenname ist der Name der Tabelle, die Sie ändern müssen.
Der Aktionsparameter ist die Aktion, die Sie ausführen müssen, z. B. das Ändern des Namens einer Spalte, das Ändern des Datentyps einer Spalte usw.
Beschreibung
Der Befehl ALTER TABLE ändert die Definition einer vorhandenen Tabelle. Er nimmt die folgenden Unterformen an:
- SPALTE HINZUFÜGEN: Dies verwendet eine ähnliche Syntax wie der Befehl CREATE TABLE, um einer Tabelle eine neue Spalte hinzuzufügen.
- DROP-SÄULE: zum Löschen einer Tabellenspalte. Die den Spalten auferlegten Einschränkungen und Indizes werden ebenfalls gelöscht.
- Standardeinstellung festlegen/löschen: Zum Entfernen des Standardwerts für eine Spalte verwenden. Die Änderung gilt jedoch erst für die Folge INSERT-Anweisungen.
- SET/DROP NICHT NULL: Ändert, ob eine Spalte Nullen zulässt oder nicht.
- STATISTIKEN EINSTELLEN: Zum Festlegen des Ziels für die Statistikerfassung für jede Spalte für ANALYZE-Vorgänge.
- LAGERUNG EINSTELLEN: Zum Festlegen des Speichermodus für eine Spalte. Dadurch wird bestimmt, wo die Spalte gespeichert ist, ob inline oder in einer Zusatztabelle.
- SET OHNE OIDS: Zum Entfernen der alten Spalte der Tabelle verwenden.
- UMBENENNEN: zum Ändern des Tabellennamens oder eines Spaltennamens.
- table_constraint HINZUFÜGEN: Zum Hinzufügen einer neuen Einschränkung zu einer Tabelle verwenden. Es verwendet dieselbe Syntax wie TABELLE ERSTELLEN Befehl.
- TROPFENBESCHRÄNKUNG: Zum Löschen einer Tabellenbeschränkung verwenden.
- EIGENTÜMER: zum Ändern des Eigentümers einer Tabelle, Sequenz, eines Index oder einer Ansicht auf einen bestimmten Benutzer.
- CLUSTER: zum Markieren einer Tabelle, die für die Durchführung zukünftiger Clustervorgänge verwendet werden soll.
Eine Spalte ändern
Eine Spalte kann auf verschiedene Arten geändert werden. Solche Änderungen können mit dem Befehl ALTER TABLE durchgeführt werden. Lassen Sie uns diese besprechen:
Hinzufügen einer neuen Spalte
Um eine neue Spalte zu a hinzuzufügen PostgreSQL Tabelle wird der Befehl ALTER TABLE mit der folgenden Syntax verwendet:
ALTER TABLE table-name ADD new-column-name column-definition;
Der Tabellenname ist der Name der zu ändernden Tabelle.
Der Name der neuen Spalte ist der Name der neuen Spalte, die hinzugefügt werden soll.
Die Spaltendefinition ist die Datentyp der neuen Kolumne.
Siehe die unten gezeigte Buchtabelle:
Die Tabelle hat zwei Spalten: id und name. Wir müssen der Tabelle eine neue Spalte hinzufügen und ihr den Namen author geben. Führen Sie einfach den folgenden Befehl aus:
ALTER TABLE Book ADD author VARCHAR(50);
Nachdem Sie den obigen Befehl ausgeführt haben, sieht die Buchtabelle nun wie folgt aus:
Die neue Spalte wurde erfolgreich hinzugefügt.
Umbenennen einer Tabellenspalte
Mit dem Befehl ALTER TABLE können wir den Namen einer Spalte ändern. In diesem Fall wird der Befehl mit der folgenden Syntax verwendet:
ALTER TABLE table-name RENAME COLUMN old-name TO new-name;
Der Tabellenname ist der Name der Tabelle, deren Spalte umbenannt werden soll.
Der alte Name ist der alte/aktuelle Name der Spalte.
Der neue Name ist der neue Name der Spalte. Betrachten Sie das unten gezeigte Tabellenbuch:
Buch:
Wir benötigen den Namen des Kolumnenautors für book_author. Hier ist der Befehl:
ALTER TABLE Book RENAME COLUMN author TO book_author;
Nachdem wir den Befehl ausgeführt haben, können wir die Struktur der Tabelle anzeigen:
Der Spaltenname wurde erfolgreich geändert.
Festlegen eines Standardwerts für eine Spalte
Wir können einen Standardwert für eine Spalte festlegen, sodass der Standardwert verwendet wird, auch wenn Sie bei INSERT-Vorgängen keinen Wert für diese Spalte angeben. In diesem Fall kann der Befehl ALTER TABLE mit der folgenden Syntax verwendet werden:
ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];
Der Tabellenname ist der Name der Tabelle, deren Spalte geändert werden soll.
Der Spaltenname ist der Name, für dessen Standardwert festgelegt werden soll.
Der Wert ist der Standardwert für die Spalte.
Betrachten Sie die unten angegebene Buchtabelle:
Wir müssen einen Standardwert für die Spalte book_author festlegen. Wir können den folgenden Befehl ausführen:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Fügen wir nun eine Zeile in die Tabelle ein:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners');
Beachten Sie, dass wir Werte nur für zwei Spalten eingefügt haben, id und name. Für die Spalte „book_author“ wurde jedoch der Standardwert verwendet:
Hinzufügen einer Check-Einschränkung
Eine Check-Einschränkung hilft bei der Validierung der Datensätze, die in eine Tabelle eingefügt werden. Wir können dies erreichen, indem wir den Befehl ALTER TABLE mit der Anweisung ADD CHECK kombinieren. Syntax:
ALTER TABLE table-name ADD CHECK expression;
Der Tabellenname ist der Name der zu ändernden Tabelle.
Der Ausdruck ist die Einschränkung, die der Tabellenspalte auferlegt werden soll.
Ändern wir die Spalte „book_author“ der Tabelle „Book“, sodass sie nur die Werte „Nicholas“ und „Samuel“ akzeptiert:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
Versuchen wir nun, einen anderen Wert als „Nicholas“ oder „Samuel“ in die Spalte „book_author“ der Tabelle „Book“ einzufügen:
INSERT INTO Book VALUES(7, 'besten PostgreSQL Book', 'Gregory Bush');
Die Anweisung gibt den folgenden Fehler zurück:
Der Einfügevorgang ist fehlgeschlagen, da wir die Prüfbedingung verletzt haben.
Eine Tabelle umbenennen
Hier ist die Syntax für den ALTER TABLE-Befehl zum Umbenennen einer Tabelle:
ALTER TABLE table-name RENAME TO new-table-name;
Der Tabellenname ist der aktuelle Name der Tabelle.
Der neue Tabellenname ist der neue Name, der der Tabelle zugewiesen werden soll.
Ändern wir beispielsweise den Namen der Tabelle „Book“ in „Books“:
ALTER TABLE Book RENAME TO Books;
Verwenden von pgAdmin
Sehen wir uns nun an, wie diese Aktionen mit pgAdmin ausgeführt werden können.
Hinzufügen einer neuen Spalte
Um dasselbe über pgAdmin zu erreichen, gehen Sie wie folgt vor:
Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.
Schritt 2)
- Klicken Sie in der Navigationsleiste links auf Datenbanken.
- Klicken Sie auf Demo.
Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:
ALTER TABLE Book ADD author VARCHAR(50);
Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.
Schritt 5) Um zu überprüfen, ob die Spalte hinzugefügt wurde, gehen Sie wie folgt vor:
- Klicken Sie im linken Navigationsbereich auf Datenbanken.
- Demo erweitern.
- Erweitern Sie Schemata.
- Erweitern Sie „Öffentlich“.
- Erweitern Sie Tabellen.
- Buch erweitern.
- Erweitern Sie Spalten.
Die Spalte hätte wie unten gezeigt hinzugefügt werden sollen:
Umbenennen einer Tabellenspalte
Um dasselbe über pgAdmin zu erreichen, gehen Sie wie folgt vor:
Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.
Schritt 2)
- Klicken Sie in der Navigationsleiste links auf Datenbanken.
- Klicken Sie auf Demo.
Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:
ALTER TABLE Book RENAME COLUMN author TO book_author;
Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.
Schritt 5) Um zu prüfen, ob die Änderung erfolgreich war, gehen Sie wie folgt vor:
- Klicken Sie im linken Navigationsbereich auf Datenbanken.
- Demo erweitern.
- Erweitern Sie Schemata.
- Erweitern Sie „Öffentlich“.
- Erweitern Sie Tabellen.
- Buch erweitern.
- Erweitern Sie Spalten.
Die Spalten sollten nun wie folgt aussehen:
Die Spalte wurde erfolgreich geändert.
Festlegen eines Standardwerts für eine Spalte
Um dasselbe über pgAdmin zu erreichen, gehen Sie wie folgt vor:
Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.
Schritt 2)
- Klicken Sie in der Navigationsleiste links auf Datenbanken.
- Klicken Sie auf Demo.
Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.
Schritt 5) Führen Sie zum Testen den folgenden Befehl im Abfrage-Editor aus:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners')
Schritt 6) Jetzt können wir die Tabelle abfragen, um zu prüfen, ob der Standardwert in die Spalte book_author eingefügt wurde:
Hinzufügen einer Check-Einschränkung
Um dasselbe über pgAdmin zu erreichen, gehen Sie wie folgt vor:
Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.
Schritt 2)
- Klicken Sie in der Navigationsleiste links auf Datenbanken.
- Klicken Sie auf Demo.
Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.
Schritt 5) Um dies zu testen, gehen Sie wie folgt vor:
- Geben Sie die folgende Abfrage im Abfrage-Editor ein:
INSERT INTO Book VALUES(7, 'besten PostgreSQL Book', 'Gregory Bush');
- Klicken Sie auf die Schaltfläche „Ausführen“.
Es wird Folgendes zurückgegeben:
Eine Tabelle umbenennen
Um dasselbe über pgAdmin zu erreichen, gehen Sie wie folgt vor:
Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.
Schritt 2)
- Klicken Sie in der Navigationsleiste links auf Datenbanken.
- Klicken Sie auf Demo.
Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:
ALTER TABLE Book RENAME TO Books;
Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.
Schritt 5) Um zu überprüfen, ob die Tabelle umbenannt wurde, gehen Sie wie folgt vor:
- Klicken Sie im linken Navigationsbereich auf Datenbanken.
- Demo erweitern.
- Erweitern Sie Schemata.
- Erweitern Sie „Öffentlich“.
- Erweitern Sie Tabellen.
Die Tabelle wurde erfolgreich umbenannt.
Zusammenfassung
- Mit der ALTER TABLE-Anweisung wird die Struktur der Tabelle geändert.
- Der Befehl ALTER TABLE nimmt je nach der auszuführenden Aufgabe unterschiedliche Formen an.
- Die Struktur können die Tabellenspalten oder die Tabelle selbst sein.
- Mit dieser Anweisung können wir den Namen einer Tabelle ändern.
- Mit dem Befehl ALTER TABLE kann der Standardwert einer Spalte festgelegt werden.
- Die Anweisung kann verwendet werden, um die Werte zu validieren, die in eine Tabellenspalte eingegeben werden.
Laden Sie die in diesem Tutorial verwendete Datenbank herunter