Buscar

Resumo de subconsultas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO CEARÁ
CIÊNCIA DA COMPUTAÇÃO
MARIA GABRIELE ALMEIDA OLIVEIRA
RESUMO DE SUBCONSULTAS
JAGUARUANA
2016
Resumo de subconsultas
Uma subconsulta é uma instrução SELECT que está encadeada dentro de outra instrução SELECT, que mostram sempre uma tabela como resultado de sua execução. A consulta interior é executada primeiro, sendo seu resultado utilizado para completara consulta externa. As subconsultas permitem a construção de comandos potentes a partir de comandos mais simples.
Algumas regras:
Devem estar entre parênteses;
Ao utilizá-las na cláusula WHERE, serão expressas à direita do operador de comparação;
Não podem ser utilizadas na cláusula ORDER BY;
Use operadores de uma linha com subconsultas de uma linha;
Use operadores de várias linhas com subconsultas de várias linhas.
As subconsultas podem ser escalares, que retornam como resultado apenas uma linha, ou tabulares, que retornam linhas e colunas.
Tipos de operadores:
	Operadores de uma linha
	Função
	=
	Igual
	>
	Maior
	>=
	Maior ou igual
	<
	Menor
	<=
	Menor ou igual
	<>
	Diferente
	Operadores de várias linhas
	Função
	NOT / IN
	Igual a qualquer membro da lista
	=/</>/<> ANY
	Compara o valor com cada valor retornado
	=/</>/<> ALL
	Compara o valor com todos os valores
	EXISTS
	Retorna true ou false
Subconsultas na cláusula WHERE:
	Exemplos:
Buscar o nome dos médicos com consultas marcadas para o dia 13 de junho de 2016.
SELECT nome
FROM médicos
WHERE codm IN (SELECT codm
		 FROM consultas
		 WHERE data = ‘16/06/13’);
Buscar o nome de todos os funcionários, exceto o mais idoso.
SELECT nome
FROM funcionários
WHERE idade < ANY(SELECT idade
 FROM funcionarios);
Buscar o nome dos funcionários que recebem salários superiores aos salários pagos no departamento enfermaria.
SELECT nome
FROM funcionários
WHERE salario> ALL (SELECT salario
			 FROM funcionarios
		 	 WHERE departamento = ‘enfermaria’);
Subconsultas na cláusula FROM
Uma subconsulta também pode ser utilizada na cláusula FROM. Isso permite uma otimização eficiente da consulta, pois restringe linhas e colunas das tabelas envolvidas antes de realizar um produto cartesiano ou junção.
Exemplos na cláusula FROM:
Buscar os médicos com consultas marcadas para 13 de junho de 2016 e os horários de suas consultas.
SELECT medicos.*, c.hora 
FROM medicos join (SELECT codm, hora
			 FROM consultas
			 WHERE data = ‘16/06/13’) as c
ON medicos.codm = c.codm;
 Determine os 5 empregados que têm o salário mais elevado.
SELECT *
FROM (SELECT nome, salario
	 FROM empregados
	 ORDER BY salario DESC)
WHERE rownum <= 5;
Subconsultas na cláusula SELECT
Exemplos:
Nesse exemplo, as colunas C1 e C3 pertencem a tabela T1 e o campo C2 é um campo obtido através de uma subconsulta. Essa subconsulta obtém o campo C2 da tabela T2.
SELECT C1, (SELECT C2
		 FROM T2) AS C2, C3
FROM T1;
Listar os salários máximos da tabela dos empregados e dos médicos usando apenas um query e mostrando os resultados numa única linha.
SELECT (SELECT MAX (salario)
	 FROM empregados),
	 (SELECT MAX (salario)
	 FROM médicos)
FROM dual;
Subconsultas em instruções que modificam dados (INSERT, EPDATE E DELETE).
Exemplos:
Copia os dados de uma tabela para outra. (INSERT)
INSERT INTO funcionários
	(SELECT *
 	 FROM funcionarios1);
Atualiza o preço dos produtos para ser igual ao preço do inventário onde o código do produto for igual.(UPDATE)
UPDATE produto
SET preco = (SELECT precoinventario
		 FROM produtos1
		 WHERE produtos1.codigo = produtos.codigo);
Exclui o(os) funcionário(s) que tem o salário superior ao maior salário do cargo coordenador. (DELETE)
DELETE FROM funcionarios
WHERE salario > (SELECT MAX(salario)
		 FROM funcionarios
		 WHERE cargo = ‘coordenador’);

Outros materiais