prof. rebecca arambasic agbd lpbd pesquisa avançada union / intersect / except aula 1 / 2010
TRANSCRIPT
Prof. Rebecca Arambasic
AGBD
LPBD
Pesquisa avançadaUNION / INTERSECT / EXCEPT
Aula 1 / 2010
Prof. Rebecca Arambasic
AGBD
União de Dados
• O recurso de união de dados baseia-se na união de uma consulta em uma única consulta por meio de múltiplos comandos SELECT.
• Esse recurso é utilizado pelo predicado UNION ou UNION ALL sendo posicionado entre dosi comandos de consulta.
Prof. Rebecca Arambasic
AGBD
• ALL representa todos os registros encontrados na consulta, independente de esses registros serem ou não duplicados.
• Se ALL for omitido o comando UNION assume como default a apresentação de valores únicos caso haja alguma duplicidade.
União de Dados
Prof. Rebecca Arambasic
AGBD
• Quando une duas ou mais tabelas apresenta apenas uma linha de registro caso haja nas tabelas envolvidas duplicidade daquele registro
União de Dados
Prof. Rebecca Arambasic
AGBD
SINTAXE
SELECT col1,col2
FROM tabela1UNION [ALL]SELECT col3, col4FROM tabela2
• Observe que os comando poderão acessar tabelas diferentes e utilizar as mais diversas construçoes da linguagem.
Prof. Rebecca Arambasic
AGBD
REGRAS
– Os comandos devem retornar o mesmo número de colunas
– As colunas correspondentes em cada comando devem possuir os mesmos tipos de dados.
Prof. Rebecca Arambasic
AGBD
EXERCÍCIO
• Listar os títulos dos livros que cujo assunto é “Banco de Dados” ou que foram lançados por editoras que contenham “Silva” no nome.
Prof. Rebecca Arambasic
AGBD
RESPOSTA 1
SELECT TITULOFROM LIVRO
INNER JOIN ASSUNTOON ASSUNTO = SIGLA
WHERE DESCRICAO = ‘BANCO DE DADOS’UNIONSELECT TITULOFROM LIVRO
INNER JOIN EDITORA EON EDITORA = E.CODIGO
WHERE NOME LIKE ‘%MIRANDELA%’
TITULO
BANCO DE DADOS NA BIOINFORMÁTICABANCO DE DADOS PARA WEBPROGRAMANDO EM LINGUAGEM C
Prof. Rebecca Arambasic
AGBD
RESPOSTA 2
SELECT TITULOFROM LIVRO
INNER JOIN ASSUNTOON ASSUNTO = SIGLA
WHERE DESCRICAO = ‘BANCO DE DADOS’UNION ALLSELECT TITULOFROM LIVRO
INNER JOIN EDITORA EON EDITORA = E.CODIGO
WHERE NOME LIKE ‘%MIRANDELA%’
TITULOBANCO DE DADOS PARA WEBBANCO DE DADOS PARA WEBPROGRAMANDO EM LINGUAGEM CBANCO DE DADOS NA BIOINFORMÁTICA
Prof. Rebecca Arambasic
AGBD
INTERSECÇÃO
• Para obtermos a intersecção entre os resultados de comandos SELECT utilizamos o predicado INTERSECT.
• INTERSECT retornará as linhas que estejam preesente nos resultados de todas as cosultas participantes.
• Retornará as linhas que estejam presentes nos resultados de todas as colunas participantes.
Prof. Rebecca Arambasic
AGBD
REGRAS
– Os comandos devem retornar o mesmo número de colunas
– As colunas correspondentes em cada comando devem possuir os mesmos tipos de dados.
Prof. Rebecca Arambasic
AGBD
EXERCÍCIO
• Listar os títulos dos livros cujo assunto é ‘Programando’ e que foram lançados por uma editora que contenha a palavra ‘Mirandela’ no nome, sem repetições.
Prof. Rebecca Arambasic
AGBD
RESPOSTA
SELECT TITULOFROM LIVRO
INNER JOIN ASSUNTOON ASSUNTO = SIGLA
WHERE DESCRICAO = ‘PROGRAMANDO’INTERSECTSELECT TITULOFROM LIVRO
INNER JOIN EDITORA EON EDITORA = E.CODIGO
WHERE NOME LIKE ‘%MIRANDELA%’
TITULO
PROGRAMANDO EM LINGUAGEM C
Prof. Rebecca Arambasic
AGBD
DIFERENÇA
• Também é possível realizar diferenç entre os resultados de comandos SELECT. Neste caso o predicado utilizado é o EXCEPT.
• EXCEPT nã permite linhas repetidas no resultado final.
Prof. Rebecca Arambasic
AGBD
EXERCÍCIO
• Listar os títulos dos livros cujo assunto é ‘Banco de Dados’ e que não foram lançados por editoras que contenham ‘Mirandela’ no nome.
Prof. Rebecca Arambasic
AGBD
RESPOSTA
SELECT TITULOFROM LIVRO
INNER JOIN ASSUNTOON ASSUNTO = SIGLA
WHERE DESCRICAO = ‘PROGRAMANDO’EXCEPTSELECT TITULOFROM LIVRO
INNER JOIN EDITORA EON EDITORA = E.CODIGO
WHERE NOME LIKE ‘%MIRANDELA%’
TITULO
BANCO DE DADOS NA BIOINFORMÁTICA
Prof. Rebecca Arambasic
AGBD
EXERCÍCIO 2
• Listar os títulos dos livros que foram lançados por editoras que contenham ‘Mirandela’ em seu nome e cujo assunto não é ‘Banco de Dados’.
Prof. Rebecca Arambasic
AGBD
RESPOSTA
SELECT TITULOFROM LIVRO
INNER JOIN EDITORA EON EDITORA = E.CODIGO
WHERE NOME LIKE ‘%MIRANDELA%’EXCEPTSELECT TITULOFROM LIVRO
INNER JOIN ASSUNTOON ASSUNTO = SIGLA
WHERE DESCRICAO = ‘BANCO DE DADOS’
TITULO
PROGRAMANDO EM LINGUAGEM C
Prof. Rebecca Arambasic
AGBDPRÁTICA LABORATÓRIOPRÁTICA LABORATÓRIO UNION / INTERSECT / EXCEPT
1. Escreva o comando SQL que retorna uma listagem contendo os nomes das editoras que lançam apenas livros cujo assunto é ‘Banco de Dados’.
Prof. Rebecca Arambasic
AGBD
Referências:
• Livros da Bibliografia.• SQL: guia prático 2ed.– Rogério Luis de C
Costa.Rio de Janeiro: BRASPORT, 2006