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

Documentos relacionados
ÁLGEBRA E CÁLCULO RELACIONAL

Rápida revisão do Modelo Relacional

IMPLEMENTAÇÃO DE BANCO DE DADOS

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

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

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

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

Prof. Fabiano Taguchi

BANCO DE DADOS. SQL Select. Engenharia da Computação. Aula 20. Vamos considerar a tabela EMP para os exemplos a seguir. SELECT colunas FROM tabelas;

SQL - Consultas

ANÁLISE E PROJETO DE BANCO DE DADOS

Roteiro 8 Comandos SQL parte 2: Comandos DDL

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

TRABALHO DE DEPENDÊNCIA ETAPA 2

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

Exercício Aula Passada. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

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

Linguagem de Consulta Estruturada SQL- DML

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

SQL Consultas Básicas

Pesquisas em Tabelas

Manipulando a base de dados

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

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

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:

Pesquisa básica em tabelas

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

Banco de Dados II. Aula do dia 10/03. Revisão. SQL Estudado até o dia 03/03/2011

BCD29008 Banco de dados

Disciplina: Banco de Dados. Edmilson Campos, Prof. MsC. AULA 10

MODELO DE BANCO DE DADOS RELACIONAL

Banco de Dados. Professora: Luciana Faria

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

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

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

OTIMIZAÇÃO DE CONSULTAS - MYSQL. Prof. Antonio Almeida de Barros Junior

Álgebra Relacional e SQL

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

Roteiro 7 Comandos SQL Parte 1: Criação e manutenção de tabelas

Banco de Dados II. Aula 02. Prof. Diemesleno Souza Carvalho

Sumário SELECT + FROM

Manipulação de Dados com SQL

Múltiplas Tabelas. Disciplina de Banco de Dados

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

SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT

SQL. Prof. Roger Cristhian Gomes

SUBCONSULTAS E TIPOS DE JUNÇÃO. Banco de Dados Profa. Ana Paula Wauke

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

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU

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

Projeto de Banco de Dados

Roteiro. SQL: Visões. Suporte de SQL para OLAP SELECT. Detalhando GROUP BY SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Consultas Avançadas Visões

Subconsulta na Cláusula FROM

Proteção para visualização do arquivo:

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

Banco de Dados Relacionais. Eduardo Ribeiro Felipe

MATA60 BANCO DE DADOS Aula 10- Indexação. Prof. Daniela Barreiro Claro

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

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

PostgreSQL Desenvolvedor

GBC043 Sistemas de Banco de Dados

Linguagem de Banco de Dados DML Exercícios

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

BDII SQL Junção Revisão 8

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

ANEXO B Manual básico de SQL

SISTEMAS DE INFORMAÇÃO

Subconsulta na Cláusula FROM

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

Memória de aula Semanas 15 e 16

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

Introdução 20 Diagramas de fluxos de dados 20 O processo de elaboração de DFD 22 Regras práticas para a elaboração de DFD 24 Dicionário de dados 26

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

Transcrição:

Roteiro 10: Consultas com várias tabelas/operadores de busca Objetivos: Criar consultas utilizando várias tabelas Explorar as funcionalidades de selects em várias tabelas utilizando a notação tabela.campo e a cláusula AND Explorar as funcionalidades de selects em várias tabelas utilizando INNER JOIN Fazer uso dos operadores de busca em consultas Neste roteiro são explorados comandos para a realização de consultas em várias tabelas, que são importantes para que seja possível reunir informações onde existam tabelas relacionadas. São explorados os métodos de relacionamento com uso da cláusula AND e também com o uso do operador INNER JOIN (consulta interna), Ferramentas necessárias Navegador, Xampp,Notepad++, console Mysql, Bibliografias de livros da faculdade. Introdução Em um banco de dados relacional é comum trabalhar com tabelas diferentes. As consultas SQL podem ser muito simples até muito complexas, e inicialmente é muito comum utilizar consultas que faça a união entre tabelas diferentes com uso do SELECT FROM em sua forma básica. Selects em várias tabelas A forma básica do comando SELECT é também chamada de mapeamento ou bloco select-from-where, onde: SELECT <lista atributos>: lista de nomes de atributo cujos valores devem ser recuperados pela consulta. FROM <lista tabelas>: lista dos nomes de tabelas (relação) exigidos para processar a consulta. <condição>: expressão condicional (booleana) que identifica as tuplas (linhas) a serem recuperadas pela consulta. Os operadores possíveis de utilizar em consultas são os já vistos no roteiro 08 (http://187.7.106.14/andre/ads/proj_bd/aulas/roteiros/roteiro-8/roteiro-8-ads_proj_bd.pdf) e podem ser combinados de diversas formas para se obter os resultados desejados. Exemplo de select com três tabelas: SELECT CAMPO1, CAMPO2, CAMPO3 FROM TABELA_A, TABELA_B, TABELA_C TABELA_A.CAMPO1 = TABELA_B.CAMPO2 AND TABELA_B.CAMPO10=TABELA_F.CAMPO20 AND TABELA_C.CAMPO2=TABELA_X.CAMPO30 Neste caso o resultado das consultas ficará restrito às condições explicitadas serem TRUE, caso contrário a listagem solicitada não é exibida. Consulta Interna (INNER JOIN) É uma técnica utilizada para realizar a chamada tabela de junção e foi criada para permitir aos usuários especificar uma tabela resultante de uma operação de junção na cláusula FROM de uma consulta. Geralmente é mais fácil de compreender este tipo de consulta do que inserir todas as condições de seleção e junção no, uma vez que fica claro quais critérios estão realizando junções e quais estão realizando critérios de pesquisa. Pág 53

Existem alguns tipos de junção que podem ser utilizados, porém o modo padrão de junção de tabelas é chamado de INNER JOIN, onde a tupla é incluída no resultado somente se uma tupla combinar com os os critérios da outra tabela. Exemplo de utilização de consulta com INNER JOIN SELECT TABELA_A.CAMPO1, TABELA_A.CAMPO2, TABELA_B.CAMPO3 FROM TABELA_A INNER JOIN TABELA_B ON TABELA_A.CAMPO1 = TABELA_B.CAMPOX Dica: A ordem em que são feitas as junções não importa nas consultas, o SQL executa a consulta de forma não procedural, então se for realizar uma consulta onde são realizadas junções com mais de 2 tabelas a ordem das junções não modificará o resultado final. Utilizando Operadores de Busca Os operadores de busca podem ser úteis para que seja possível substituir caracteres ou expressões em uma cláusula SELECT. Veremos os operadores LIKE, o operador % e o operador BETWEEN, que podem auxiliar um SELECT quando for necessário. Utilizando Operadores de Busca Coringa Alias SELECT campos FROM tabela argumentos Comando Função Exemplo LIKE % BETWEEN _ (under line) Utilizada somente com Strings, permite representar combinações possíveis da string que estiver sendo pesquisada. Normalmente realizada para pesquisa linhas onde exista a ocorrência de uma string. Permite representar uma parte da string, é utilizada em conjunto do comando LIKE. Semelhante ao AND, define um intervalo de dados definido que pode ser utilizado em uma consulta. Permite combinar exatamente um caractere desconhecido utilizado para representar qualquer combinação possível na cláusula LIKE. SELECT * FROM dados nome LIKE joão SELECT * FROM funcionario nome LIKE %a AND nome LIKE a% SELECT * FROM funcionario salario BETWEEN 1000 and 5000 SELECT * FROM funcionário nome LIKE R % Os nomes de campos utilizando a notação de ponto (TABELA.CAMPO1) são utilizados para qualificar um nome completo de um campo, e pode ser utilizado sempre que quiser para evitar a ambiguidade nos nomes de campos de tabelas diferentes. Outra forma de resolver este problema é com a implementação de ALIAS (apelidos) que são dados às tabelas quando necessário. Pág 54

Exemplo de utilização de alias: SELECT F.ID, F.NOME, E.NOME FROM FUNCIONARIO AS F, EMPRESA AS E F.idEmpresa = E.id Eliminando duplicatas Como o resultado de consultas é tratado pelo sql como um multiconjunto, desta forma é comum o aparecimento de tuplas duplicadas, que em muitos casos é necessário eliminá-las com uso do operador DISTINCT. Exemplo de utilização de distinct: Selecionando todos valores de salários pagos na empresa SELECT DISTINCT salario FROM funcionario Ordenando consultas Ao realizar consultas onde a listagem das tuplas resultantes seja extenso é interessante ordenar os elementos através de uma das colunas utilizadas, isto pode ser feito através do uso do comando ORDER BY, inserido ao final da seleção dos campos utilizado na consulta. Exemplo de uso do ORDER BY SELECT nome,endereco,cidade,salario FROM funcionário ORDER BY salario Tarefas Utilizando o arquivo disponível em representado pela modelagem abaixo, execute as seguintes tarefas em SQL: 1) Utilizando o arquivo da modelagem disponível em http://187.7.106.14/andre/ads/proj_bd/2012-2/roteiros/roteiro10- inner-operadores/roteiro-6-bdcinemas.mwb, abra a modelagem no workbench e através da aba Inserts do workbench insira os dados para as tabelas ator, filme, sessão, cidade, cinema, cinemapassafilme, participafilme. Um exemplo de alguns dos dados para serem inseridos é demonstrado na figura abaixo: Pág 55

2) Aplique as seguintes modificações no modelo do workbench: a. Remover as cláusulas NOT NULL para todas as tabelas b. Aplicar o Forward Engineer ativando a geração de INSERT S nas tabelas 3) Realize as seguintes consultas utilizando o INNER JOIN para realizar junções entre tabelas diferentes. Caso alguma consulta não possa ser realizada adapte a modelagem para atender aos critérios e execute novamente o Forward Engineer: a. Selecionar todos os filmes juntamente com os seus gêneros, ordenando por gênero b. Selecione todos os filmes com duração entre 100 e 190 minutos c. Selecione todos os filmes onde o ator Chuck Norris e a atriz Julia Roberts estiverem participando d. Selecionar todos os nomes de atores e os nomes dos filmes em que trabalharam ordenando pelo nome dos filmes e. Selecionar todos os filmes que estão passando em todos os cinemas, organizando pelo título do filme f. Selecione os nomes de filmes que comecem com O ou L e que terminem com A. g. Selecione o nome, a duração e nome do cinema que estiver passando os filmes que forem do gênero TERROR e que tenham duração até 120 minutos h. Selecione o nome, o gênero e a duração dos filmes que não tenham o gênero Terror i. Selecionar todos os cinemas com o nome de todas as sessões atualmente em cartaz j. Selecionar todos os filmes em que um determinado ator trabalhou k. Selecione todos os nomes, duração e gênero dos filmes brasileiros. l. Selecionar todos os nomes e gêneros dos filmes que estão em cartaz atualmente m. Selecionar o nome do cinema, título em português, o título original, o gênero, o diretor dos filmes que estão em cartaz na cidade de pelotas Pág 56

n. Selecione o nome, a duração, e o gênero de todos os filmes exceto os filmes de drama e comédia Referências Elmasri, Navathe Sistemas de banco de dados 6ª Edição Introdução a Banco de dados, Osvaldo Kataro Tokai, disponível em http://pt.scribd.com/doc/50780287/bd Apache Friends Home page - http://www.apachefriends.org/pt_br/xampp-windows.html#2287 Notepad++ Home page - http://notepad-plus-plus.org/ Pág 57