Subconsulta na Cláusula FROM

Documentos relacionados
Subconsulta na Cláusula FROM

Subconsultas ou Consultas Aninhadas

Banco de Dados. SQL Structured Query Language

Subconsultas ou Consultas Aninhadas

SQL (Structured Query Language)

SQL Consultas Básicas

Subconsultas ou Consultas Aninhadas

select nome from Médicos where codm in (select codm from Consultas where data = 06/06/13 )

Modelo Relacional - Manipulação

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

Marcelo Henrique dos Santos

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

IFSP Campus Presidente Epitácio. BND Banco de Dados. Professora: Márcia Jani. 1.1 Apresentação: Márcia Jani

IMPLEMENTAÇÃO DE BANCO DE DADOS

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

ANÁLISE E PROJETO DE BANCO DE DADOS

SQL (Structured Query Language)

SQL (Structured Query Language)

SQL (Structured Query Language)

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Objetos Persistentes. Objetos Persistentes: são objetos que requerem armazenamento persistente.

Álgebra Relacional e SQL

SQL Consultas Básicas

Rápida revisão do Modelo Relacional

SQL (Tópicos) Structured Query Language

Cálculo Relacional. Cálculo Relacional de Tupla

Cálculo Relacional. Duas categorias de linguagens cálculo relacional de tupla cálculo relacional de domínio

Linguagem de Consulta - SQL

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

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

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

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )

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

Comandos de Manipulação

Banco de Dados. Professora: Luciana Faria

Modelo Relacional - Manipulação

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

Sintaxe do comando SELECT

BCD29008 Banco de dados

SQL. Prof. Márcio Bueno.

António Rocha Nuno Melo e Castro

Memória de aula Semanas 15 e 16

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

Introdução ao PostgreSQL

Linguagem de Consulta Estruturada SQL- DML

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Conceitos básicos. Funcionario SIAPE Nome Lotacao Cargo Salario Admissao

SQL. Prof. Roger Cristhian Gomes

Linguagem SQL - Structured Query Language

Linguagem SQL - Structured Query Language

Visões. Definição de Visões

Definida pelo American National Standard Institute (ANSI) em 1986

Prova de Tecnologia da Informação

Curso de Banco de Dados. Prof. Rone Ilídio

Ordenação de tuplos order by

Linguagem SQL - Structured Query Language

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

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

Exercícios de SQL. Prof. Márcio Bueno.

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação

Prova de Fundamentos de Bancos de Dados 2 a Prova

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

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

SQL-99: Esquema de BD EMPRESA

Linguagem SQL. Comandos Básicos

Sumário SELECT + FROM

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

DML - SELECT Agrupando Dados

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

Projeto de Banco de Dados

Introdução ao SQL. Aécio Costa

ÁLGEBRA E CÁLCULO RELACIONAL

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

MySql. Introdução a MySQL. Andréa Garcia Trindade

Programação em Banco de dados

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

Roteiro 10: Consultas com várias tabelas/operadores de busca

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

SQL - Structured Query Language

Banco de Dados I. Aula 17 - Prof. Bruno Moreno 08/11/2011

Linguagem de Consulta Estruturada SQL- DML

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

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

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

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

SQL DML. Frederico D. Bortoloti

Visão & Visão Materializada. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

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

Modelo Entidade-Relacionamento (E-R)

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

PROVA TECNOLOGIA DA INFORMAÇÃO

Transcrição:

Subconsulta na Cláusula FROM Gera uma tabela derivada a partir de uma ou mais tabelas, para uso na consulta externa otimização: filtra linhas e colunas de uma tabela que são desejadas pela consulta externa select lista_atributos from (consulta_sql) as nome_tabela_derivada Mapeamento para a álgebra relacional select a 1 from (select x from t 1 where d > 5) as t 2 join t 3 on t 3.c = t 2.x π a1 (t 3 θ X ρ t2 (π x (σ d > 5 (t 1 )))) θ = t 3.c = t 2.x

Exemplos Álgebra SQL π Médicos.codm,..., nroa, hora ( (Médicos θ X θ = Médicos.codm = C.codm ρ C (π codm, hora (σ data = 06/11/13 (Consultas))) ) ) π Amb.nroa, andar, capacidade ( ρ Amb (π nroa, andar (Ambulatórios)) θ X θ = Amb.nroa = M_ort.nroa ρ MFlo (π nroa (σ cidade = Fpolis (Médicos))) ) select Medicos.*, C.hora from Medicos join (select codm, hora from Consultas where data = '06/11/13') as C on Médicos.codm = C.codm select Amb.* from (select nroa, andar from ambulatorios) as Amb join (select nroa from Medicos where cidade = Fpolis') as MFlo on Amb.nroa = MFlo.nroa

Ordenação de Resultados Cláusula ORDER BY select lista_atributos from lista_tabelas [where condição] [order by nome_atributo 1 [desc] {[, nome_atributo n [desc]]} ] Exemplos select * from Pacientes order by nome select salário, nome from Funcionários order by salário desc, nome

Ordenação de Resultados É possível determinar a quantidade de valores ordenados a retornar select... limit valor1 [offset valor2] Exemplos retorna as 5 primeiras tuplas retorna tuplas 5 tuplas a partir da posição 2 (inicia em zero) select * select salário, nome from Pacientes from Funcionários order by nome order by salário desc, limit 5 nome limit 5 offset 2

Definição de Grupos Cláusula GROUP BY select lista_atributos from lista_tabelas [where condição] [group by lista_atributos_agrupamento [having condição_para_agrupamento] ] GROUP BY define grupos para combinações de valores dos atributos definidos em lista_atributos_agrupamento um grupo mantém os atributos da tabela que não estão em lista_atributos_agrupamento apenas atributos definidos em lista_atributos_agrupamento podem aparecer no resultado da consulta geralmente o resultado da consulta possui uma função de agregação

Exemplo Definição de Grupos select especialidade, count(*) from Médicos group by especialidade especialidade grupos ortopedia codm nome idade RG cidade nroa 1 João 40 1000010000 Fpolis 1 4 Carlos 28 1100011000 Joinville pediatria codm nome idade RG cidade nroa especialidade Count 3 Pedro 51 1100010000 Fpolis 2 ortopedia 2 pediatira 1 neurologia 1 traumatologia 3 neurologia codm nome idade RG cidade nroa 5 Márcia 33 1100011100 Biguaçu 3 traumatologia codm nome idade RG cidade nroa 2 Maria 42 1000011000 Blumenau 2 6 Joana 37 1111110000 Fpolis 3 7 Mauro 53 1111000011 Blumenau 2

Definição de Grupos Cláusula HAVING define condições para que grupos sejam formados condições só podem ser definidas sobre atributos do agrupamento ou serem funções de agregação existe somente associada à cláusula GROUP BY Exemplos select especialidade, count(*) from Médicos group by especialidade having count(*) > 1

Atualização com Consulta Comandos de atualização podem incluir comandos de consulta necessário toda vez que a atualização deve testar relacionamentos entre tabelas Exemplo 1 delete from Consultas where hora > 17:00:00 and codm in (select codm from Médicos where nome = Maria )

Atualização com Consulta Exemplo 2 update Médicos set nroa = NULL where not exists (select * from Médicos m where m.codm <> Médicos.codm and m.nroa = Médicos.nroa) Exemplo3 update Ambulatórios set capacidade = capacidade + (select capacidade from Ambulatórios where nroa = 4) where nroa = 2

Atualização com Consulta Exemplo 4 (supondo MedNovos(código, nome, especialidade)) insert into MedNovos select codm, nome, especialidade from Médicos where idade < 21; Exemplo 5 insert into Pacientes select p.codp+1, f.nome, f.idade, 'Fpolis', f.cpf, 'gripe' from Pacientes p join Funcionários f on f.codf = 1 and p.codp = (select max(codp) from Pacientes)

Exercícios Buscar o que se pede utilizando subconsultas na cláusula FROM: 1) todos os dados das consultas marcadas para a médica Maria 2) código e nome dos pacientes com consulta marcada para horários após às 14 horas 3) nome e cidade dos pacientes que têm consultas marcadas com ortopedistas 4) nome e CPF dos pacientes de Florianópolis que não têm consultas com o médico João Buscar o que se pede utilizando ORDER BY e GROUP BY: 1) os dados de todos os funcionários ordenados pelo salário (decrescente) e pela idade (crescente). Buscar apenas os três primeiros funcionários nesta ordem 2) o nome dos médicos e o número e andar do ambulatório onde eles atendem, ordenado pelo número do ambulatório 3) o nome do médico e o nome dos pacientes com consulta marcada, ordenado pela data e pela hora. Buscar apenas as tuplas 3 a 5, nesta ordem 4) idades dos médicos e o total de médicos com a mesma idade 5) datas e o total de consultas em cada data, para horários após às 12 hs. 6) andares onde existem ambulatórios e a média de capacidade por andar 7) andares onde existem ambulatórios cuja média de capacidade no andar seja >= 40 8) nome dos médicos que possuem mais de uma consulta marcada Realizar as seguintes atualizações: 1) passar para às 19hs todas as consultas marcadas para a paciente Ana 2) excluir os pacientes que não possuem consultas marcadas 3) passar para 28/10/2010 todas as consultas do médico Pedro marcadas antes do meio-dia 4) o ambulatório 4 foi transferido para o mesmo andar do ambulatório 1 e sua capacidade é agora o dobro da capacidade do ambulatório de maior capacidade da clínica 5) o funcionário Caio (codf = 3) tornou-se médico. Sua especialidade é a mesma da médica Maria (codm = 2) e ele vai atender no mesmo ambulatório dela. Inserir Caio na tabela Médicos