PostgreSQL USUŃ wiersze z zaznaczenia
⚡ Inteligentne podsumowanie
PostgreSQL Polecenie DELETE usuwa jeden lub więcej wierszy z tabeli i w połączeniu z klauzulą WHERE usuwa tylko rekordy spełniające warunek, natomiast pominięcie klauzuli WHERE czyści wszystkie wiersze w tabeli.
Usuń zapytanie w PostgreSQL
Instrukcja DELETE in PostgreSQL Służy do usuwania jednego lub więcej rekordów z tabeli. Aby usunąć tylko wybrane wiersze z tabeli, PostgreSQL umożliwia połączenie polecenia DELETE z klauzulą WHERE; w przeciwnym wypadku usuwa wszystkie rekordy w tabeli.
PostgreSQL Usuń składnię zapytania
Polecenie DELETE można zdefiniować, korzystając z poniższej składni:
[ 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
Dostępne są następujące parametry:
- z zapytaniem:Klauzula WITH umożliwia odwołanie się do jednego lub większej liczby podzapytań według nazwy wewnątrz zapytania DELETE.
- Nazwa tabeli: nazwa tabeli, z której mają zostać usunięte rekordy.
- alias:zamiennik nazwy tabeli docelowej.
- używając listy: wyrażenia tabelowe umożliwiające używanie kolumn z innych tabel w klauzuli WHERE.
- warunki): Opcjonalnie. Oto warunki, które muszą zostać spełnione, aby rekordy zostały usunięte. Jeśli ta sekcja nie zostanie podana, wszystkie rekordy o nazwach tabel zostaną usunięte.
- nazwa-kursora: kursor, który ma zostać użyty w warunku WHERE CURRENT OF. Ostatni wiersz pobrany przez ten kursor zostanie usunięty.
- wyrażenie wyjściowe: wyrażenie, które ma zostać przetworzone i zwrócone przez instrukcję DELETE po usunięciu każdego wiersza.
- nazwa-wyjścia: nazwa, która ma być używana dla zwracanej kolumny.
Należy pamiętać, że ponieważ polecenie DELETE usuwa cały wiersz, nie trzeba określać nazw kolumn.
PostgreSQL Usuń zapytanie z jednym warunkiem
Polecenie DELETE można użyć z pojedynczym warunkiem, który jest ustawiany za pomocą klauzuli WHERE. Rozważmy tabelę Price z następującymi danymi:
Cena:
Usuńmy rekord o identyfikatorze 4:
DELETE FROM Price WHERE id = 4;
Powyższe polecenie usuwa rekordy, których identyfikator wynosi 4. Sprawdźmy, czy usunięcie zakończyło się powodzeniem:
Wiersz o identyfikatorze 4 został usunięty.
Usuń zapytanie z dwoma warunkami
PostgreSQL Instrukcja DELETE może również przyjmować dwa warunki. Należy je połączyć operatorem AND. Użyjemy poniższej tabeli:
Cena:
Rozważmy przykład podany poniżej:
DELETE FROM Price WHERE id = 3 AND price = 300;
W powyższym poleceniu usuwamy wiersz, w którym identyfikator wynosi 3, a cena 300. Teraz możemy wykonać zapytanie do tabeli:
SELECT * FROM Price;
To zwraca następujące informacje:
Rekord o identyfikatorze 3 i cenie 300 został usunięty.
PostgreSQL Usuń zapytanie przy użyciu warunku EXISTS
Z ISTNIEJE W tym przypadku możesz bardziej skomplikować operację DELETE. Czasami może zaistnieć potrzeba usunięcia rekordów z jednej tabeli na podstawie rekordów z innej tabeli.
Ponieważ klauzula FROM nie pozwala na wyświetlenie rekordów z więcej niż jednej tabeli podczas usuwania, klauzula EXISTS staje się bardzo przydatna. Mamy następujące dwie tabele:
Książka:
Cena:
Następnie możemy uruchomić następujące zapytanie:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Polecenie usuwa wiersze z tabeli Book, które mają identyfikator pasujący do tabeli Price z ceną poniżej 250.
Tabela Book wygląda teraz następująco:
Rekord o identyfikatorze 1 został usunięty.
Jak usunąć wiersz w PostgreSQL za pomocą pgAdmina
Te same zapytania dotyczące usuwania można również uruchomić wizualnie za pomocą interfejsu pgAdmin, wykonując poniższe kroki:
Z jednym warunkiem
Krok 1) Zaloguj się na swoje konto pgAdmin. Otwórz pgAdmin i zaloguj się na swoje konto, używając swoich danych logowania.
Krok 2) Utwórz bazę danych demonstracyjną.
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz poniższe zapytanie w edytorze zapytań:
DELETE FROM Price WHERE id = 4;
Krok 4) Kliknij przycisk Wykonaj.
Krok 5) Sprawdźmy, czy wiersz został usunięty:
Z dwoma warunkami
Krok 1) Zaloguj się na swoje konto pgAdmin.
Krok 2)
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie w edytorze zapytań:
DELETE FROM Price WHERE id = 3 AND price = 300;
Krok 4) Kliknij przycisk Wykonaj.
Krok 5) Sprawdźmy, czy usunięcie się powiodło:
Korzystanie z warunku ISTNIEJE
Krok 1) Zaloguj się na swoje konto pgAdmin.
Krok 2)
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie w edytorze zapytań:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Krok 4) Kliknij przycisk Wykonaj.
Krok 5) Sprawdźmy, czy usunięcie się powiodło:
Pobierz bazę danych używaną w tym samouczku

















