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
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:
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:
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:
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:
Cijena:
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:
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
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
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
Korak 5) Provjerite je li redak izbrisan
Provjerimo je li brisanje uspješno:
Uz dva uvjeta
Da biste postigli isto putem pgAdmina, učinite ovo:
Korak 1) Prijavite se na svoj pgAdmin račun.
Korak 2)
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Unesite upit u uređivač upita:
DELETE FROM Price WHERE id = 3 AND price = 300;
Korak 4) Pritisnite gumb Izvrši.
Korak 5) Provjerimo je li brisanje uspješno:
Korištenje uvjeta POSTOJI
Da biste postigli isto putem pgAdmina, učinite ovo:
Korak 1) Prijavite se na svoj pgAdmin račun.
Korak 2)
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
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.
Korak 5) Provjerimo je li brisanje uspješno:
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