PostgreSQL Lekérdezés törlése (Sorok törlése a kijelölésből)

Lekérdezés törlése itt PostgreSQL

A Nyilatkozat törlése in PostgreSQL egy vagy több rekord törlésére szolgál egy táblából. Ha törölni szeretne, válasszon sorokat a táblázatból PostgreSQL lehetővé teszi a DELETE utasítás és a WHERE záradék kombinálását, különben az összes rekordot törölni fogja.

Postgres Delete Query Syntax

A DELETE utasítás az alábbi szintaxissal definiálható:

[ WITH [ RECURSIVE ] with-query [, ...] ]
DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ]
    [ USING using-list ]
    [ WHERE condition(s) | WHERE CURRENT OF cursor-name]
    [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]

paraméterek

  • lekérdezéssel: a WITH záradék lehetővé teszi, hogy a DELETE lekérdezésben név szerint hivatkozzunk egy vagy több allekérdezésre.
  • táblanév: annak a táblának a neve, amelyből a rekordokat törölni kell.
  • álnév: ez helyettesíti a céltábla nevét.
  • using-list: táblakifejezések, amelyek lehetővé teszik más táblák oszlopainak használatát a WHERE záradékban.
  • körülmények): választható. Ezek azok a feltételek, amelyeknek teljesülniük kell a rekordok törléséhez. Ha ez a szakasz nincs megadva, az összes táblanév rekord törlődik.
  • kurzornév: a WHERE CURRENT OF feltételben használandó kurzor. A kurzor által utoljára letöltött sor törlődik.
  • kimenet-kifejezés: a DELETE utasítás által feldolgozandó és visszaadandó kifejezés minden sor törlése után.
  • kimeneti név: a visszaadott oszlophoz használandó név.

Vegye figyelembe, hogy mivel a DELETE utasítás a teljes sort törli, nem kell megadnia az oszlopneveket.

PostgreSQL Lekérdezés törlése egy feltétellel

A DELETE utasítás egyetlen feltétellel használható. A feltétel a WHERE záradékkal van beállítva. Tekintsük az ártáblázatot a következő adatokkal:

Ár

PostgreSQL Lekérdezés törlése egy feltétellel

Töröljük a 4-es azonosítójú rekordot:

DELETE FROM Price
WHERE id = 4;

A fenti parancs törli azokat a rekordokat, amelyekben az azonosító 4. Ellenőrizzük, hogy a törlés sikeres volt-e:

PostgreSQL Lekérdezés törlése egy feltétellel

A 4-es azonosítójú sort törölték.

Törölje a két feltétellel rendelkező lekérdezést

A PostgreSQL A DELETE utasításnak két feltétele lehet. A két feltételt az ÉS operátor használatával kell összekapcsolni. A következő táblázatot fogjuk használni:

Ár:

PostgreSQL Törölje a két feltétellel rendelkező lekérdezést

Tekintsük az alábbi példát:

DELETE FROM Price
WHERE id = 3Y
AND price = 300;

A fenti parancsban töröljük azt a sort, amelyben az azonosító 3, az ár pedig 300. Most lekérdezhetjük a táblát:

SELECT * FROM Price

Ez a következőket adja vissza:

PostgreSQL Törölje a két feltétellel rendelkező lekérdezést

A 3-as azonosítójú és 300-as árú rekordot törölték.

PostgreSQL Törölje a lekérdezést a Létezik feltétel használatával

A EXISTS feltétellel összetettebbé teheti a TÖRLÉST. Néha előfordulhat, hogy egy másik táblában lévő rekordok törlésére van szükség.

Látni fogja, hogy a FROM záradék nem teszi lehetővé, hogy egynél több tábla rekordját listázza ki a törlés végrehajtásakor, az EXISTS záradék nagyon hasznos lesz. A következő két táblázatunk van:

Könyv:

PostgreSQL Törölje a lekérdezést a Létezik feltétel használatával

Ár:

PostgreSQL Törölje a lekérdezést a Létezik feltétel használatával

Ezután a következő lekérdezést futtathatjuk:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

A fenti parancs törli a Könyv táblából, ahol van olyan rekord az Ár táblában, amelynek azonosítója megegyezik a Könyv tábla azonosítójával, és az ár kisebb, mint 250.

A könyvtáblázat most a következő:

PostgreSQL Törölje a lekérdezést a Létezik feltétel használatával

Az 1-es azonosítójú rekord törölve lett.

Hogyan lehet törölni a sort PostgreSQL pgAdmin használatával

Az alábbiakban bemutatjuk a sor törlésének lépéseit PostgreSQL pgAdmin használatával:

Egy feltétellel

Ha ugyanezt a pgAdminon keresztül szeretné elérni, tegye a következőket:

1. lépés) Jelentkezzen be pgAdmin fiókjába

Nyissa meg a pgAdmin alkalmazást, és jelentkezzen be fiókjába a hitelesítő adataival

2. lépés) Hozzon létre egy bemutató adatbázist

  1. A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

Sor törlése PostgreSQL

3. lépés) Írja be a lekérdezést

Írja be az alábbi lekérdezést a lekérdezésszerkesztőbe:

DELETE FROM Price
WHERE id = 4;

4. lépés) Végezze el a lekérdezést

Kattintson a Végrehajtás gombra

Sor törlése PostgreSQL

5. lépés) Ellenőrizze, hogy a sor törölve van-e

Ellenőrizzük, hogy a törlés sikeres volt-e:

Sor törlése PostgreSQL

Két feltétellel

Ha ugyanezt a pgAdminon keresztül szeretné elérni, tegye a következőket:

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2)

  1. A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

Sor törlése PostgreSQL

Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:

DELETE FROM Price
WHERE id = 3
AND price = 300;

Step 4) Kattintson a Végrehajtás gombra.

Sor törlése PostgreSQL

Step 5) Ellenőrizzük, hogy a törlés sikeres volt-e:

Sor törlése PostgreSQL

EXISTS feltétel használata

Ha ugyanezt a pgAdminon keresztül szeretné elérni, tegye a következőket:

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2)

  1. A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

Törölje a sort a EXISTS feltétellel

Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

Step 4) Kattintson a Végrehajtás gombra.

Törölje a sort a EXISTS feltétellel

Step 5) Ellenőrizzük, hogy a törlés sikeres volt-e:

Törölje a sort a EXISTS feltétellel

Összegzésként

  • A DELETE utasítás egy vagy több rekord törlésére szolgál egy táblából.
  • Ha csak kiválasztott sorokat szeretne törölni egy táblából, akkor kombinálhatja a DELETE utasítást a WHERE záradékkal.
  • Ha a DELETE záradékot a WHERE záradék nélkül használja, akkor az összes rekordot törli a táblából.
  • A table-name paraméter lehetővé teszi annak a táblának a nevét, amelyből a rekordokat törölni kell.
  • A DELETE utasítást egy feltétellel használhatjuk, amelyet a WHERE záradékkal adunk meg.
  • A DELETE utasítás két, a WHERE záradékban meghatározott feltétellel is használható. A két feltételt az ÉS operátor használatával kell összekapcsolni.
  • A LÉTEZIK feltétel segítségével törölhetünk rekordokat egy táblából egy másik tábla rekordjai alapján.

Töltse le az oktatóanyagban használt adatbázist