CriandoBits
Identifique-se Entrar Esqueceu a senha? Esqueci minha senha

SQL - Subconsultas

Por Benedito Silva Júnior - publicado em 21/07/2016


Uma subconsulta é uma instrução SELECT adicionada dentro de uma instrução SELECT, SELECT...INTO, INSERT...INTO, DELETE, ou UPDATE ou dentro de outra subconsulta. Pode utilizar três formas de sintaxe para criar uma subconsulta:

Comparação [ANY|SOME|ALL] (instrução sql)
É uma expressão e um operador de comparação que compara a expressão com o resultado da subconsulta.

Expressão [NOT] IN (instrução sql)
É uma expressão pela qual se busca o conjunto resultante da subconsulta.

Expressão [NOT] EXISTS (instrução sql)
É uma instrução SELECT, que segue o mesmo formato e regras que qualquer outra SELECT. Deve ir entre parênteses.

Os predicados ANY e SOME, sinônimos, são utilizados para recuperar registro na consulta principal que satisfaçam a comparação com qualquer registro da sub-consulta.

Exemplos:

ELECT * FROM cadastro_clientes WHERE codigo_cliente > ANY (SELECT codigo_cliente FROM pendencias WHERE valor = 100)

A instrução acima irá retornar clientes cujos seus códigos sejam maiores que os códigos de quem se encontra na tabela 'pendencias' cujo o valor a pagar seja igual a 100.

SELECT * FROM cadastro_clientes AS cc WHERE EXISTS (SELECT * FROM pendencias AS p WHERE cc.codigo_cliente = p.codigo_cliente)

A instrução acima retornará os clientes que tenham seus códigos registrados na tabela 'pendencia', ou seja, que tenham alguma pendência.

Sintaxe para exclusão de tabelas:

UPDATE pendencias SET valor = 0 WHERE codigo_cliente = (SELECT codigo_cliente FROM pendencias WHERE codigo_cliente = 1)

A instrução acima atualiza o valor da pendência do cliente cujo código seja igual a 1.

DELETE FROM pendencias WHERE codigo_cliente = (SELECT codigo_cliente FROM cadastro_clientes WHERE codigo_cliente = 1)

A instrução acima exclui o cliente da tabela de pendência cujo código seja igual a 1. 

 
Voltar a pagina anteriorVoltarSubir ao topo da páginaTopo