PostgreSQL Usuń zapytanie (Usuń wiersze z Wybierz)
Usuń zapytanie w PostgreSQL
Menu główne Usuń oświadczenie in PostgreSQL służy do usuwania jednego lub większej liczby rekordów z tabeli. Jeśli chcesz usunąć, wybierz wiersze z tabeli PostgreSQL pozwala połączyć instrukcję DELETE z klauzulą WHERE, w przeciwnym razie usunie wszystkie rekordy.
Postgres Usuń składnię zapytania
Polecenie DELETE można zdefiniować za pomocą 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
- z zapytaniem: klauzula WITH pozwala nam odwołać się do jednego lub większej liczby podzapytań, do których można się odwoływać według nazwy w zapytaniu DELETE.
- Nazwa tabeli: nazwa tabeli, z której mają zostać usunięte rekordy.
- alias: jest to substytut nazwy tabeli docelowej.
- using-list: wyrażenia tabelowe umożliwiające użycie kolumn z innych tabel w klauzuli WHERE.
- warunki): opcjonalny. Są to warunki, które muszą zostać spełnione, aby zapisy mogły zostać usunięte. Jeśli ta sekcja nie zostanie podana, wszystkie rekordy nazw tabel zostaną usunięte.
- nazwa-kursora: kursor, który będzie używany w warunku WHERE CURRENT OF. Ostatni pobrany wiersz 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.
Pamiętaj, że ponieważ instrukcja DELETE usuwa cały wiersz, nie musisz podawać nazw kolumn.
PostgreSQL Usuń zapytanie z jednym warunkiem
Instrukcja DELETE może być używana z pojedynczym warunkiem. Warunek 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 usunie rekordy, w których id wynosi 4. Potwierdźmy, czy usunięcie się powiodło:
Wiersz o identyfikatorze 4 został usunięty.
Usuń zapytanie z dwoma warunkami
Menu główne PostgreSQL Instrukcja DELETE może przyjmować dwa warunki. Te dwa warunki powinny być połączone za pomocą operatora AND. Użyjemy następującej tabeli:
Cena:
Rozważmy przykład podany poniżej:
DELETE FROM Price WHERE id = 3Y AND price = 300;
W powyższym poleceniu usuwamy wiersz, w którym id wynosi 3, a cena wynosi 300. Możemy teraz wykonać zapytanie do tabeli:
SELECT * FROM Price
Zwraca następujące informacje:
Rekord o identyfikatorze 3 i cenie 300 został usunięty.
PostgreSQL Usuń zapytanie, używając warunku istnienia
Za pomocą warunku EXISTS możesz uczynić DELETE bardziej złożonym. Czasami może zaistnieć potrzeba usunięcia rekordów w jednej tabeli na podstawie rekordów w innej tabeli.
Zobaczysz, że klauzula FROM nie pozwala na wylistowanie rekordów z więcej niż jednej tabeli podczas usuwania, klauzula EXISTS staje się bardzo użyteczna. 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 );
Powyższe polecenie usunie z tabeli Książka tam, gdzie w tabeli Cena istnieje rekord o identyfikatorze odpowiadającym identyfikatorowi tabeli Książka i cenie mniejszej niż 250.
Tabela Book wygląda teraz następująco:
Rekord o identyfikatorze 1 został usunięty.
Jak usunąć wiersz w PostgreSQL za pomocą pgAdmina
Poniżej przedstawiono kroki umożliwiające usunięcie wiersza w PostgreSQL używając pgAdmina:
Z jednym warunkiem
Aby osiągnąć to samo poprzez pgAdmin, wykonaj następujące czynności:
Krok 1) Zaloguj się na swoje konto pgAdmin
Otwórz pgAdmin i zaloguj się na swoje konto, używając swoich danych uwierzytelniających
Krok 2) Utwórz bazę danych demonstracyjnych
- Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
- Kliknij opcję Demo.
Krok 3) Wpisz zapytanie
Wpisz poniższe zapytanie w edytorze zapytań:
DELETE FROM Price WHERE id = 4;
Krok 4) Wykonaj zapytanie
Kliknij przycisk Wykonaj
Krok 5) Sprawdź, czy wiersz został usunięty
Sprawdźmy, czy usunięcie się powiodło:
Z dwoma warunkami
Aby osiągnąć to samo poprzez pgAdmin, wykonaj następujące czynności:
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
Aby osiągnąć to samo poprzez pgAdmin, wykonaj następujące czynności:
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:
Podsumowanie
- Instrukcja DELETE służy do usuwania jednego lub większej liczby rekordów z tabeli.
- Aby usunąć tylko wybrane wiersze z tabeli, możesz połączyć instrukcję DELETE z klauzulą WHERE.
- Użycie klauzuli DELETE bez klauzuli WHERE powoduje usunięcie wszystkich rekordów z tabeli.
- Parametr nazwa-tabeli umożliwia dodanie nazwy tabeli, z której mają zostać usunięte rekordy.
- Możemy użyć instrukcji DELETE z jednym warunkiem określonym za pomocą klauzuli WHERE.
- Instrukcja DELETE może być również używana z dwoma warunkami określonymi w klauzuli WHERE. Te dwa warunki powinny być połączone za pomocą operatora AND.
- Menu główne ISTNIEJE warunek może pomóc nam usunąć rekordy z tabeli na podstawie rekordów z innej tabeli.
Pobierz bazę danych używaną w tym samouczku