PostgreSQL ESISTE con esempi

Sommario:

Anonim

Cos'è PostgreSQL Exists?

L'operatore EXISTS verifica se una o più righe esistono in una sottoquery. Ciò significa che l'operatore viene utilizzato insieme a una sottoquery. Si dice che l'operatore Exists sia stato soddisfatto quando viene trovata almeno una riga nella sottoquery. È possibile utilizzare questa operazione insieme alle istruzioni SELECT, UPDATE, INSERT e DELETE.

In questo tutorial di PostgreSQL imparerai quanto segue:

  • Sintassi
  • Con l'istruzione SELECT
  • Con istruzione INSERT
  • Con l'istruzione UPDATE
  • Con l'istruzione DELETE
  • Con pgAdmin

Sintassi

Ecco la sintassi per l'istruzione EXISTS di PostgreSQL:

WHERE EXISTS (subquery);

La sintassi precedente mostra che l'operatore EXISTS accetta un argomento, che è una sottoquery. La sottoquery è semplicemente un'istruzione SELECT che dovrebbe iniziare con SELECT * invece di un elenco di nomi di colonna o espressioni.

Con l'istruzione SELECT

Vediamo come utilizzare un'istruzione SELECT con l'operatore EXISTS. Abbiamo le seguenti tabelle:

Libro:

Prezzo:

Eseguire la seguente istruzione:

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

Ciò restituisce quanto segue:

Il comando precedente dovrebbe restituire tutti i record nella tabella Book il cui id corrisponde all'id di tutti i record della sottoquery. È stato trovato un solo ID. Quindi, è stato restituito un solo record.

Con istruzione INSERT

Possiamo usare l'operatore EXISTS in un'istruzione INSERT. Abbiamo le seguenti 3 tabelle:

Libro:

Prezzo:

Prezzo2:

Possiamo quindi eseguire la seguente istruzione:

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

La tabella dei prezzi è ora la seguente:

La riga con un ID di 5 nella tabella denominata Price2 è stata trovata. Questo record è stato quindi inserito nella tabella dei prezzi.

Con l'istruzione UPDATE

Possiamo usare l'operatore EXISTS in un'istruzione UPDATE.

Esegui la seguente query:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

Stiamo aggiornando la colonna dei prezzi della tabella dei prezzi. Il nostro obiettivo è fare in modo che i prezzi degli articoli che condividono un ID siano gli stessi. È stata trovata una sola riga, ovvero 5.

Tuttavia, poiché i prezzi sono uguali, ovvero 205, non è stato effettuato alcun aggiornamento. Se ci fosse stata una differenza, sarebbe stato effettuato un aggiornamento.

Con l'istruzione DELETE

Un'istruzione DELETE di PostgreSQL può utilizzare l'operatore EXISTS. Ecco un esempio:

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

La tabella dei prezzi è ora la seguente:

La riga con ID 5 è stata eliminata.

Con pgAdmin

Vediamo ora come queste azioni possono essere eseguite utilizzando pgAdmin.

Con l'istruzione SELECT

Per ottenere lo stesso risultato tramite pgAdmin, procedere come segue:

Passaggio 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

Passaggio 3) Digita la query nell'editor di query:

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

Passaggio 4) Fare clic sul pulsante Esegui.

Dovrebbe restituire quanto segue:

Con istruzione INSERT

Per ottenere lo stesso risultato tramite pgAdmin, procedere come segue:

Passaggio 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

Passaggio 3) Digita la query nell'editor di query:

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

Passaggio 4) Fare clic sul pulsante Esegui.

La tabella dei prezzi dovrebbe ora essere la seguente:

Con l'istruzione UPDATE

Per ottenere lo stesso risultato tramite pgAdmin, procedere come segue:

Passaggio 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

Passaggio 3) Digita la query nell'editor di query:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

Passaggio 4) Fare clic sul pulsante Esegui.

La tabella dei prezzi dovrebbe ora essere la seguente:

Con l'istruzione DELETE

Per ottenere lo stesso risultato tramite pgAdmin, procedere come segue:

Passaggio 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

Passaggio 3) Digita la query nell'editor di query:

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

Passaggio 4) Fare clic sul pulsante Esegui.

La tabella dei prezzi dovrebbe ora essere la seguente:

Sommario

  • L'operatore EXISTS verifica se una o più righe esistono in una sottoquery.
  • Viene utilizzato con una sottoquery e si dice che sia stato soddisfatto quando la sottoquery restituisce almeno una riga.
  • Viene utilizzato insieme alle istruzioni SELECT, UPDATE, INSERT e DELETE.

Scarica il database utilizzato in questo tutorial