Linguagem SQL Comando SELECT Subqueries

Documentos relacionados
Linguagem SQL Comando SELECT Agrupamento de Resultados

Bases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9

IMPLEMENTAÇÃO DE BANCO DE DADOS

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

Aula 10 BD 1 SQL Parte 2. Profa. Elaine Faria UFU

Usando Subconsultas para Solucionar Consultas

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

Projeto de Banco de Dados

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

Programação SQL. INTRODUÇÃO II parte

ANÁLISE E PROJETO DE BANCO DE DADOS

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Bases de Dados. Álgebra Relacional II Junções, agregações, vistas. P. Serendero,

STRUCTURED QUERY LANGUAGE (SQL)

- SQL Linguagem de Manipulação de Dados

TRABALHO DE DEPENDÊNCIA ETAPA 2

Um toque de álgebra relacional: UNION e outras operações

Oracle SQL Developer

Sintaxe do comando SELECT

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

Prof. Fabiano Taguchi

Oracle SQL Developer

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados:

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

SQL-99: Esquema de BD EMPRESA

Linguagem de Consulta Estruturada SQL- DML

Bases de Dados. DML Data Manipulation Language Parte 3

SQL - Consultas

Sumário SELECT + FROM

Bases de Dados. DML Data Manipulation Language Parte 2

Tarefa Orientada 7 Consultas de selecção

ÁLGEBRA E CÁLCULO RELACIONAL

TLBD II Instruções SQL

Projeto de Banco de Dados

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

Programação SQL. Introdução

Sumário Introdução Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL A Composição deste Livro 3

Pesquisa básica em tabelas

Oracle Database: Fundamentos de SQL e PL/SQL

Álgebra Relacional e SQL

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

SQL (Tópicos) Structured Query Language

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Prof.: Clayton Maciel Costa

JPQL (Java Persistence Query language)

Subconsultas ou Consultas Aninhadas

Algoritmia e Programação APROG. Algoritmia 1. Lógica Proposicional (Noções Básicas) Nelson Freire (ISEP DEI-APROG 2013/14) 1/12

SQL DML. Frederico D. Bortoloti

Rápida revisão do Modelo Relacional

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado

MODELO DE DADOS VS ESQUEMA

Subconsultas ou Consultas Aninhadas

Oracle Database 10g: Fundamentos de SQL e PL/SQL

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

Definida pelo American National Standard Institute (ANSI) em 1986

Apresentação Modelo e SQL. André Luiz Montevecchi

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

Bases de Dados BDDAD. Álgebra Relacional. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/33

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

Tarefa Orientada 13 Agrupamento e sumário de dados

Manipulação de Dados com SQL

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

DESENVOLVIMENTO DE SOFTWARE

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Oracle PL/SQL Triggers

Aula 9 BD 1 SQL Parte 1. Profa. Elaine Faria UFU

Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima

Memória de aula Aulas 11 e 12

Oracle Database 11g: Introdução à Linguagem SQL Novo

DESENVOLVIMENTO DE SOFTWARE

Subconsultas ou Consultas Aninhadas

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.

Sistema Operacional Unidade 11.2 Shell Script: estruturas condicionais. QI ESCOLAS E FACULDADES Curso Técnico em Informática

BDII SQL DML II Revisão 8

SQL Consultas Básicas

Transcrição:

BDDAD Bases de Dados Linguagem SQL Comando SELECT Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9

Subquery Consiste num SELECT Dentro de outro. Que utiliza o resultado de outro SELECT. Exemplo Relação: Pessoa(, Nome,, Salario, ) Consulta: Lista de pessoas com o menor salário Nº de SELECT s encadeados Ilimitado 1/8 SELECT Nome FROM Pessoa WHERE Salario = ( SELECT MIN(Salario) FROM Pessoa ) SELECT exterior: Contém SELECT SELECT interior : Incluído no SELECT exterior. Tem acesso à tabela exterior. Neste caso: Usado como operando de condição WHERE. WHERE Salario = MIN(Salario) Ilegal Nelson Freire (ISEP LEI-BDDAD 2015/16) 2/9

Comando SELECT Pode ser incluído nas cláusulas: 2/8 Cláusula Observação SELECT SELECT pode ser operando numa expressão. Exemplo: SELECT nome, valor + (SELECT MAX( ) FROM ), FROM SELECT FROM (SELECT ) T, - - T serve de sinónimo (alias) WHERE HAVING SELECT pode ser operando nas condições: IN // Testa se valor pertence ao resultado do SELECT interior. EXISTS // Testa se resultado do SELECT interior não é vazio. ANY /* Testa se pelo menos um valor do resultado do SELECT interior satisfaz a condição especificada. */ ALL /* Testa se todos os valores do resultado do SELECT interior satisfazem a condição especificada */ Semelhante à cláusula WHERE. Nelson Freire (ISEP LEI-BDDAD 2015/16) 3/9

Funcionamento das Queries Depende do seu tipo Tipos de Não-Correlacionadas Correlacionadas Tipos de 3/8 Nelson Freire (ISEP LEI-BDDAD 2015/16) 4/9

SELECT Interior Não depende de valores do SELECT exterior Não referencia coluna do SELECT exterior Exemplo: Sentido da Execução Do interior para exterior SELECT interior executado Em 1º lugar 1 vez // teoricamente Não-Correlacionadas SELECT P1.Nome FROM Pessoa P1 WHERE P1.Salario = ( SELECT MIN(P2.Salario) FROM Pessoa P2 ) Porque SELECT exterior É que depende do SELECT interior Logo, executado depois. Valor constante para todas as linhas da tabela exterior 4/8 Nomes de pessoas com o menor salário Nelson Freire (ISEP LEI-BDDAD 2015/16) 5/9

Correlacionadas SELECT Interior Depende de valores do SELECT exterior Executado Tantas vezes quanto o SELECT exterior // semelhante a FOR s encaixados. Sentido da Execução Do exterior para o interior SELECT interior espera por valor do SELECT exterior Exemplo Relações: Pessoa( Id, Nome,, Salario, ) Comissao (, Id, Valor, ) Resultado: Pessoas cujo salário é inferior às suas comissões. SELECT Nome, Salario FROM Pessoa P WHERE Salario < ( SELECT SUM(Valor) FROM Comissao C WHERE C.Id = P.Id ) Valor variável que depende da linha da tabela exterior SELECT executado para cada pessoa Faz a ligação ao SELECT exterior Nome coluna associada ao respetivo SELECT (não é necessário C.Valor) SELECT interior tem de retornar uma única linha quando é usada em operadores relacionais ou lógicos. Nelson Freire (ISEP LEI-BDDAD 2015/16) 6/9 5/8

Tipos de Não-Correlacionadas Correlacionadas Características Resumo dos Tipos de 6/8 Caraterísticas SELECT Interior Não-Correlacionado SELECT Interior Correlacionado Dependência do SELECT Exterior Não depende Depende Sentido de Execução Exterior Interior SELECT ( SELECT( ) ) /* interior executado 1º e só depois o exterior */ Exterior Interior SELECT ( SELECT( ) ) /* execução interior intercalada com execução exterior */ Execução do SELECT interior 1 vez nº de vezes = ao do SELECT exterior Nelson Freire (ISEP LEI-BDDAD 2015/16) 7/9

Operadores IN e EXISTS 7/8 Operador Exemplo Observação IN coluna [NOT] IN (Subquery) Operador binário. Verifica se valor existe no resultado de uma subquery. Conjunto pode ser uma subquery. EXISTS [NOT] EXISTS (Subquery) Operador unário. Verifica se resultado de subquery é ou não um conjunto vazio. Pode ser usado em vez de INTERSECT Operador INTERSECT - exclusivo Oracle Exemplos SELECT Nome, Cod_Postal FROM Pessoa P WHERE Cod_Postal IN ( SELECT Codigo FROM Postal WHERE Localidade = Lisboa ) SELECT Nome, Cod_Postal FROM Pessoa P WHERE EXISTS ( SELECT Codigo FROM Postal WHERE P.Cod_Postal = Codigo AND Localidade = Lisboa ) Nelson Freire (ISEP LEI-BDDAD 2015/16) 8/9

Condições ANY e ALL Condições ANY e ALL 8/8 Palavra-Reservada Sintaxe Observação ANY expressão operador ANY(subquery) Condição ANY retorna TRUE quando qualquer dos valores do resultado da subquery satisfaz a condição. ALL expressão operador ALL(subquery) Condição ALL retorna TRUE quando todos os valores do resultado da subquery satisfazem a condição. Operador (relacional) >, <, >=, <=, =, <>,!= Exemplo: valor > ANY (SELECT ) valor <= ANY (SELECT ) valor > ALL(SELECT ) valor <= ALL (SELECT ) Nelson Freire (ISEP LEI-BDDAD 2015/16) 9/9