PostgreSQL EXISTE com SELECT Operator (Exemplo)
โก Resumo Inteligente
PostgreSQL EXISTS รฉ um operador booleano que testa se uma subconsulta correlacionada retorna alguma linha, permitindo que as instruรงรตes SELECT, INSERT, UPDATE e DELETE filtrem dados pela presenรงa ou ausรชncia de registros correspondentes de forma eficiente.

O que existe em PostgreSQL?
O PostgreSQL EXISTE O operador EXISTS testa se uma ou mais linhas existem em uma subconsulta. Isso significa que o operador รฉ usado em conjunto com uma subconsulta. Diz-se que o operador EXISTS foi atendido quando pelo menos uma linha รฉ encontrada na subconsulta. Vocรช pode usar essa operaรงรฃo com as instruรงรตes SELECT, UPDATE, INSERT e DELETE.
PostgreSQL Sintaxe de consulta EXISTS
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 EXISTS com instruรงรฃo SELECT
Vejamos como usar uma instruรงรฃo SELECT com o operador EXISTS. Temos as seguintes tabelas:
Livro:
Preรงo:
Execute a seguinte instruรงรฃo:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Isso retorna o seguinte:
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:
Preรงo:
Preรงo2:
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:
A linha com id 5 na tabela chamada Price2 foi correspondida. Este registro foi entรฃo inserido na tabela Preรงo.
PostgreSQL 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);
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.
PostgreSQL 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:
A linha com ID 5 foi excluรญda.
PostgreSQL Declaraรงรฃo EXISTS usando pgAdmin
Alรฉm do shell SQL, as mesmas consultas EXISTS podem ser executadas visualmente atravรฉs da interface do pgAdmin. Vejamos agora como essas aรงรตes podem ser realizadas usando o pgAdmin:
Com a instruรงรฃo SELECT
A seguir estรฃo os passos para usar uma consulta EXISTS em PostgreSQL Com uma instruรงรฃo SELECT usando pgAdmin:
Passo 1) Faรงa login na sua conta pgAdmin. Abra o pgAdmin e faรงa login na sua conta usando suas credenciais.
Passo 2) Criar um banco de dados de demonstraรงรฃo.
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
Passo 3) Digite a consulta abaixo no editor de consultas:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Passo 4) Clique no botรฃo Executar.
Deve retornar o seguinte:
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)
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
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.
A tabela de preรงos agora deve ser a seguinte:
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)
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
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.
A tabela de preรงos agora deve ser a seguinte:
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)
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
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.
A tabela de preรงos agora deve ser a seguinte:
Baixe o banco de dados usado neste tutorial





















