Ang PostgreSQL EXISTS na may Mga Halimbawa

Ano ang Mga Umiiral na PostgreSQL?

Sinusubukan ng operator ng EXISTS kung mayroong isang (mga) hilera sa isang subquery. Nangangahulugan ito na ang operator ay ginagamit kasama ang isang subquery. Sinasabing natutugunan ang umiiral na operator nang hindi bababa sa isang hilera ang matatagpuan sa subquery. Maaari mong gamitin ang operasyong ito kasama ang SELECT, UPDATE, INSERT, at Tanggalin ang mga pahayag.

Sa Tutorial na PostgreSQL na ito, malalaman mo ang sumusunod:

Syntax

Narito ang syntax para sa pahayag na PostgreSQL EXISTS:

 WHERE EXISTS (subquery); 

Ipinapakita ng syntax sa itaas na ang umiiral na operator ay kumukuha ng isang argument, na kung saan ay isang subquery. Ang subquery ay isang piling pahayag na dapat magsimula sa isang PILI * sa halip na isang listahan ng mga pangalan ng haligi o ekspresyon.

Na may Piling Pahayag

Tingnan kung paano gumamit ng isang PILIING pahayag kasama ang EXISTS operator. Mayroon kaming mga sumusunod na talahanayan:

Libro:

Presyo:

Patakbuhin ang sumusunod na pahayag:

 SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id); 

Ibinabalik nito ang sumusunod:

Dapat ibalik ng utos sa itaas ang lahat ng mga talaan sa talahanayan ng Aklat na ang id ay tumutugma sa id ng anumang mga talaan ng subquery. Isang id lang ang naitugma. Samakatuwid, isang tala lamang ang naibalik.

Sa INSERT Statement

Maaari naming gamitin ang EXISTS operator sa isang pahayag na INSERT. Mayroon kaming mga sumusunod na 3 talahanayan:

Libro:

Presyo:

Presyo2:

Maaari naming patakbuhin ang sumusunod na pahayag:

 INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id); 

Ang talahanayan ng Presyo ay ang sumusunod:

Ang hilera na may id ng 5 sa talahanayan na nagngangalang Price2 ay naitugma. Ang talaang ito ay naipasok sa talahanayan ng Presyo.

Sa UPDATE na Pahayag

Maaari naming gamitin ang EXISTS operator sa isang UPDATE na pahayag.

Patakbuhin ang sumusunod na query:

 UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id); 

Ina-update namin ang haligi ng presyo ng talahanayan ng Presyo. Ang aming hangarin ay magkaroon ng mga presyo ng mga item na nagbabahagi ng isang id na maging pareho. Isang hilera lamang ang naitugma, iyon ay, 5.

Gayunpaman, dahil pantay ang mga presyo, iyon ay, 205, walang nag-update. Kung mayroong pagkakaiba, nagawa ang isang pag-update.

Sa Tanggalin na Pahayag

Ang isang pahayag na PostgreSQL Delete ay maaaring gumamit ng EXISTS operator. Narito ang isang halimbawa:

 DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id); 

Ang talahanayan ng Presyo ay ang sumusunod:

Ang hilera na may id na 5 ay tinanggal.

Sa pgAdmin

Tingnan natin ngayon kung paano maisasagawa ang mga pagkilos na ito gamit ang pgAdmin.

Na may Piling Pahayag

Upang magawa ang pareho sa pamamagitan ng pgAdmin, gawin ito:

Hakbang 1) Mag-login sa iyong pgAdmin account.

Hakbang 2)

  1. Mula sa navigation bar sa kaliwa- I-click ang Mga Database.
  2. I-click ang Demo.

Hakbang 3) I-type ang query sa editor ng query:

 SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id); 

Hakbang 4) I-click ang pindutang Isagawa.

Dapat itong ibalik ang sumusunod:

Sa INSERT Statement

Upang magawa ang pareho sa pamamagitan ng pgAdmin, gawin ito:

Hakbang 1) Mag-login sa iyong pgAdmin account.

Hakbang 2)

  1. Mula sa navigation bar sa kaliwa- I-click ang Mga Database.
  2. I-click ang Demo.

Hakbang 3) I-type ang query sa editor ng query:

 INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id); 

Hakbang 4) I-click ang pindutang Isagawa.

Ang talahanayan ng Presyo ay dapat na tulad ng sumusunod:

Sa UPDATE na Pahayag

Upang magawa ang pareho sa pamamagitan ng pgAdmin, gawin ito:

Hakbang 1) Mag-login sa iyong pgAdmin account.

Hakbang 2)

  1. Mula sa navigation bar sa kaliwa- I-click ang Mga Database.
  2. I-click ang Demo.

Hakbang 3) I-type ang query sa editor ng query:

 UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id); 

Hakbang 4) I-click ang pindutang Isagawa.

Ang talahanayan ng Presyo ay dapat na tulad ng sumusunod:

Sa Tanggalin na Pahayag

Upang magawa ang pareho sa pamamagitan ng pgAdmin, gawin ito:

Hakbang 1) Mag-login sa iyong pgAdmin account.

Hakbang 2)

  1. Mula sa navigation bar sa kaliwa- I-click ang Mga Database.
  2. I-click ang Demo.

Hakbang 3) I-type ang query sa editor ng query:

 DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id); 

Hakbang 4) I-click ang pindutang Isagawa.

Ang talahanayan ng Presyo ay dapat na tulad ng sumusunod:

Buod

  • Sinusubukan ng operator ng EXISTS kung mayroong isang (mga) hilera sa isang subquery.
  • Ginagamit ito sa isang subquery at sinabing natutugunan nang bumalik ang subquery kahit isang hilera.
  • Ginagamit ito kasama ng PILI, UPDATE, INSERT, at Tanggalin ang mga pahayag.

I-download ang Database na ginamit sa Tutorial na ito