Buscar

Aula 7 - SQL III

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Referência: Prof. Fábio Silvestre
BANCO DE DADOS
� Professor: Luciano Vale, MSc.
Contato: lucianovale@gmail.com
Referência: Prof. Fábio Silvestre
� OsOsOsOs bancosbancosbancosbancos dededede dadosdadosdadosdados implementam,implementam,implementam,implementam, algumasalgumasalgumasalgumas vezes,vezes,vezes,vezes, variaçõesvariaçõesvariaçõesvariações dasdasdasdas funçõesfunçõesfunçõesfunções
matemáticasmatemáticasmatemáticasmatemáticas....
� OOOO SQLSQLSQLSQL ServerServerServerServer 2005200520052005 implementaimplementaimplementaimplementa aaaa funçãofunçãofunçãofunção CEILINGCEILINGCEILINGCEILING.... OOOO OracleOracleOracleOracle 10101010g,g,g,g, aaaa funçãofunçãofunçãofunção
CEILCEILCEILCEIL.... JáJáJáJá oooo DBDBDBDB2222 versãoversãoversãoversão 9999 apresentaapresentaapresentaapresenta ambasambasambasambas....
� OOOO SQLSQLSQLSQL ServerServerServerServer 2005200520052005 nãonãonãonão apresentaapresentaapresentaapresenta aaaa funçãofunçãofunçãofunção MOD,MOD,MOD,MOD, eleeleeleele utilizautilizautilizautiliza apenasapenasapenasapenas oooo
caractercaractercaractercaracter ‘‘‘‘%%%%’’’’ entreentreentreentre osososos valoresvaloresvaloresvalores quequequeque sesesese desejadesejadesejadeseja dividirdividirdividirdividir....
2
Função Descrição
ABS Retorna o valor absoluto do parâmetro passado.
CEILING OU
CEIL
Retorna o menor valor inteiro que seja maior ou igual ao parâmetro.
EXP Retorna o valor exponencial do parâmetro passado.
FLOOR Retorna o maior valor inteiro que seja menor ou igual ao parâmetro passado.
LN Retorna o logaritmo natural do parâmetro passado.
MOD Aceita dois parâmetros. Retorna o resto da divisão inteira do primeiro parâmetro
pelo segundo.
POWER Aceita dois parâmetros. Retorna o valor da potência do primeiro parâmetro pelo
segundo.
SQRT Retorna a raiz quadrada do parâmetro.
 Tabela – Funções Matemáticas
Referência: Prof. Fábio Silvestre
3
Função Descrição
ACOS Retorna o valor do arco cujo cosseno tem o valor do parâmetro passado.
ASIN Retorna o valor do arco cujo seno tem o valor do parâmetro passado.
ATAN Retorna o valor do arco cuja tangente tem o valor do parâmetro passado.
COS Retorna o cosseno do arco cujo valor foi passado como parâmetro.
SIN Retorna o seno do arco cujo valor foi passado como parâmetro.
TAN Retorna a tangente do arco cujo valor foi passado como parâmetro.
 Tabela – Funções Trigonométricas
Referência: Prof. Fábio Silvestre
SELECT COL1,
COL2,
...,
COLN,
FUNCAO1,
...,
FUNCAON
FROM NOME_TABELANOME_TABELANOME_TABELANOME_TABELA
INNERINNERINNERINNER JOINJOINJOINJOIN NOME_TABELANOME_TABELANOME_TABELANOME_TABELA2222
ONONONON NOME_TABELANOME_TABELANOME_TABELANOME_TABELA....COLCOLCOLCOL1111 ==== NOME_TABELANOME_TABELANOME_TABELANOME_TABELA2222....COLCOLCOLCOL1111
WHERE CONDICAO
GROUP BY COL1, COL2, ..., COLN
HAVING EXPRESSAO_LOGICA
ORDER BY COL1, COL2, ..., COLN
4
Referência: Prof. Fábio Silvestre
SELECT LIVRO.TITULO,
ASSUNTO.DESCRICAO
FROM LIVRO
INNER JOIN ASSUNTO
ON LIVRO.COD_ASSUNTO = ASSUNTO.SIGLA
WHERE DATA_LANCAMENTO IS NOT NULL
TITULO DESCRICAO
------------------------------------------------- --------------------
------------
BANCO DE DADOS PARA A WEB BANCO DE DADOS 
PROGRAMANDO EM LINGUAGEM C PROGRAMAÇÃO
PROGRAMANDO EM LINGUAGEM C++ PROGRAMAÇÃO
REDES DE COMPUTADORES REDES 
5
Referência: Prof. Fábio Silvestre
SELECT LIVRO.TITULO,
ASSUNTO.DESCRICAO
FROM LIVRO,
ASSUNTO
WHERE LIVRO.COD_ASSUNTO = ASSUNTO.SIGLA
AND DATA_LANCAMENTO IS NOT NULL
TITULO DESCRICAO
------------------------------------------------- ---------------------------
-----
BANCO DE DADOS PARA A WEB BANCO DE DADOS 
PROGRAMANDO EM LINGUAGEM C PROGRAMAÇÃO
PROGRAMANDO EM LINGUAGEM C++ PROGRAMAÇÃO
REDES DE COMPUTADORES REDES
6
Referência: Prof. Fábio Silvestre
SELECT L.TITULO,
E.NOME,
A.DESCRICAO
FROM LIVRO L
INNER JOIN EDITORA E
ON L.COD_EDITORA = E.CODIGO
INNER JOIN ASSUNTO A
ON L.COD_ASSUNTO = A.SIGLA
TITULO NOME ASSUNTO
------------------------------------------------- --------------------------- --
--------------------------
BANCO DE DADOS PARA A WEB MIRANDELA EDITORA BANCO DE DADOS 
PROGRAMANDO EM LINGUAGEM C MIRANDELA EDITORA PROGRAMAÇÃO
PROGRAMANDO EM LINGUAGEM C++ EDITORA ILHAS TIJUCA PROGRAMAÇÃO
BANCO DE DADOS NA BIOINFORMÁTICA EDITORA VIA-NORTE BANCO DE DADOS
REDES DE COMPUTADORES EDITORA VIA-NORTE REDES 
7
Referência: Prof. Fábio Silvestre
SELECT E.NOME,
L.TITULO 
FROM EDITORA E
INNER JOIN LIVRO L
ON L.COD_EDITORA = E.CODIGO
WHERE LANCAMENTO IS NOT NULL
ORDER BY NOME, TITULO 
NOME TITULO
------------------------------------------------- ---------------------------
---------------------
EDITORA ILHAS TIJUCAS PROGRAMANDO EM LINGUAGEM C++
EDITORA VIA-NORTE REDES DE COMPUTADORES
MIRANDELA EDITORA BANCOS DE DADOS PARA A WEB
MIRANDELA EDITORA PROGRAMANDO EM LINGUAGEM C
8
Referência: Prof. Fábio Silvestre
� Junção Externa à Esquerda
� Junção Externa à Direita
� Junção Externa Completa
9
Referência: Prof. Fábio Silvestre
SELECT COL1,
COL2,
...,
COLN,
FUNCAO1,
...,
FUNCAON
FROM NOME_TABELANOME_TABELANOME_TABELANOME_TABELA
LEFTLEFTLEFTLEFT OUTEROUTEROUTEROUTER JOINJOINJOINJOIN NOME_TABELANOME_TABELANOME_TABELANOME_TABELA2222
ONONONON NOME_TABELANOME_TABELANOME_TABELANOME_TABELA....COLCOLCOLCOL1111 ==== NOME_TABELANOME_TABELANOME_TABELANOME_TABELA2222....COLCOLCOLCOL1111
WHERE CONDICAO
GROUP BY COL1, COL2, ..., COLN
HAVING EXPRESSAO_LOGICA
ORDER BY COL1, COL2, ..., COLN
10
Referência: Prof. Fábio Silvestre
SELECT EDITORA.NOME,
LIVRO.TITULO 
FROM EDITORA E
LEFT OUTER JOIN LIVRO L
ON L.COD_EDITORA = E.CODIGO
ORDER BY NOME, TITULO 
NOME TITULO
------------------------------------------------- -----------------------------------------
-------
EDITORA ILHAS TIJUCAS PROGRAMANDO EM LINGUAGEM C++
EDITORA VIA-NORTE BANCO DE DADOS NA BIOINFORMÁTICA
EDITORA VIA-NORTE REDES DE COMPUTADORES
MARIA JOSÉ EDITORA 
MIRANDELA EDITORA BANCO DE DADOS PARA A WEB
MIRANDELA EDITORA PROGRAMANDO EM LINGUAGEM C
11
Referência: Prof. Fábio Silvestre
SELECT ASSUNTO.DESCRICAO,
LIVRO.TITULO 
FROM ASSUNTO A
LEFT OUTER JOIN LIVRO L
ON A.SIGLA = L.COD_ASSUNTO
ORDER BY DESCRICAO 
DESCRICAO TITULO
------------------------------------------------- -----------------------------------------
-------
BANCO DE DADOS BANCOS DE DADOS PARA A WEB
BANCO DE DADOS BANCO DE DADOS NA BIOINFORMÁTICA
PROGRAMAÇÃO PROGRAMANDO EM LINGUAGEM C
PROGRAMAÇÃO PROGRAMANDO EM LINGUAGEM C++
REDESREDES DE COMPUTADORES
SISTEMAS OPERACIONAIS 
12
Referência: Prof. Fábio Silvestre
SELECT ASSUNTO.DESCRICAO,
LIVRO.TITULO 
FROM ASSUNTO A,
LIVRO L
WHERE A.SIGLA = L.COD_ASSUNTO(+)
ORDER BY DESCRICAO 
DESCRICAO TITULO
------------------------------------------------- ---------------------------
---------------------
BANCO DE DADOS BANCOS DE DADOS PARA A WEB
BANCO DE DADOS BANCO DE DADOS NA BIOINFORMÁTICA
PROGRAMAÇÃO PROGRAMANDO EM LINGUAGEM C
PROGRAMAÇÃO PROGRAMANDO EM LINGUAGEM C++
REDES REDES DE COMPUTADORES
SISTEMAS OPERACIONAIS
13
Referência: Prof. Fábio Silvestre
SELECT COL1,
COL2,
...,
COLN,
FUNCAO1,
...,
FUNCAON
FROM NOME_TABELANOME_TABELANOME_TABELANOME_TABELA
RIGHTRIGHTRIGHTRIGHT OUTEROUTEROUTEROUTER JOINJOINJOINJOIN NOME_TABELANOME_TABELANOME_TABELANOME_TABELA2222
ONONONON NOME_TABELANOME_TABELANOME_TABELANOME_TABELA....COLCOLCOLCOL1111 ==== NOME_TABELANOME_TABELANOME_TABELANOME_TABELA2222....COLCOLCOLCOL1111
WHERE CONDICAO
GROUP BY COL1, COL2, ..., COLN
HAVING EXPRESSAO_LOGICA
ORDER BY COL1, COL2, ..., COLN
14
Referência: Prof. Fábio Silvestre
SELECT ASSUNTO.DESCRICAO,
LIVRO.TITULO 
FROM LIVRO L
RIGHT OUTER JOIN ASSUNTO A
ON A.SIGLA = L.COD_ASSUNTO
ORDER BY DESCRICAO 
DESCRICAO TITULO
------------------------------------------------- -----------------------------------------
-------
BANCO DE DADOS BANCOS DE DADOS PARA A WEB
BANCO DE DADOS BANCO DE DADOS NA BIOINFORMÁTICA
PROGRAMAÇÃO PROGRAMANDO EM LINGUAGEM C
PROGRAMAÇÃO PROGRAMANDO EM LINGUAGEM C++
REDES REDES DE COMPUTADORES
SISTEMAS OPERACIONAIS 
15
Referência: Prof. Fábio Silvestre
SELECT ASSUNTO.DESCRICAO,
LIVRO.TITULO 
FROM ASSUNTO A,
LIVRO L
WHERE L.COD_ASSUNTO(+) = A.SIGLA
ORDER BY DESCRICAO 
DESCRICAO TITULO
------------------------------------------------- ---------------------------
---------------------
BANCO DE DADOS BANCOS DE DADOS PARA A WEB
BANCO DE DADOS BANCO DE DADOS NA BIOINFORMÁTICA
PROGRAMAÇÃO PROGRAMANDO EM LINGUAGEM C
PROGRAMAÇÃO PROGRAMANDO EM LINGUAGEM C++
REDES REDES DE COMPUTADORES
SISTEMAS OPERACIONAIS
16
Referência: Prof. Fábio Silvestre
INSERT INTO LIVRO(CODIGO,
TITULO,
PRECO,
DATA_LANCAMENTO,
COD_ASSUNTO,
COD_EDITORA)
VALUES(6, ‘SISTEMAS OPERACIONAIS’, NULL, NULL, ‘S’, NULL)
17
Referência: Prof. Fábio Silvestre
SELECT COL1,
COL2,
...,
COLN,
FUNCAO1,
...,
FUNCAON
FROM NOME_TABELANOME_TABELANOME_TABELANOME_TABELA
FULLFULLFULLFULL OUTEROUTEROUTEROUTER JOINJOINJOINJOIN NOME_TABELANOME_TABELANOME_TABELANOME_TABELA2222
ONONONON NOME_TABELANOME_TABELANOME_TABELANOME_TABELA....COLCOLCOLCOL1111 ==== NOME_TABELANOME_TABELANOME_TABELANOME_TABELA2222....COLCOLCOLCOL1111
WHERE CONDICAO
GROUP BY COL1, COL2, ..., COLN
HAVING EXPRESSAO_LOGICA
ORDER BY COL1, COL2, ..., COLN
18
Referência: Prof. Fábio Silvestre
SELECT TITULO,
NOME
FROM LIVRO
FULL OUTER JOIN EDITORA
ON EDITORA.CODIGO = LIVRO.COD_EDITORA
ORDER BY TITULO
TITULO NOME
-------------------------------------------------- -----------------
------------------------------
BANCO DE DADOS NA BIOINFORMÁTICA EDITORA VIA-NORTE
BANCO DE DADOS PARA A WEB MIRANDELA EDITORA
PROGRAMANDO EM LINGUAGEM C MIRANDELA EDITORA
PROGRAMANDO EM LINGUAGEM C++ EDITORA ILHAS TIJUCAS
REDES DE COMPUTADORES EDITORA VIA-NORTE
SISTEMAS OPERACIONAIS
MARIA JOSÉ EDITORA
19
Referência: Prof. Fábio Silvestre
SELECT COL1,
COL2,
...,
COLN,
FUNCAO1,
...,
FUNCAON
FROM NOME_TABELANOME_TABELANOME_TABELANOME_TABELA
CROSSCROSSCROSSCROSS JOINJOINJOINJOIN NOME_TABELANOME_TABELANOME_TABELANOME_TABELA2222
WHERE CONDICAO
GROUP BY COL1, COL2, ..., COLN
HAVING EXPRESSAO_LOGICA
ORDER BY COL1, COL2, ..., COLN
20
Referência: Prof. Fábio Silvestre
21
Nome
BRASIL
HOLANDA
MÉXICO
EUA
 Grupo A
Nome
ITÁLIA
ARGENTINA
JAPÃO
CUBA
 Grupo B
SELECT A.NOME AS TIME_A,
B.NOME AS TIME_B
FROM GRUPO_A A CROSS JOIN GRUPO_B B
Referência: Prof. Fábio Silvestre
22
TIME_A TIME_B
--------------- ---------------
BRASIL ITÁLIA
HOLANDA ITÁLIA
MÉXICO ITÁLIA
EUA ITÁLIA
BRASIL ARGENTINA
HOLANDA ARGENTINA
MÉXICO ARGENTINA
EUA ARGENTINA
BRASIL JAPÃO
HOLANDA JAPÃO
MÉXICO JAPÃO
EUA JAPÃO
BRASIL CUBA
HOLANDA CUBA
MÉXICO CUBA
EUA CUBA
Referência: Prof. Fábio Silvestre
23
O Oracle 10g e o SQL Server 2005 implementam o CROSS JOIN. Já o DB2 9 não o
implementa explicitamente.
SELECT A.NOME AS TIME_A,
B.NOME AS TIME_B
FROM GRUPO_A, GRUPO_B
Referência: Prof. Fábio Silvestre
SELECT COL1,
COL2,
...,
COLN
FROM NOME_TABELANOME_TABELANOME_TABELANOME_TABELA
NATURALNATURALNATURALNATURAL [[[[ INNER,INNER,INNER,INNER, LEFTLEFTLEFTLEFT OUTER,OUTER,OUTER,OUTER, RIGTHRIGTHRIGTHRIGTH OUTER,OUTER,OUTER,OUTER, FULLFULLFULLFULL OUTER]OUTER]OUTER]OUTER]
JOINJOINJOINJOIN NOME_TABELANOME_TABELANOME_TABELANOME_TABELA2222
24
Referência: Prof. Fábio Silvestre
25
 CLIENTE
cod_cliente nome_cliente
1 Fábio Silvestre
2 Carlinhos Brown
3 Camila Pitanga
4 Galvão Bueno
 DEPENDENTE
cod_dependente nome_dependente cod_cliente
1 Silvanei Sales 4
2 Emilio Santiago 2
3 Alexandre Pires 1
4 Belo 3
Referência: Prof. Fábio Silvestre
SELECT C.NOME AS NOME_CLIENTE,
D.NOME AS NOME_DEPENDENTE
FROM CLIENTE C
NATURALNATURALNATURALNATURAL INNER JOIN DEPENDENTE D
NOME_CLIENTE NOME_DEPENDENTE
----------------------------------------- ---------------------
----------------------------------
Fábio Silvestre Alexandre Pires
Carlinhos Brown Emílio Santiago
Camila Pitanga Belo
Galvão Bueno Silvanei Sales
26
Referência: Prof. Fábio Silvestre
SELECT COL1,
COL2,
...,
COLN
FROM NOME_TABELANOME_TABELANOME_TABELANOME_TABELA
[[[[ INNER,INNER,INNER,INNER, LEFTLEFTLEFTLEFT OUTER,OUTER,OUTER,OUTER, RIGTHRIGTHRIGTHRIGTH OUTER,OUTER,OUTER,OUTER, FULLFULLFULLFULL OUTER]OUTER]OUTER]OUTER]
JOINJOINJOINJOIN NOME_TABELANOME_TABELANOME_TABELANOME_TABELA2222
USING (COL1, COL2,..., COLN)
ObsObsObsObs.:.:.:.: OOOO OracleOracleOracleOracle 10101010gggg implementaimplementaimplementaimplementa tantotantotantotanto aaaa junçãojunçãojunçãojunção NaturalNaturalNaturalNatural quantoquantoquantoquanto aaaa junçãojunçãojunçãojunção baseadabaseadabaseadabaseada emememem
nomes,nomes,nomes,nomes, aoaoaoao contráriocontráriocontráriocontrário dodododo SQLSQLSQLSQL ServerServerServerServer 2005200520052005 eeee dodododo DBDBDBDB2222 versãoversãoversãoversão 9999....
27
Referência: Prof. Fábio Silvestre
28
 CLIENTE
cod_cliente nome
1 Fábio Silvestre
2 Carlinhos Brown
3 Camila Pitanga
4 Galvão Bueno
 DEPENDENTE
cod_dependente nome cod_cliente
1 Silvanei Sales 4
2 Emilio Santiago 2
3 Alexandre Pires 1
4 Belo 3
Referência: Prof. Fábio Silvestre
SELECT C.NOME AS NOME_CLIENTE,
D.NOME AS NOME_DEPENDENTEFROM CLIENTE C
INNER JOIN DEPENDENTE D
USING (COD_CLIENTE)
NOME_CLIENTE NOME_DEPENDENTE
----------------------------------------- ---------------------
----------------------------------
Fábio Silvestre Alexandre Pires
Carlinhos Brown Emílio Santiago
Camila Pitanga Belo
Galvão Bueno Silvanei Sales
29
Referência: Prof. Fábio Silvestre
SELECT ASSUNTO.DESCRICAO,
COALESCE(LIVRO.TITULO, ‘SEM PUBLICAÇÕES’) AS TITULO
FROM ASSUNTO
LEFT OUTER JOIN LIVRO
ON (ASSUNTO.SIGLA = LIVRO.COD_ASSUNTO)
DESCRICAO TITULO
----------------------------------------- ---------------------
----------------------------------
BANCO DE DADOS BANCOS DE DADOS PARA A WEB
BANCO DE DADOS BANCOS DE DADOS NA
BIOINFORMÁTICA
PROGRAMAÇÃO PROGRAMANDO EM LINGUAGEM C
PROGRAMAÇÃO PROGRAMANDO EM LINGUAGEM C++
REDES REDES DE COMPUTADORES
SISTEMAS OPERACIONAIS SEM PUBLICAÇÕES
30
Referência: Prof. Fábio Silvestre
SELECT ASSUNTO.DESCRICAO,
NVL(LIVRO.TITULO, ‘SEM PUBLICAÇÕES’) AS TITULO
FROM ASSUNTO
LEFT OUTER JOIN LIVRO
ON (ASSUNTO.SIGLA = LIVRO.COD_ASSUNTO)
DESCRICAO TITULO
----------------------------------------- ---------------------
----------------------------------
BANCO DE DADOS BANCOS DE DADOS PARA A WEB
BANCO DE DADOS BANCOS DE DADOS NA
BIOINFORMÁTICA
PROGRAMAÇÃO PROGRAMANDO EM LINGUAGEM C
PROGRAMAÇÃO PROGRAMANDO EM LINGUAGEM C++
REDES REDES DE COMPUTADORES
SISTEMAS OPERACIONAIS SEM PUBLICAÇÕES 31

Continue navegando

Outros materiais