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:
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.
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);
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:
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
- Na barra de navegação à esquerda, clique em Bancos de dados.
- Clique em Demonstração.
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
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:
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