PostgreSQL ALTER Table: Oszlop HOZZÁADÁSA, Oszlop átnevezése/Táblázatpéldák
Az ALTER TABLE paranccsal módosítható az a PostgreSQL asztal. Ez a parancs a táblázat oszlopainak vagy a tábla nevének megváltoztatására szolgál.
Szintaxis
Itt van a szintaxis a PostgreSQL ALTER TABLE parancs:
ALTER TABLE table-name action;
A táblázatnév paraméter annak a táblának a neve, amelyet módosítani kell.
A műveleti paraméter az a művelet, amelyet végre kell hajtania, például egy oszlop nevének módosítása, egy oszlop adattípusának módosítása stb.
Leírás
Az ALTER TABLE parancs megváltoztatja egy meglévő tábla definícióját. A következő alűrlapokat használja:
- OSZLOP HOZZÁADÁSA: ez a CREATE TABLE parancshoz hasonló szintaxist használ új oszlop hozzáadásához a táblához.
- DROP OSZLOP: táblázatoszlop eldobásához. Az oszlopokra vonatkozó megszorítások és indexek szintén el lesznek vetve.
- ALAPÉRTELMEZÉS BEÁLLÍTÁSA/DROP: Egy oszlop alapértelmezett értékének eltávolítására használható. A változás azonban csak a későbbiekre vonatkozik INSERT utasítások.
- SET/DROP NOT NULL: Megváltoztatja, hogy egy oszlop engedélyezi-e a nullákat vagy sem.
- STATISZTIKA BEÁLLÍTÁSA: A statisztikagyűjtési cél beállításához az egyes oszlopokhoz az ANALYZE műveletekhez.
- TÁROLÁS BEÁLLÍTÁSA: Egy oszlop tárolási módjának beállításához. Ez határozza meg, hogy hol található az oszlop, akár soron belül, akár egy kiegészítő táblázatban.
- OIID NÉLKÜLI BEÁLLÍTÁS: A táblázat régi oszlopának eltávolítására használható.
- ÁTNEVEZÉS: a tábla vagy oszlopnév megváltoztatásához.
- ADD table_constraint: Új megszorítás táblához való hozzáadásához használja. Ugyanazt a szintaxist használja, mint TÁBLÁZAT LÉTREHOZÁSA parancs.
- CSEPP KORLÁTOZÁS: Táblázatkényszer eldobására használható.
- TULAJDONOS: egy tábla, sorozat, index vagy nézet tulajdonosának megváltoztatásához egy adott felhasználóra.
- CSOPORT: a jövőbeni klaszterműveletek végrehajtásához használandó táblázat megjelölésére.
Oszlop módosítása
Egy oszlop többféleképpen módosítható. Az ilyen módosításokat az ALTER TABLE paranccsal lehet elvégezni. Beszéljük meg ezeket:
Új oszlop hozzáadása
Új oszlop hozzáadásához a PostgreSQL táblázatban, az ALTER TABLE parancs a következő szintaxissal használatos:
ALTER TABLE table-name ADD new-column-name column-definition;
A táblanév a módosítandó tábla neve.
A new-column-name a hozzáadandó új oszlop neve.
Az oszlop-definíció a adattípus az új oszlopból.
Lásd az alábbi könyvtáblázatot:
A táblázatnak két oszlopa van, az azonosító és a név. Új oszlopot kell hozzáadnunk a táblázathoz, és meg kell adnunk a szerző nevét. Csak futtassa a következő parancsot:
ALTER TABLE Book ADD author VARCHAR(50);
A fenti parancs futtatása után a Book táblázat a következő:
Az új oszlop sikeresen hozzáadva.
Táblázatoszlop átnevezése
Az ALTER TABLE paranccsal módosíthatjuk egy oszlop nevét. Ebben az esetben a parancs a következő szintaxissal kerül felhasználásra:
ALTER TABLE table-name RENAME COLUMN old-name TO new-name;
A táblanév annak a táblának a neve, amelynek oszlopát át kell nevezni.
A régi név az oszlop régi/jelenlegi neve.
Az új név az oszlop új neve. Tekintsük az alábbi táblázatos könyvet:
Könyv:
Az oszlop szerzőjének nevére van szükségünk a book_author értékhez. Íme a parancs:
ALTER TABLE Book RENAME COLUMN author TO book_author;
A parancs futtatása után megtekinthetjük a táblázat szerkezetét:
Az oszlopnév módosítása sikeresen megtörtént.
Oszlop alapértelmezett értékének beállítása
Beállíthatunk egy alapértelmezett értéket egy oszlophoz úgy, hogy még ha nem is ad meg értéket az oszlophoz az INSERT műveletek során, a rendszer az alapértelmezett értéket fogja használni. Ebben az esetben az ALTER TABLE parancs a következő szintaxissal használható:
ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];
A táblanév annak a táblának a neve, amelynek oszlopát módosítani kell.
Az oszlopnév az a név, amelynek alapértelmezett értékét be kell állítani.
Az érték az oszlop alapértelmezett értéke.
Tekintsük az alábbi könyvtáblázatot:
Be kell állítanunk egy alapértelmezett értéket a book_author oszlophoz. A következő parancsot futtathatjuk:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Most pedig szúrjunk be egy sort a táblázatba:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners');
Vegye figyelembe, hogy csak két oszlophoz, az id és a névhez szúrtunk be értékeket. A book_author oszlophoz azonban az alapértelmezett értéket használták:
Ellenőrző kényszer hozzáadása
Az ellenőrzési megkötés segít a táblába beszúrt rekordok érvényesítésében. Ezt úgy tehetjük meg, hogy az ALTER TABLE parancsot az ADD CHECK utasítással kombináljuk. Szintaxis:
ALTER TABLE table-name ADD CHECK expression;
A táblanév a módosítandó tábla neve.
A kifejezés a táblázat oszlopára szabandó kényszer.
Módosítsuk a Könyv tábla book_author oszlopát úgy, hogy csak a Nicholas és Samuel értékeket fogadja el:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
Most próbáljunk meg Nicholastól vagy Samueltől eltérő értéket beilleszteni a Book_author oszlopába a Book táblában:
INSERT INTO Book VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
Az utasítás a következő hibát adja vissza:
A beszúrási művelet meghiúsult, mert megszegtük az ellenőrzési kényszert.
Táblázat átnevezése
Íme az ALTER TABLE parancs szintaxisa a tábla átnevezéséhez:
ALTER TABLE table-name RENAME TO new-table-name;
A táblanév a tábla aktuális neve.
Az új táblanév a táblához rendelendő új név.
Változtassuk meg például a Könyv táblázat nevét Könyvekre:
ALTER TABLE Book RENAME TO Books;
pgAdmin használatával
Most nézzük meg, hogyan hajthatók végre ezek a műveletek a pgAdmin segítségével.
Új oszlop hozzáadása
Ha ugyanezt a pgAdminon keresztül szeretné elérni, tegye a következőket:
Step 1) Jelentkezzen be pgAdmin fiókjába.
Step 2)
- A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
- Kattintson a Demo gombra.
Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:
ALTER TABLE Book ADD author VARCHAR(50);
Step 4) Kattintson a Végrehajtás gombra.
Step 5) Az oszlop hozzáadásának ellenőrzéséhez tegye a következőket:
- Kattintson a bal oldali navigációs panelen az Adatbázisok elemre.
- Bontsa ki a Demo elemet.
- Bontsa ki a Sémákat.
- Bontsa ki a Nyilvános elemet.
- Bontsa ki a táblázatokat.
- Könyv kibontása.
- Bontsa ki az Oszlopok elemet.
Az oszlopot az alábbiak szerint kellett volna hozzáadni:
Táblázatoszlop átnevezése
Ha ugyanezt a pgAdminon keresztül szeretné elérni, tegye a következőket:
Step 1) Jelentkezzen be pgAdmin fiókjába.
Step 2)
- A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
- Kattintson a Demo gombra.
Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:
ALTER TABLE Book RENAME COLUMN author TO book_author;
Step 4) Kattintson a Végrehajtás gombra.
Step 5) A módosítás sikerességének ellenőrzéséhez tegye a következőket:
- Kattintson a bal oldali navigációs panelen az Adatbázisok elemre.
- Bontsa ki a Demo elemet.
- Bontsa ki a Sémákat.
- Bontsa ki a Nyilvános elemet.
- Bontsa ki a táblázatokat.
- Könyv kibontása.
- Bontsa ki az Oszlopok elemet.
Az oszlopoknak most a következőnek kell lenniük:
Az oszlop sikeresen megváltozott.
Oszlop alapértelmezett értékének beállítása
Ha ugyanezt a pgAdminon keresztül szeretné elérni, tegye a következőket:
Step 1) Jelentkezzen be pgAdmin fiókjába.
Step 2)
- A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
- Kattintson a Demo gombra.
Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Step 4) Kattintson a Végrehajtás gombra.
Step 5) A teszteléshez futtassa a következő parancsot a lekérdezésszerkesztőben:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners')
Step 6) Most lekérdezhetjük a táblázatot, hogy ellenőrizzük, hogy az alapértelmezett érték bekerült-e a book_author oszlopba:
Ellenőrző kényszer hozzáadása
Ha ugyanezt a pgAdminon keresztül szeretné elérni, tegye a következőket:
Step 1) Jelentkezzen be pgAdmin fiókjába.
Step 2)
- A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
- Kattintson a Demo gombra.
Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Step 4) Kattintson a Végrehajtás gombra.
Step 5) Ennek teszteléséhez tegye a következőket:
- Írja be a következő lekérdezést a lekérdezésszerkesztőbe:
INSERT INTO Book VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
- Kattintson a Végrehajtás gombra.
A következőt adja vissza:
Táblázat átnevezése
Ha ugyanezt a pgAdminon keresztül szeretné elérni, tegye a következőket:
Step 1) Jelentkezzen be pgAdmin fiókjába.
Step 2)
- A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
- Kattintson a Demo gombra.
Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:
ALTER TABLE Book RENAME TO Books;
Step 4) Kattintson a Végrehajtás gombra.
Step 5) A táblázat átnevezésének ellenőrzéséhez tegye a következőket:
- Kattintson a bal oldali navigációs panelen az Adatbázisok elemre.
- Bontsa ki a Demo elemet.
- Bontsa ki a Sémákat.
- Bontsa ki a Nyilvános elemet.
- Bontsa ki a táblázatokat.
A táblázat átnevezése sikeresen megtörtént.
Összegzésként
- Az ALTER TABLE utasítás a tábla szerkezetének módosítására szolgál.
- Az ALTER TABLE parancs különféle formákat ölt az elvégzendő feladattól függően.
- A szerkezet lehet a táblázat oszlopai vagy maga a táblázat.
- Ezzel az utasítással megváltoztathatjuk egy tábla nevét.
- Az ALTER TABLE paranccsal beállítható egy oszlop alapértelmezett értéke.
- Az utasítás használható a táblázat oszlopába beírt értékek érvényesítésére.
Töltse le az oktatóanyagban használt adatbázist