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

PostgreSQL Usuń zapytanie z jednym warunkiem

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:

PostgreSQL Usuń zapytanie z jednym warunkiem

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:

PostgreSQL Usuń zapytanie z dwoma warunkami

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:

PostgreSQL Usuń zapytanie z dwoma warunkami

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:

PostgreSQL Usuń zapytanie, używając warunku istnienia

Cena:

PostgreSQL Usuń zapytanie, używając warunku istnienia

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:

PostgreSQL Usuń zapytanie, używając warunku istnienia

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

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij opcję Demo.

Usuń wiersz w PostgreSQL

Krok 3) Wpisz zapytanie

Wpisz poniższe zapytanie w edytorze zapytań:

DELETE FROM Price
WHERE id = 4;

Krok 4) Wykonaj zapytanie

Kliknij przycisk Wykonaj

Usuń wiersz w PostgreSQL

Krok 5) Sprawdź, czy wiersz został usunięty

Sprawdźmy, czy usunięcie się powiodło:

Usuń wiersz w PostgreSQL

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)

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij opcję Demo.

Usuń wiersz w PostgreSQL

Krok 3) Wpisz zapytanie w edytorze zapytań:

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

Krok 4) Kliknij przycisk Wykonaj.

Usuń wiersz w PostgreSQL

Krok 5) Sprawdźmy, czy usunięcie się powiodło:

Usuń wiersz w PostgreSQL

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)

  1. Na pasku nawigacyjnym po lewej stronie kliknij opcję Bazy danych.
  2. Kliknij opcję Demo.

Usuń wiersz za pomocą warunku ISTNIEJE

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.

Usuń wiersz za pomocą warunku ISTNIEJE

Krok 5) Sprawdźmy, czy usunięcie się powiodło:

Usuń wiersz za pomocą warunku ISTNIEJE

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