PostgreSQL ALTER TABLE: Kolom toevoegen en hernoemen
โก Slimme samenvatting
PostgreSQL Met ALTER TABLE kunt u de structuur van een bestaande tabel wijzigen, waardoor u kolommen kunt toevoegen of verwijderen, een kolom of de hele tabel kunt hernoemen, standaardwaarden kunt instellen en controlebeperkingen kunt toepassen zonder het object opnieuw aan te maken.

Wat is ALTER TABLE in PostgreSQL?
De ALTER TABLE Het commando wordt gebruikt om de structuur van een te wijzigen. PostgreSQL Het commando `drop` wordt gebruikt om de kolommen van een tabel of de naam van de tabel zelf te wijzigen, zonder de tabel te verwijderen.ping en het object opnieuw creรซren.
Syntaxis
Hier is de syntaxis voor de PostgreSQL ALTER TABLE-opdracht:
ALTER TABLE table-name action;
De parameter `table-name` is de naam van de tabel die u wilt wijzigen. De parameter `action` is de actie die u wilt uitvoeren, zoals het wijzigen van de naam van een kolom of het wijzigen van het gegevenstype van een kolom.
Beschrijving
De opdracht ALTER TABLE wijzigt de definitie van een bestaande tabel. Het accepteert de volgende subformulieren:
- KOLOM TOEVOEGENDeze opdracht gebruikt een vergelijkbare syntaxis als de CREATE TABLE-opdracht om een โโnieuwe kolom aan een tabel toe te voegen.
- DROP KOLOM: voor dropping een tabelkolom. De beperkingen en indexen die op de kolommen zijn toegepast, worden ook verwijderd.
- STANDAARD INSTELLEN/LATEN: wordt gebruikt om de standaardwaarde voor een kolom in te stellen of te verwijderen. De wijziging is alleen van toepassing op volgende kolommen. INSERT-verklaringen.
- SET/DROP NIET NULLHiermee wordt bepaald of een kolom null-waarden toestaat of niet.
- SET STATISTIEKEN: om het doel voor het verzamelen van statistieken voor elke kolom in te stellen voor ANALYZE-bewerkingen.
- OPSLAG INSTELLEN: om de opslagmodus voor een kolom in te stellen, ofwel inline of in een aanvullende tabel.
- SET ZONDER OIDS: wordt gebruikt om de oude OID-kolom van de tabel te verwijderen.
- RENAME: voor het wijzigen van de tabelnaam of een kolomnaam.
- VOEG tabelbeperking toe: wordt gebruikt om een โโnieuwe beperking aan een tabel toe te voegen. Het gebruikt dezelfde syntaxis als de MAAK EEN TABEL opdracht.
- DROP BEPERKING: gebruikt voor dropping een tabelbeperking.
- EIGENAAR: om de eigenaar van een tabel, reeks, index of weergave te wijzigen naar een bepaalde gebruiker.
- CLUSTER: om een โโtabel te markeren die in de toekomst voor clusterbewerkingen gebruikt zal worden.
Een kolom wijzigen
Een kolom kan op verschillende manieren worden gewijzigd. Dergelijke wijzigingen worden uitgevoerd met behulp van de ALTER TABLE-opdracht. Laten we deze hieronder bespreken.
Een nieuwe kolom toevoegen
Om een โโnieuwe kolom toe te voegen aan a PostgreSQL tabel, wordt de opdracht ALTER TABLE gebruikt met de volgende syntaxis:
ALTER TABLE table-name ADD new-column-name column-definition;
De tabelnaam is de naam van de tabel die moet worden gewijzigd. De nieuwe kolomnaam is de naam van de nieuwe kolom die moet worden toegevoegd. De kolomdefinitie is de data type van de nieuwe kolom. Zie de onderstaande tabel in het boek:
De tabel heeft twee kolommen: id en naam. We moeten een nieuwe kolom aan de tabel toevoegen en deze de naam 'auteur' geven. Voer hiervoor de volgende opdracht uit:
ALTER TABLE Book ADD author VARCHAR(50);
Na het uitvoeren van de bovenstaande opdracht ziet de Boekentabel er nu als volgt uit:
De nieuwe kolom is succesvol toegevoegd.
De naam van een tabelkolom wijzigen
We kunnen de opdracht ALTER TABLE gebruiken om de naam van een kolom te wijzigen. In dit geval wordt de opdracht gebruikt met de volgende syntaxis:
ALTER TABLE table-name RENAME COLUMN old-name TO new-name;
De tabelnaam is de naam van de tabel waarvan de kolom hernoemd moet worden. De oude naam is de huidige naam van de kolom en de nieuwe naam is de nieuwe naam van de kolom. Neem bijvoorbeeld de tabel Book die hieronder wordt weergegeven:
Boek:
We moeten de naam van de kolom 'author' wijzigen in 'book_author'. Hier is het commando:
ALTER TABLE Book RENAME COLUMN author TO book_author;
Nadat we de opdracht hebben uitgevoerd, kunnen we de structuur van de tabel bekijken:
De kolomnaam is succesvol gewijzigd.
Een standaardwaarde voor een kolom instellen
We kunnen een standaardwaarde instellen voor een kolom, zodat zelfs wanneer u geen waarde voor die kolom opgeeft tijdens INSERT-bewerkingen, de standaardwaarde wordt gebruikt. In dit geval kan de ALTER TABLE-opdracht worden gebruikt met de volgende syntaxis:
ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];
De tabelnaam is de naam van de tabel waarvan de kolom moet worden gewijzigd. De kolomnaam is de naam van de kolom waarvan de standaardwaarde moet worden ingesteld, en de waarde is de standaardwaarde voor die kolom. Neem de onderstaande tabel 'Boek' als voorbeeld:
We moeten een standaardwaarde instellen voor de kolom book_author. We kunnen de volgende opdracht uitvoeren:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Laten we nu een rij in de tabel invoegen:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners');
Merk op dat we alleen waarden hebben ingevoerd voor twee kolommen, id en name. Voor de kolom book_author is echter de standaardwaarde gebruikt:
Een controlebeperking toevoegen
Een controlebeperking helpt bij het valideren van de records die in een tabel worden ingevoegd. We kunnen dit doen door het ALTER TABLE-commando te combineren met de ADD CHECK-instructie. Syntaxis:
ALTER TABLE table-name ADD CHECK expression;
De tabelnaam is de naam van de tabel die moet worden gewijzigd, en de expressie is de beperking die moet worden opgelegd aan de tabelkolom. Laten we de kolom book_author van de tabel Book zo aanpassen dat deze alleen de waarden Nicholas en Samuel accepteert:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
Laten we nu proberen een andere waarde dan Nicholas of Samuel in te voegen in de kolom book_author van de tabel Book:
INSERT INTO Book VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
De instructie retourneert de volgende foutmelding:
De invoegbewerking is mislukt omdat de controlebeperking is overtreden.
De naam van een tabel wijzigen
Hier is de syntaxis voor het ALTER TABLE-commando voor het hernoemen van een tabel:
ALTER TABLE table-name RENAME TO new-table-name;
De tabelnaam is de huidige naam van de tabel, en de nieuwe tabelnaam is de nieuwe naam die aan de tabel moet worden toegekend. Laten we bijvoorbeeld de naam van de tabel 'Boeken' wijzigen in 'Boeken':
ALTER TABLE Book RENAME TO Books;
Gebruik pgAdmin
Tot nu toe werden de acties uitgevoerd vanuit de SQL-shell. Laten we nu eens kijken hoe dezelfde acties visueel kunnen worden uitgevoerd met pgAdmin.
Een nieuwe kolom toevoegen
Stap 1) Log in op uw pgAdmin-account.
Stap 2)
- Klik in de navigatiebalk aan de linkerkant op Databases.
- Klik op Demo.
Stap 3) Typ de query in de query-editor:
ALTER TABLE Book ADD author VARCHAR(50);
Stap 4) Klik op de knop Uitvoeren.
Stap 5) Om te controleren of de kolom is toegevoegd, doet u het volgende:
- Klik op Databases in de linkernavigatie.
- Vouw de demo uit.
- Vouw Schema's uit.
- Vouw Openbaar uit.
- Vouw Tabellen uit.
- Vouw boek uit.
- Vouw Kolommen uit.
De kolom had moeten worden toegevoegd, zoals hieronder weergegeven:
De naam van een tabelkolom wijzigen
Stap 1) Log in op uw pgAdmin-account.
Stap 2)
- Klik in de navigatiebalk aan de linkerkant op Databases.
- Klik op Demo.
Stap 3) Typ de query in de query-editor:
ALTER TABLE Book RENAME COLUMN author TO book_author;
Stap 4) Klik op de knop Uitvoeren.
Stap 5) Om te controleren of de wijziging is gelukt, vouwt u de kolommen van de boekentabel weer uit zoals voorheen:
De kolommen zouden nu als volgt moeten zijn:
De kolom is succesvol gewijzigd.
Een standaardwaarde voor een kolom instellen
Stap 1) Log in op uw pgAdmin-account.
Stap 2)
- Klik in de navigatiebalk aan de linkerkant op Databases.
- Klik op Demo.
Stap 3) Typ de query in de query-editor:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Stap 4) Klik op de knop Uitvoeren.
Stap 5) Om te testen, voert u de volgende opdracht uit in de query-editor:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners')
Stap 6) Nu kunnen we de tabel bevragen om te controleren of de standaardwaarde is ingevoegd in de kolom book_author:
Een controlebeperking toevoegen
Stap 1) Log in op uw pgAdmin-account.
Stap 2)
- Klik in de navigatiebalk aan de linkerkant op Databases.
- Klik op Demo.
Stap 3) Typ de query in de query-editor:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Stap 4) Klik op de knop Uitvoeren.
Stap 5) Om dit te testen, typt u de volgende query in de query-editor en klikt u op de knop Uitvoeren:
INSERT INTO Book VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
Het resultaat is het volgende:
De naam van een tabel wijzigen
Stap 1) Log in op uw pgAdmin-account.
Stap 2)
- Klik in de navigatiebalk aan de linkerkant op Databases.
- Klik op Demo.
Stap 3) Typ de query in de query-editor:
ALTER TABLE Book RENAME TO Books;
Stap 4) Klik op de knop Uitvoeren.
Stap 5) Om te controleren of de tabel is hernoemd, vouwt u Databases > Demo > Schema's > Openbaar > Tabellen uit:
De tabel is succesvol hernoemd.
Download de database die in deze zelfstudie wordt gebruikt

























