Baixe o app para aproveitar ainda mais
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
Compartilhar