PostgreSQL ALTER Tabel: Kolom TOEVOEGEN, Kolom-/tabelvoorbeelden hernoemen
Het ALTER TABLE commando wordt gebruikt om de structuur van een bestand te wijzigen PostgreSQL tafel. Het is de opdracht die wordt gebruikt om de tabelkolommen of de naam van de tabel te wijzigen.
Syntaxis
Hier is de syntaxis voor de PostgreSQL ALTER TABLE-opdracht:
ALTER TABLE table-name action;
De tabelnaamparameter is de naam van de tabel die u moet wijzigen.
De actieparameter is de actie die u moet uitvoeren, zoals het wijzigen van de naam van een kolom, het wijzigen van het gegevenstype van een kolom, enz.
Beschrijving
De opdracht ALTER TABLE wijzigt de definitie van een bestaande tabel. Het accepteert de volgende subformulieren:
- KOLOM TOEVOEGEN: dit gebruikt een soortgelijke syntaxis als de opdracht CREATE TABLE om een nieuwe kolom aan een tabel toe te voegen.
- DROP KOLOM: voor het verwijderen van een tabelkolom. De beperkingen en indexen die aan de kolommen zijn opgelegd, worden ook verwijderd.
- STANDAARD INSTELLEN/LATEN: Gebruiken voor het verwijderen van de standaardwaarde voor een kolom. De wijziging is echter alleen van toepassing op de volgende INSERT-verklaringen.
- SET/DROP NIET NULL: Wijzigt of een kolom null-waarden toestaat of niet.
- STATISTIEKEN INSTELLEN: Voor het instellen van het doel voor het verzamelen van statistieken voor elke kolom voor ANALYZE-bewerkingen.
- OPSLAG INSTELLEN: Voor het instellen van de opslagmodus voor een kolom. Dit bepaalt waar de kolom wordt vastgehouden, hetzij inline, hetzij in een aanvullende tabel.
- SET ZONDER OIDS: Gebruiken om de oude kolom van de tabel te verwijderen.
- RENAME: voor het wijzigen van de tabelnaam of een kolomnaam.
- VOEG tabelbeperking toe: Gebruiken om een nieuwe beperking aan een tabel toe te voegen. Het gebruikt dezelfde syntaxis als MAAK EEN TABEL opdracht.
- DROP BEPERKING: Gebruiken voor het verwijderen van een tabelbeperking.
- EIGENAAR: voor het wijzigen van de eigenaar van een tabel, reeks, index of weergave naar een bepaalde gebruiker.
- CLUSTER: voor het markeren van een tabel die gebruikt moet worden voor het uitvoeren van toekomstige clusterbewerkingen.
Een kolom wijzigen
Een kolom kan op een aantal manieren worden gewijzigd. Dergelijke wijzigingen kunnen worden aangebracht met behulp van de opdracht ALTER TABLE. Laten we deze 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 boekentabel:
De tabel heeft twee kolommen, id en name. We moeten een nieuwe kolom aan de tabel toevoegen en deze de naam author geven. Voer gewoon 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 moet worden hernoemd.
De oude naam is de oude/huidige naam van de kolom.
De nieuwe naam is de nieuwe naam van de kolom. Beschouw het onderstaande tabelboek:
Boek:
We hebben de naam van de kolomauteur nodig voor 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 voor een kolom instellen, zodat zelfs wanneer u geen waarde voor die kolom opgeeft tijdens INSERT-bewerkingen, de standaardwaarde wordt gebruikt. In dit geval kan de opdracht ALTER TABLE 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 waarvoor de standaardwaarde moet worden ingesteld.
De waarde is de standaardwaarde voor de kolom.
Beschouw de onderstaande boekentabel:
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');
Houd er rekening mee dat we waarden voor slechts twee kolommen hebben ingevoegd: id en naam. De standaardwaarde is echter gebruikt voor de kolom book_author:
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.
De expressie is de beperking die aan de tabelkolom moet worden opgelegd.
Laten we de kolom book_author van de tabel Boek aanpassen, zodat 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.
De nieuwe-tabelnaam is de nieuwe naam die aan de tabel moet worden toegewezen.
Laten we bijvoorbeeld de naam van de boekentabel wijzigen in Boeken:
ALTER TABLE Book RENAME TO Books;
Gebruik pgAdmin
Laten we nu eens kijken hoe deze acties kunnen worden uitgevoerd met pgAdmin.
Een nieuwe kolom toevoegen
Om hetzelfde te bereiken via pgAdmin, doet u het volgende:
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
Om hetzelfde te bereiken via pgAdmin, doet u het volgende:
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 succesvol is, 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 kolommen zouden nu als volgt moeten zijn:
De kolom is succesvol gewijzigd.
Een standaardwaarde voor een kolom instellen
Om hetzelfde te bereiken via pgAdmin, doet u het volgende:
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 dit 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
Om hetzelfde te bereiken via pgAdmin, doet u het volgende:
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, doet u het volgende:
- Typ de volgende query in de query-editor:
INSERT INTO Book VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
- Klik op de knop Uitvoeren.
Het resultaat is het volgende:
De naam van een tabel wijzigen
Om hetzelfde te bereiken via pgAdmin, doet u het volgende:
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 een nieuwe naam heeft gekregen, doet u het volgende:
- Klik op Databases in de linkernavigatie.
- Vouw de demo uit.
- Vouw Schema's uit.
- Vouw Openbaar uit.
- Vouw Tabellen uit.
De tabel is succesvol hernoemd.
Samenvatting
- De instructie ALTER TABLE wordt gebruikt om de structuur van de tabel te wijzigen.
- De opdracht ALTER TABLE neemt verschillende vormen aan, afhankelijk van de taak die u moet uitvoeren.
- De structuur kan bestaan uit de tabelkolommen of de tabel zelf.
- We kunnen deze verklaring gebruiken om de naam van een tabel te wijzigen.
- Het ALTER TABLE-commando kan worden gebruikt om de standaardwaarde van een kolom in te stellen.
- De instructie kan worden gebruikt om de waarden te valideren die in een tabelkolom zijn ingevoerd.
Download de database die in deze zelfstudie wordt gebruikt