PostgreSQL Smazat dotaz (smazat řádky z výběru)
Smazat dotaz v PostgreSQL
Jedno Smazat výpis in PostgreSQL se používá k odstranění jednoho nebo více záznamů z tabulky. Pokud chcete odstranit vybrané řádky z tabulky PostgreSQL umožňuje zkombinovat příkaz DELETE s klauzulí WHERE, jinak smaže všechny záznamy.
Syntaxe dotazu Postgres Delete
Příkaz DELETE lze definovat pomocí níže uvedené 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
- s dotazem: klauzule WITH nám umožňuje odkazovat na jeden nebo více poddotazů, na které se má odkazovat jménem v dotazu DELETE.
- název-tabulky: název tabulky, ze které mají být záznamy vymazány.
- přezdívka: toto je náhrada za název cílové tabulky.
- using-list: tabulkové výrazy umožňující použití sloupců z jiných tabulek v klauzuli WHERE.
- podmínky): volitelný. Jsou to podmínky, které musí být splněny, aby byly záznamy vymazány. Pokud tato sekce není uvedena, budou všechny záznamy názvů tabulky odstraněny.
- jméno kurzoru: kurzor, který se má použít ve stavu WHERE CURRENT OF. Poslední řádek načtený tímto kurzorem bude smazán.
- výstupní-výraz: vý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 odstraní celý řádek, nemusíte zadávat názvy sloupců.
PostgreSQL Smazat dotaz s jednou podmínkou
Příkaz DELETE lze použít s jedinou podmínkou. Podmínka se nastavuje pomocí klauzule WHERE. Zvažte cenovou tabulku s následujícími údaji:
Cena
Smažeme záznam s ID 4:
DELETE FROM Price WHERE id = 4;
Výše uvedený příkaz smaže záznamy, ve kterých je id 4. Potvrďte, 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 mít dvě podmínky. Tyto dvě podmínky by měly být spojeny pomocí operátoru AND. Použijeme následující tabulku:
Cena:
Zvažte příklad uvedený níže:
DELETE FROM Price WHERE id = 3Y AND price = 300;
Ve výše uvedeném příkazu odstraňujeme řádek, ve kterém je id 3 a cena je 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 Odstranit dotaz pomocí existující podmínky
S podmínkou EXISTS můžete provést DELETE složitější. Někdy může být potřeba odstranit záznamy v jedné tabulce na základě záznamů v jiné tabulce.
Uvidíte, že klauzule FROM vám při provádění mazání neumožňuje 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 );
Výše uvedený příkaz odstraní z tabulky Kniha, kde existuje záznam v tabulce Cena s ID odpovídajícím id tabulky Kniha a 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
Níže jsou uvedeny kroky k odstranění řádku PostgreSQL pomocí pgAdmin:
S jednou podmínkou
Chcete-li provést totéž prostřednictvím pgAdmin, postupujte takto:
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) Zadejte dotaz
Do editoru dotazů zadejte níže uvedený dotaz:
DELETE FROM Price WHERE id = 4;
Krok 4) Proveďte dotaz
Klepněte na tlačítko Spustit
Krok 5) Zkontrolujte, zda je řádek smazán
Zkontrolujeme, zda bylo smazání úspěšné:
Se dvěma podmínkami
Chcete-li provést totéž prostřednictvím pgAdmin, postupujte takto:
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
Chcete-li provést totéž prostřednictvím pgAdmin, postupujte takto:
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é:
Shrnutí
- Příkaz DELETE se používá k odstranění jednoho nebo více záznamů z tabulky.
- Chcete-li z tabulky odstranit pouze vybrané řádky, můžete zkombinovat příkaz DELETE s klauzulí WHERE.
- Pokud je klauzule DELETE použita bez klauzule WHERE, odstraní všechny záznamy z tabulky.
- Parametr název-tabulky umožňuje přidat název tabulky, ze které mají být záznamy vymazány.
- Příkaz DELETE můžeme použít s jednou podmínkou, specifikovanou pomocí klauzule WHERE.
- Příkaz DELETE lze také použít se dvěma podmínkami uvedenými v klauzuli WHERE. Tyto dvě podmínky by měly být spojeny pomocí operátoru AND.
- Jedno EXISTUJE podmínka nám může pomoci odstranit záznamy z tabulky na základě záznamů jiné tabulky.
Stáhněte si databázi použitou v tomto kurzu