prof. rebecca arambasic agbd lpbd pesquisa avançada union / intersect / except aula 1 / 2010

Post on 07-Apr-2016

217 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

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

top related