PostgreSQL Brisanje upita (brisanje redaka iz odabira)

Izbriši upit u PostgreSQL

The Izbriši izjavu in PostgreSQL koristi se za brisanje jednog ili više zapisa iz tablice. Ako želite izbrisati odabrane retke iz tablice PostgreSQL omogućuje vam kombiniranje naredbe DELETE s klauzulom WHERE, inače će izbrisati sve zapise.

Postgres Brisanje sintakse upita

Naredba DELETE može se definirati sljedećom sintaksom:

[ 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] [, ...] ]

Parametri

  • s upitom: klauzula WITH nam omogućuje da referenciramo jedan ili više podupita koji će biti navedeni po imenu u DELETE upitu.
  • naziv tablice: naziv tablice iz koje se brišu zapisi.
  • pseudonim: ovo je zamjena za naziv ciljne tablice.
  • using-list: izrazi tablice koji omogućuju korištenje stupaca iz drugih tablica u klauzuli WHERE.
  • Uvjeti): neobavezan. To su uvjeti koji moraju biti zadovoljeni da bi zapisi bili izbrisani. Ako ovaj odjeljak nije naveden, svi zapisi naziva tablice bit će izbrisani.
  • naziv-kurzora: pokazivač koji će se koristiti u uvjetima WHERE CURRENT OF. Posljednji dohvaćeni red ovim kursorom bit će izbrisan.
  • izlazni izraz: izraz koji treba obraditi i vratiti naredbom DELETE nakon brisanja svakog retka.
  • izlazni naziv: naziv koji će se koristiti za vraćeni stupac.

Imajte na umu da budući da naredba DELETE briše cijeli redak, ne morate navesti nazive stupaca.

PostgreSQL Brisanje upita s jednim uvjetom

Naredba DELETE može se koristiti s jednim uvjetom. Uvjet se postavlja korištenjem WHERE klauzule. Razmotrite tablicu cijena sa sljedećim podacima:

Cijena

PostgreSQL Brisanje upita s jednim uvjetom

Izbrišimo zapis s ID-om 4:

DELETE FROM Price
WHERE id = 4;

Gornja naredba će izbrisati zapise u kojima je id 4. Potvrdimo je li brisanje uspješno:

PostgreSQL Brisanje upita s jednim uvjetom

Redak s ID-om 4 je izbrisan.

Brisanje upita s dva uvjeta

The PostgreSQL Naredba DELETE može imati dva uvjeta. Ova dva uvjeta treba spojiti pomoću operatora AND. Koristit ćemo sljedeću tablicu:

Cijena:

PostgreSQL Brisanje upita s dva uvjeta

Razmotrite primjer u nastavku:

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

U gornjoj naredbi brišemo red u kojem je id 3, a cijena 300. Sada možemo postaviti upit tablici:

SELECT * FROM Price

Ovo vraća sljedeće:

PostgreSQL Brisanje upita s dva uvjeta

Zapis s id-om 3 i cijenom 300 je izbrisan.

PostgreSQL Izbriši upit pomoću postojećeg uvjeta

S uvjetom EXISTS, DELETE možete učiniti složenijim. Ponekad može postojati potreba za brisanjem zapisa u jednoj tablici na temelju zapisa u drugoj tablici.

Vidjet ćete da klauzula FROM ne dopušta popis zapisa iz više od jedne tablice prilikom izvođenja brisanja, klauzula EXISTS postaje vrlo korisna. Imamo sljedeće dvije tablice:

Rezervirati:

PostgreSQL Izbriši upit pomoću postojećeg uvjeta

Cijena:

PostgreSQL Izbriši upit pomoću postojećeg uvjeta

Zatim možemo pokrenuti sljedeći upit:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

Gornja naredba će izbrisati iz tablice Knjiga gdje postoji zapis u tablici Cijena s ID-om koji odgovara onom tablice Knjiga i cijenom nižom od 250.

Tablica knjiga je sada sljedeća:

PostgreSQL Izbriši upit pomoću postojećeg uvjeta

Zapis s ID-om 1 je izbrisan.

Kako izbrisati red u PostgreSQL koristeći pgAdmin

Slijede koraci za brisanje retka PostgreSQL koristeći pgAdmin:

Uz jedan uvjet

Da biste postigli isto putem pgAdmina, učinite ovo:

Korak 1) Prijavite se na svoj pgAdmin račun

Otvorite pgAdmin i prijavite se na svoj račun koristeći svoje vjerodajnice

Korak 2) Napravite demo bazu podataka

  1. Na navigacijskoj traci s lijeve strane kliknite Databases.
  2. Pritisnite Demo.

Izbriši redak u PostgreSQL

Korak 3) Upišite upit

Unesite upit u nastavku u uređivač upita:

DELETE FROM Price
WHERE id = 4;

Korak 4) Izvršite upit

Pritisnite gumb Izvrši

Izbriši redak u PostgreSQL

Korak 5) Provjerite je li redak izbrisan

Provjerimo je li brisanje uspješno:

Izbriši redak u PostgreSQL

Uz dva uvjeta

Da biste postigli isto putem pgAdmina, učinite ovo:

Korak 1) Prijavite se na svoj pgAdmin račun.

Korak 2)

  1. Na navigacijskoj traci s lijeve strane kliknite Databases.
  2. Pritisnite Demo.

Izbriši redak u PostgreSQL

Korak 3) Unesite upit u uređivač upita:

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

Korak 4) Pritisnite gumb Izvrši.

Izbriši redak u PostgreSQL

Korak 5) Provjerimo je li brisanje uspješno:

Izbriši redak u PostgreSQL

Korištenje uvjeta POSTOJI

Da biste postigli isto putem pgAdmina, učinite ovo:

Korak 1) Prijavite se na svoj pgAdmin račun.

Korak 2)

  1. Na navigacijskoj traci s lijeve strane kliknite Databases.
  2. Pritisnite Demo.

Izbrišite red pomoću uvjeta POSTOJI

Korak 3) Unesite upit u uređivač upita:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

Korak 4) Pritisnite gumb Izvrši.

Izbrišite red pomoću uvjeta POSTOJI

Korak 5) Provjerimo je li brisanje uspješno:

Izbrišite red pomoću uvjeta POSTOJI

Rezime

  • Naredba DELETE koristi se za brisanje jednog ili više zapisa iz tablice.
  • Da biste izbrisali samo odabrane retke iz tablice, možete kombinirati naredbu DELETE s klauzulom WHERE.
  • Ako se klauzula DELETE koristi bez klauzule WHERE, brišu se svi zapisi iz tablice.
  • parametar table-name omogućuje vam dodavanje naziva tablice iz koje se zapisi žele izbrisati.
  • Možemo koristiti naredbu DELETE s jednim uvjetom, specificiranim pomoću WHERE klauzule.
  • Naredba DELETE također se može koristiti s dva uvjeta navedena u klauzuli WHERE. Ova dva uvjeta treba spojiti pomoću operatora AND.
  • The POSTOJI uvjet nam može pomoći da izbrišemo zapise iz tablice na temelju zapisa druge tablice.

Preuzmite bazu podataka korištenu u ovom vodiču