consultas sql com mais de uma 01 tabela - ime.usp.bradao/cslccrt.pdf · select t.nome, t.sobrenome...

19
Consultas SQL com mais de uma 01 tabela

Upload: hoangnhu

Post on 30-Nov-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Consultas SQLcom mais de uma 01 tabela

SELECT MARCAS.marca, MARCAS.modelo, CARROS.cor, CARROS.valorFROM MARCAS, CARROSWHERE MARCAS.codMARCA = CARROS.codMARCA AND CARROS.valor betweem 20.000 and 30.000

Mostrar a marca, modelo, cor e valor de todos os carros com valores entre 20.000 e 30.000

Mostrar a marca, modelo, cor e valor de todos os carros com valores entre 20.000 e 30.000

SELECT MARCAS.marca, MARCAS.modelo, CARROS.cor, CARROS.valorFROM MARCAS, CARROSWHERE MARCAS.codMARCA = CARROS.codMARCA AND CARROS.valor betweem 20.000 and 30.000

Mostrar a marca, origem, modelo e ano de fabricação de todos os carros com marcas americanas

SELECT MARCAS.marca, MARCAS.origem, CARROS.modelo, CARROS.anoFROM MARCAS, CARROSWHERE MARCAS.codMARCA = CARROS.codMARCA AND MARCAS.origem = ‘americana’

Mostrar a marca, origem, modelo e ano de fabricação de todos os carros com marcas americanas

SELECT MARCAS.marca, MARCAS.origem, CARROS.modelo, CARROS.anoFROM MARCAS, CARROSWHERE MARCAS.codMARCA = CARROS.codMARCA AND MARCAS.origem = ‘americana’

1) Mostrar a marca e a cor de todos os carros de origem alemã

2) Mostrar o modelo e o ano de fabricação de todos os carros da marca Volkswagem

3) Mostrar a marca e a origem de todos de todos os carros cujo valor está entre 14.000 e 20.000

Cálculo Relacional de Tuplas

Introdução

Permite a descrição da consulta desejada semespecificar os procedimentos para obtenção dasinformações

Introdução

O cálculo é uma linguagem de consulta formalonde escrevemos uma expressão declarativapara especificar uma solicitação de recuperaçãoA expressão especifica O QUE será recuperado( em vez de COMO será recuperado)

Introdução

Existem consultas em linguagens deconsulta que não podem ser expressas nocalculo relacional

Cálculo Relacional de Tuplas

Expressão geral: { t | COND(t) }

t= variável de tuplaCOND(t) = é uma expressão condicional envolvendo t

Resultado da consulta = conjunto de todas as tuplas t quesatisfazem COND(t)

Exemplo: encontrar todas as tuplas de empregado com salárioacima de 1200,00

Notação Navathe: { t | empregado(t) AND t.salario > 1200}

Leitura: o conjunto de todas as tuplas t tal que exista uma tupla tna relação empregado para a qual o valor no atributo salario sejamaior que 1200 reais

Cálculo Relacional de Tuplas

Na consulta { t | empregado(t) AND t.salario > 1200}

Cada tupla de EMPREGADO que satisfaça a condição desalario>1200 é recuperada

t.salario referencia o atributo salario da variavel de tupla t(similar ao SQL)

Cálculo Relacional de Tuplas

Na consulta { t | empregado(t) AND t.salario > 1200}

Para recuperar apenas alguns atributos ao invés da tuplatoda:

{ t.nome, t.sobrenome | empregado(t) AND t.salario > 1200}

Equivale a consulta SQL:SELECT t.nome, t.sobrenome

FROM empregado t WHERE t.salario>1200

Atributo relação condição

O que é preciso informar numa expressão de cálculo de tuplas?

Uma relação R(t)Equivalente a cláusula FROM do SQL

Uma condição para selecionar tuplasEquivalente a cláusula WHERE do SQLA condição é após o símbolo |

Conjunto de atributos a ser recuperadoEquivalente ao SELECT do SQL

SELECT FROM WHERE

{ t.nome, t.sobrenome | empregado(t) AND t.salario > 1200}

condição

Expressões e Fórmulas

Expressão GERAL:{t1.A1, t2.A2, ..., tn.An, | COND (t1, t2,..., tn, tn+1, tn+2,..., tn+m)}

Os t são variáveis de tuplasOs A são um atributo da relação

A relação faz parte da condição

Uma condição pode ter operadores de conjunto <, >, <=, >=, <>, do tipot>c, onde c é uma constante

Expressões e Fórmulas

Expressão GERAL:{t1.A1, t2.A2, ..., tn.An, | COND (t1, t2,..., tn, tn+1, tn+2,..., tn+m)}

Variável livreassume valores de tuplas de uma ou mais relaçõesconstitui a resposta da consultaAparece do lado esquerdo da |

PredicadoEXPRESSÃO LÓGICA que, se verdadeira para determinadosvalores das variáveis livres retorna os valores destas variáveisna resposta da consulta

variáveis livres predicado aplicado às variáveis livres

Exemplo

Q1: recupere a data de nascimento e oendereço dos empregados Joao Oliveira

{ t.dataNasc, t.endereco | empregado(t) AND t.nome=´Joao´ AND t.sobrenome=´Oliveira´}

Exercícios – Dado o esquema relacional

Ambulatório (númeroA, andar, capacidade)Médico (CRM, nome, idade, cidade, especialidade, #númeroA)Paciente (RG, nome, idade, cidade, doença)Consulta (#CRM, #RG, data, hora)Funcionário (RG, nome, idade, cidade, salário)

1) buscar os dados dos pacientes que estão com sarampo2) buscar os dados dos médicos ortopedistas com mais de

40 anos3) buscar os dados das consultas, exceto aquelas

marcadas para os médicos com CRM 46 e 794) buscar o número dos ambulatórios do quarto andar que

tenham capacidade igual a 50 ou tenham númerosuperior a 10