PostgreSQL ODSTRANIT řádky z výběru
⚡ Chytré shrnutí
PostgreSQL Příkaz DELETE odstraní jeden nebo více řádků z tabulky a jeho spárování s klauzulí WHERE se zaměří pouze na záznamy, které splňují podmínku, zatímco vynechání klauzule WHERE vymaže všechny řádky v tabulce.

Smazat dotaz v PostgreSQL
Jedno Příkaz DELETE in PostgreSQL se používá k odstranění jednoho nebo více záznamů z tabulky. Chcete-li z tabulky odstranit pouze vybrané řádky, PostgreSQL umožňuje kombinovat příkaz DELETE s klauzulí WHERE; jinak smaže všechny záznamy v tabulce.
PostgreSQL Syntaxe dotazu pro odstranění
Příkaz DELETE lze definovat pomocí následující syntaxe:
[ 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] [, ...] ]
parametry
K dispozici jsou následující parametry:
- s dotazemKlauzule WITH umožňuje odkazovat na jeden nebo více poddotazů podle názvu uvnitř dotazu DELETE.
- název-tabulky: název tabulky, ze které mají být záznamy vymazány.
- přezdívka: náhrada za název cílové tabulky.
- seznam použití: tabulkové výrazy, které umožňují použití sloupců z jiných tabulek v klauzuli WHERE.
- podmínky): volitelné. Toto jsou podmínky, které musí být splněny pro smazání záznamů. Pokud tato část není uvedena, budou smazány všechny záznamy s názvy tabulek.
- jméno kurzoru: kurzor, který se má použít v podmínce WHERE CURRENT OF. Poslední řádek načtený tímto kurzorem bude smazán.
- výstupní-výrazvýraz, který má být zpracován a vrácen příkazem DELETE po smazání každého řádku.
- název-výstupu: název, který se má použít pro vrácený sloupec.
Všimněte si, že protože příkaz DELETE smaže celý řádek, není nutné zadávat názvy sloupců.
PostgreSQL Smazat dotaz s jednou podmínkou
Příkaz DELETE lze použít s jedinou podmínkou, která se nastavuje pomocí klauzule WHERE. Uvažujme tabulku Price s následujícími daty:
Cena:
Smažeme záznam s ID 4:
DELETE FROM Price WHERE id = 4;
Výše uvedený příkaz smaže záznamy, jejichž ID je 4. Potvrdíme, zda bylo smazání úspěšné:
Řádek s ID 4 byl smazán.
Odstranit dotaz se dvěma podmínkami
Jedno PostgreSQL Příkaz DELETE může také obsahovat dvě podmínky. Tyto dvě podmínky by měly být spojeny operátorem AND. Použijeme následující tabulku:
Cena:
Zvažte příklad uvedený níže:
DELETE FROM Price WHERE id = 3 AND price = 300;
Ve výše uvedeném příkazu mažeme řádek, ve kterém je ID 3 a cena 300. Nyní můžeme dotazovat tabulku:
SELECT * FROM Price;
To vrátí následující:
Záznam s ID 3 a cenou 300 byl smazán.
PostgreSQL Smazat dotaz pomocí podmínky EXISTS
S hodinkami EXISTUJE podmínku, můžete příkaz DELETE zkomplikovat. Někdy může být potřeba odstranit záznamy v jedné tabulce na základě záznamů v jiné tabulce.
Protože klauzule FROM neumožňuje při mazání vypsat záznamy z více než jedné tabulky, klauzule EXISTS se stává velmi užitečnou. Máme následující dvě tabulky:
Rezervovat:
Cena:
Poté můžeme spustit následující dotaz:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Příkaz odstraní řádky z tabulky Book, které mají odpovídající ID v tabulce Price s cenou nižší než 250.
Tabulka knih je nyní následující:
Záznam s ID 1 byl smazán.
Jak smazat řádek v PostgreSQL pomocí pgAdmin
Stejné dotazy na odstranění lze také spustit vizuálně prostřednictvím rozhraní pgAdmin podle následujících kroků:
S jednou podmínkou
Krok 1) Přihlaste se ke svému účtu pgAdmin. Otevřete pgAdmin a přihlaste se ke svému účtu pomocí svých přihlašovacích údajů.
Krok 2) Vytvořte demo databázi.
- Na navigační liště vlevo klikněte na Databáze.
- Klepněte na tlačítko Demo.
Krok 3) Do editoru dotazů zadejte níže uvedený dotaz:
DELETE FROM Price WHERE id = 4;
Krok 4) Klepněte na tlačítko Spustit.
Krok 5) Zkontrolujme, zda byl řádek smazán:
Se dvěma podmínkami
Krok 1) Přihlaste se ke svému účtu pgAdmin.
Krok 2)
- Na navigační liště vlevo klikněte na Databáze.
- Klepněte na tlačítko Demo.
Krok 3) Zadejte dotaz v editoru dotazů:
DELETE FROM Price WHERE id = 3 AND price = 300;
Krok 4) Klepněte na tlačítko Spustit.
Krok 5) Zkontrolujeme, zda bylo smazání úspěšné:
Pomocí podmínky EXISTS
Krok 1) Přihlaste se ke svému účtu pgAdmin.
Krok 2)
- Na navigační liště vlevo klikněte na Databáze.
- Klepněte na tlačítko Demo.
Krok 3) Zadejte dotaz v editoru dotazů:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Krok 4) Klepněte na tlačítko Spustit.
Krok 5) Zkontrolujeme, zda bylo smazání úspěšné:
Stáhněte si databázi použitou v tomto kurzu
















