Subconsultas em SQL. Subconsulta Estrutura geral SELECT.... FROM.... WHERE [at] OPERADOR ( SELECT... FROM... [WHERE... ]) Declaração SELECT localizada.

Slides:



Advertisements
Apresentações semelhantes
SQL Avançado Continuação
Advertisements

Prof. Bruno Rafael de Oliveira Rodrigues
Triggers Marilde Santos.
SQL Exercícios de Revisão Profa. Sandra de Amo Programa de Pós-graduação em Ciência da Computação – UFU
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
SQL – DML Consultas envolvendo relacionamentos entre tabelas
1 A Linguagem SQL Todo Banco de Dados apresenta uma Linguagem para definição e uma para manipulação de dados. Com relação aos Bancos de Dados Relacionais,
Prof. José Fernando Rodrigues Júnior Pacotes Material original: Profa. Elaine Parros Machado de Sousa SCC Bancos de Dados e Suas Aplicações.
PL/SQL (Procedural Language/Structured Query Language)
SCC Bancos de Dados e Suas Aplicações
Procedimentos e Funções
Ronaldo Celso Messias Correia
Html5- Desenvolvendo Aplicações. Html5- Introdução a SQL Métodos OpenDatabase (utilizado para criar ou abrir uma Base de Dados); Transaction (permite.
Capítulo 10 Arrays. 2Capítulo 10 – Arrays Arrays Introdução Tipo do array Tamanho do array Preenchendo o array Varrendo um array Array com 2 dimensões.
FORTRAN 90 Denise Yumi Takamura.
SQL Procedural Junho/2006.
SQL procedural – parte 2.
Elaboração de Consultas 3 de abril de Recuperação de Informação Cd_cliente CLIENTECONTATO Cd_cliente C1 C1 : Listar os clientes que tem contatos.
Estruturas de Dados para projeto de SGBD. Estruturas de dados analisadas Estruturas de nível Esparso Denso Combinadas Arvore B+ Tabela de hash.
BDOO. Modelos tradicionais (relacional, rede e hierárquico) : aplicações tradicionais Novas aplicações para : Sistemas CAD Manufatura Experimentos científicos.
Funções de Linha 17/04/06. Funções de Linha Gerar ou construir novo valor não existente na tabela inicial. Valor construído a partir de dados de uma ou.
Introdução à Consulta 24/3/06. Categorias de comandos DDL : estruturação de objetos de BD Ex. create table, drop index, alter table... DML: manipulação.
Funções de Linha 24/04/06. Funções de Linha Gerar ou construir novo valor não existente na tabela inicial. Valor construído a partir de dados de uma ou.
SQL-3. Novo contexto e necessidade de : Manipular imagens Outros tipos de dados além de texto e números Recuperação de dados mais complexos Níveis distintos.
Objeto de BD: visão Há 2 tipos de tabelas Tabela base
Vetores Variável Composta Homogênea Unidimensional
Sql-3 ( final ).
Custos XP x Custos Tradicionais André Chinvelski.
Teste Estrutural de Software
Banco de Dados I Profa. Jiani Cardoso 2/2005
Banco de Dados Geográficos
Agregado Homogêneo e Heterogêneo
Técnicas de Amostragem
Capítulo VII – Tipos Enumerativos e Estruturas 7.1 – Tipos enumerativos 7.2 – A necessidade de estruturas 7.3 – Manipulação dos campos de uma estrutura.
CES-41 COMPILADORES Capítulo VII Código Intermediário.
CES-41 COMPILADORES Aulas Práticas
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo XI Noções de Estruturas de Dados.
Capítulo IX – Ponteiros 9.1 – Introdução 9.2 – Relação entre ponteiros e variáveis indexadas 9.3 – Alocação dinâmica de memória 9.4 – Variáveis indexadas,
Formação de Administradores de Redes Linux LPI – level 1 SENAC TI Fernando Costa SQL (Structure Query Language)
O TÍTULO DO TRABALHO DEVE SER EM FONTE VERDANA, TAMANHO 66, LETRAS MAIÚSCULAS, EM NEGRITO SOBRENOME, Autor 1., SOBRENOME, Autor 2…., Verdana, 32, negrito,
SMS: um novo gênero digital e emergente nas aulas de língua Giselda Santos Costa CEFET-PI UNED-Floriano Junho-2007.
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Contrato Pedagógico Economia e Gestão Financeira – 2 SIN A/ 06 Este contrato visa a estabelecer regras claras para utilização entre o 2SINA/ 06.
Marco Antonio Montebello Júnior
Data Warehouse Toolkit: Telecomunicações e Utilitários (Cap. 10)
Curso de Programação em C++
Baseado no documento do Prof. Ronaldo Martins da Costa
LINGUAGENS DE PROGRAMAÇÃO
Sistemas de Informação Prof. Me. Everton C. Tetila Modelo de dados relacional Banco de Dados I.
SECRECRETARIA DE ESTADO DE PLANEJAMENTO E CORRDENAÇÃO GERAL CAPACITAÇÃO PARA ELABORAÇÃO PTA/LOA Cuiabá, 21 de junho de 2004.
Stored Procedure, Function and Trigger
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
Linguagem de Banco de Dados - SQL
Linguagem de Banco de Dados - SQL
Usando Java no Oracle Por Edson Almeida Junior
SQL Server 2012 SQL – Consultas
Prof. Eduardo Mantovani Prof. Fábio de P. Santos AES 2007.
Monitoria GDI Aula Prática
Monitoria GDI Aula Prática
Banco de Dados Aplicado ao Desenvolvimento de Software
Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData.
Funções ou procedures Professor Esp. Diego André Sant’Ana
Cursor Professor Esp. Diego André Sant’Ana
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
Recuperação de Dados Banco de Dados Carina Farias
Banco de Dados José Antônio da Cunha CEFET – RN.
BANCO DE DADOS Araújo Lima Set / 2018 Araújo.
SQL – COMANDOS DML Profª Rosana Traversa.
Módulo III Capítulo 3: Linguagem SQL
Transcrição da apresentação:

Subconsultas em SQL

Subconsulta Estrutura geral SELECT.... FROM.... WHERE [at] OPERADOR ( SELECT... FROM... [WHERE... ]) Declaração SELECT localizada dentro de outra declaração SELECT

Subconsulta Recurso anteriormente utilizado(PLEW) 1.Inexistência anterior de junção externa 2.Desempenho ruim das ligações internas

Subconsulta Preterida devido: 1.Adição de junção externa no SQL-99 2.Melhora do processamento de junção interna 3.Pouca legibilidade no código com subconsulta ( leitura/ manutenção)

Sintaxes SELECT * FROM TABELA1[, TABELA2] WHERE [ [NOT] EXISTS ( subconsulta) ] [ [NOT] UNIQUE ( subconsulta)] [ atributo > | = |<= ALL ( subconsulta)] [ atributo > | = |<= ANY ( subconsulta)] [ atributo [,atributo2] [NOT] IN ( subconsulta ) ]

Subconsulta SELECT descricao, preco FROM comida WHERE preco < ( SELECT AVG(preco) FROM comida)

Processamento de Subconsulta SELECT descricao, preco FROM comida WHERE preco < ( SELECT AVG(preco) FROM comida) ( SELECT AVG(preco) FROM comida) (200) 2. SELECT descricao, preco FROM comida WHERE preco < (200)

Subconsultas que retornam de lista de valores Dois casos possíveis: 1.Um valor único 2.Lista de valores O resultado da subconsulta deve estar dentro da declaração da consulta externa.

Subconsultas: retorno de lista WHERE + emprego de IN / NOT IN Null Cintia20 Ane18 Clea16 Leila14 Graça12 Roberto10 Alex8 Antonio6 Joao4 Maria2 Nome_funcNum_func Null Ane18 Quenia15 Graça12 Nair9 Antonio6 Tarso3 Nome_EstNum_Est Tab. Func Tab. Est

Subconsulta: retorno de lista Ocorrências de Func onde num_func liga-se com valor da coluna num_est ( Est) SELECT num_func, nome_func FROM func WHERE num_func IN ( select num_est FROM est) SELECT num_func, nome_func FROM func WHERE num_func IN ( 3, 6, 9, 12, 15, 18, null) Ane18 Graça12 Antonio6 Equivale a uma junção interna !

Subconsulta: retorno de lista Ocorrências de Func onde num_func NÃO se ligam com nenhum valor da coluna num_est ( Est) SELECT num_func, nome_func FROM func WHERE num_func NOT IN ( select num_est FROM est ) SELECT num_func, nome_func FROM func WHERE num_func IN ( 3, 6, 9, 12, 15, 18)

Subconsultas com retorno de valor único Uma forma de assegurar o retorno de valor único é o emprego de funções de agregação. Operadores possíveis: = >= IN | NOT IN BETWEEN

Subconsulta correlativas Qualquer consulta que contém uma referência para tabela da consulta externa. Não pode ser avaliada antes da consulta externa. PLEW cita como modalidade mais antiga.

Subconsulta com Exists WHERE + exists ( correlativa) Reserva um espaço separado para cada linha da tabela na consulta externa. select num_matricula, nome from aluno where exists ( select distinct num_matricula from nota_aluno_disciplina) Sem atributo

Subconsulta para ligação externa Empregar NOT EXISTS SELECT a.num_func, a.nome_func, b. num_est, b. nome_est FROM func a, est b WHERE a.num_func = b. num_est UNION ALL SELECT a.num_func, a.nome_func, null, null FROM func a WHERE NOT EXISTS( select b.num_est FROM est WHERE a.num_func = b. num_est)

Operadores para subconsultas > >= EXISTS IN/ NOT IN > >= ALL > >= ANY <>ALL equivale a NOT INT IN equivale a =ANY

Exercício Compare a) e b) e justifique a diferença. a) select num_matricula, nome from aluno where exists ( select distinct num_matricula from nota_aluno_disciplina) b) select num_matricula, nome from aluno where num_matricula in ( select distinct num_matricula from nota_aluno_disciplina)

Operadores de Conjuntos Equivalência com conjuntos matemáticos UNION/ UNION ALL INTERSECT CORRESPONDING BY EXCEPT

Subconsultas com operadores de conjuntos Tratamento de consultas como conjuntos consulta 1 UNION [ALL] | INTERSECT | EXCEPT | MINUS consulta 2 * As consultas devem ter a mesma quantidade e mesmo tipo de campos como retorno para efetuar esses comandos.

Exercício Testes de operadores com sub-consultas 1) Selecionar dados de produto se houver qualquer ocorrência de custo superior a 100. ( exists) 2) Selecionar se o salário de um funcionário ( que vc escolhe ) é único. ( unique) 3) Listar dados para todos os salários de uma cidade. ( ALL). 4) Selecionar todos os dados dos produtos com o custo maior que 10. ( ALL) 5) Selecionar o qualquer produto custo com custo maior que 10. ( ANY)