PostgreSQL Existe com exemplo de seleção, inserção, atualização e exclusão

O que existe em PostgreSQL?

A PostgreSQL EXISTE O operador testa se existem linhas em uma subconsulta. Isso significa que o operador é usado junto com uma subconsulta. Diz-se que o operador Exists foi atendido quando pelo menos uma linha é encontrada na subconsulta. Você pode usar esta operação junto com as instruções SELECT, UPDATE, INSERT e DELETE.

Postgres existe sintaxe de consulta

Aqui está a sintaxe para o PostgreSQL Declaração EXISTE:

WHERE EXISTS (subquery);

A sintaxe acima mostra que o operador EXISTS recebe um argumento, que é uma subconsulta. A subconsulta é simplesmente uma Instrução SELECT que deve começar com SELECT * em vez de uma lista de nomes de colunas ou expressões.

PostgreSQL Existe com instrução SELECT

Vamos ver como usar uma instrução SELECT com o operador EXISTS. Temos as seguintes tabelas:

Livro:

PostgreSQL Existe com instrução SELECT

Preço:

PostgreSQL Existe com instrução SELECT

Execute a seguinte instrução:

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

Isso retorna o seguinte:

PostgreSQL Existe com instrução SELECT

O comando acima deve retornar todos os registros da tabela Book cujo id corresponda ao id de qualquer registro da subconsulta. Apenas um ID foi correspondido. Portanto, apenas um registro foi retornado.

PostgreSQL Existe com instrução INSERT

Podemos usar o operador EXISTS em um INSERIR declaração. Temos as 3 tabelas a seguir:

Livro:

PostgreSQL Existe com instrução INSERT

Preço:

PostgreSQL Existe com instrução INSERT

Preço2:

PostgreSQL Existe com instrução INSERT

Podemos então executar a seguinte instrução:

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

A tabela de preços agora é a seguinte:

PostgreSQL Existe com instrução INSERT

A linha com id 5 na tabela chamada Price2 foi correspondida. Este registro foi então inserido na tabela Preço.

Postgres existe com instrução UPDATE

Podemos usar o operador EXISTS em uma instrução UPDATE.

Execute a seguinte consulta:

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);

Postgres existe com instrução UPDATE

Estamos atualizando a coluna de preços da tabela Preço. Nosso objetivo é que os preços dos itens que compartilham um ID sejam iguais. Apenas uma linha foi correspondida, ou seja, 5.

Porém, como os preços são iguais, ou seja, 205, nenhuma atualização foi feita. Se houvesse diferença, uma atualização teria sido feita.

Postgres existe com instrução DELETE

A PostgreSQL A instrução DELETE pode usar o operador EXISTS. Aqui está um exemplo:

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

A tabela de preços agora é a seguinte:

Postgres existe com instrução DELETE

A linha com ID 5 foi excluída.

PostgreSQL Declaração Existe usando pgAdmin

Agora vamos ver como essas ações podem ser realizadas usando o pgAdmin:

Como usar a consulta existente em PostgreSQL com instrução SELECT usando pgAdmin

Abaixo estão as etapas para usar a consulta Existe em PostgreSQL com instrução SELECT usando pgAdmin:

Etapa 1) Faça login em sua conta pgAdmin

Abra o pgAdmin e faça login em sua conta usando suas credenciais

Etapa 2) Crie um banco de dados de demonstração

  1. Na barra de navegação à esquerda, clique em Bancos de dados.
  2. Clique em Demonstração.

PostgreSQL Declaração Existe usando pgAdmin

Etapa 3) Digite a consulta

Digite a consulta abaixo no editor de consultas:

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

Etapa 4) Execute a consulta

Clique no botão Executar

PostgreSQL Declaração Existe usando pgAdmin

Deve retornar o seguinte:

PostgreSQL Declaração Existe usando pgAdmin

Com instrução INSERT

Para fazer o mesmo por meio do pgAdmin, faça o seguinte:

Passo 1) Faça login em sua conta pgAdmin.

Passo 2)

  1. Na barra de navegação à esquerda, clique em Bancos de dados.
  2. Clique em Demonstração.

Existe declaração em PostgreSQL usando pgAdmin

Passo 3) Digite a consulta no editor de consultas:

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

Passo 4) Clique no botão Executar.

Existe declaração em PostgreSQL usando pgAdmin

A tabela de preços agora deve ser a seguinte:

Existe declaração em PostgreSQL usando pgAdmin

Com declaração UPDATE

Para fazer o mesmo por meio do pgAdmin, faça o seguinte:

Passo 1) Faça login em sua conta pgAdmin.

Passo 2)

  1. Na barra de navegação à esquerda, clique em Bancos de dados.
  2. Clique em Demonstração.

Existe declaração em PostgreSQL usando pgAdmin

Passo 3) Digite a consulta no editor de consultas:

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);

Passo 4) Clique no botão Executar.

PostgreSQL Declaração Existe usando pgAdmin

A tabela de preços agora deve ser a seguinte:

PostgreSQL Declaração Existe usando pgAdmin

Com instrução DELETE

Para fazer o mesmo por meio do pgAdmin, faça o seguinte:

Passo 1) Faça login em sua conta pgAdmin.

Passo 2)

  1. Na barra de navegação à esquerda, clique em Bancos de dados.
  2. Clique em Demonstração.

PostgreSQL Declaração Existe usando pgAdmin

Passo 3) Digite a consulta no editor de consultas:

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

Passo 4) Clique no botão Executar.

PostgreSQL Declaração Existe usando pgAdmin

A tabela de preços agora deve ser a seguinte:

PostgreSQL Declaração Existe usando pgAdmin

Resumo

  • O operador EXISTS testa se existem linhas em uma subconsulta.
  • É usado com uma subconsulta e é considerado atendido quando a subconsulta retorna pelo menos uma linha.
  • É usado junto com as instruções SELECT, UPDATE, INSERT e DELETE.

Baixe o banco de dados usado neste tutorial