Pesquisas em Bases de Dados com SQL

Tamanho: px
Começar a partir da página:

Download "Pesquisas em Bases de Dados com SQL"

Transcrição

1 Pesquisas em Bases de Dados com SQL Tipicamente, um comando de pesquisa em SQL tem a seguinte estrutura sintática: Select A1,A2,...An from T1,T2,...Tm where Predicado; As palavras Select, from e where são palavras-chave. A1,A2,...An são atributos tipicamente das tabelas. T1,T2,...Tm são tabelas. Predicado contém um conjunto de condições booleanas que resultam numa avaliação de Verdade ou Falso para cada tuplo psquisado determinando a sua inclusão ou não na lista de resultados. O Predicado pode não existir, não havendo por isso restrições. Apresentam-se, em língua natural, as perguntas sobre a BD do Clube de Vídeo que desenhámos e as respectivas queries em SQL que produzem as soluçoes: 1 Quais os nomes dos vários sócios? SQL> Select nome_socio from socio; nome_socio Antonio Silva Maria Luz Helena Cunha Joo Chaves Paulo Sousa Pedro Sousa Miguel Branco Fernando Pret Luis Figo Cristiano Ron Joana Chaves Paula Sousa Pedro Sequeir Manuel Branco Fernanda Pret Luisa Figo Cristiana Ron Joo Rodrigues Jorge Sampaio Mrio Soares

2 2 Quais os nomes e datas de nascimento dos vários sócios (modifique o cabeçalho para a data de nascimento)? SQL> Select nome_socio, data_nsc_socio nasceu em from socio; nasceu em Antonio Silva 12-JUN-40 Maria Luz 12-JUN-42 Helena Cunha 12-JUN-42 João Chaves 21-OCT-62 Pedro Sousa 21-OCT-63 Paulo Sousa 21-DEC-82 Miguel Branco 07-FEB-92 Fernando Preto 13-FEB-91 Luis Figo 02-JUL-73 Cristiano Ronaldo 02-MAR-93 Joana Chaves 22-OCT-62 nasceu em Paula Sousa 21-APR-93 Pedro Sequeira 22-DEC-89 Manuel Branco 06-MAY-92 Fernanda Preto 13-FEB-81 Luisa Figo 02-JUL-73 Cristiana Ronaldo 02-MAR-93 João Rodrigues 22-MAR-73 Jorge Sampaio 12-SEP-33 Mário Soares 12-DEC rows selected. 3 Quais os números de sócio, moradas e telefones dos vários sócios?* SQL> Select num_socio, morada_socio,tlf_socio from socio; NUM_SOCIO MORADA_SOCIO TLF_SOCIO

3 Rua das Flores, nº 5, Lisboa Rua das Árvores, nº 5, Lisboa Rua das Estradas, nº 43, Almada Av. das Palmeiras, nº 430, Mafra Av. das Formigas, nº 30, Estoril Av. das Cigarras, nº 30, Estoril Rua da Escola Velha, nº 13, Parede Rua do Azar, nº 13, Vila Franca Rua do êxito, nº 7, Cova da Piedade Rua das fintas, nº 7, Funchal Av. das Laranjeiras, nº 431, Mafra NUM_SOCIO MORADA_SOCIO TLF_SOCIO Av. dos Rios, nº 300, Linhó Av. dos Cigarros, nº 305, Sintra Rua da Escola, nº 13, Parede Rua da Sorte, nº 113, Setubal Rua do êxito, nº 77, Caparica Rua do futebol, nº 7, Funchal Rua do Electrico, nº 7, Porto Palácio de Belém, nº 7, Lisboa Campo Grande, nº 1, Lisboa rows selected. 4 Quais os números e nomes dos sócios masculinos? SQL> Select num_socio, nome_socio from socio where sexo_socio = M ; NUM_SOCIO Antonio Silva 4 João Chaves 5 Pedro Sousa 6 Paulo Sousa 7 Miguel Branco

4 8 Fernando Preto 9 Luis Figo 10 Cristiano Ronaldo 13 Pedro Sequeira 14 Manuel Branco 18 João Rodrigues NUM_SOCIO Jorge Sampaio 20 Mário Soares 13 rows selected. 5 Quantos sócios tem o video-clube? SQL> select count(*) from socio; COUNT(*) Quantos sócios femininos tem o video-clube (altere o cabeçalho da contagem para número de senhoras )?* SQL> select count(*) as número de senhoras from socio where sexo_socio = F ; número de senhoras Qual a idade de cada sócio (altere o cabeçalho para idade )? SQL> select nome_socio,trunc((sysdate - data_nsc_socio)/365.25) as idade from socio; IDADE Antonio Silva 69 Maria Luz 67 Helena Cunha 67

5 João Chaves 46 Pedro Sousa 45 Paulo Sousa 26 Miguel Branco 17 Fernando Preto 18 Luis Figo 36 Cristiano Ronaldo 16 Joana Chaves 46 IDADE Paula Sousa 16 Pedro Sequeira 19 Manuel Branco 17 Fernanda Preto 28 Luisa Figo 36 Cristiana Ronaldo 16 João Rodrigues 36 Jorge Sampaio 75 Mário Soares rows selected. 8 Qual a idade de cada sócio homem com mais de 40 anos (altere o cabeçalho para idade )? SQL> define idade = trunc((sysdate - data_nsc_socio)/365.25) SQL> select nome_socio,&idade as idade from socio where &idade > 40 and sexo_socio = M ; IDADE Antonio Silva 69 João Chaves 46 Pedro Sousa 45 Jorge Sampaio 75 Mário Soares 85 9 Qual a idade de cada sócio mulher com idade entre 20 e 30 anos?*

6 SQL> select nome_socio,&idade from socio where sexo_socio = F and &idade >= 20 and &idade <=30; % ou então SQL> select nome_socio,&idade from socio where sexo_socio = F and &idade between 20 and 30; TRUNC((SYSDATE-DATA_NSC_SOCIO)/365.25) --- Fernanda Preto Quantos sócios (homens) e quantas sócias existem, ou seja, quantos sócios existem por sexo? SQL> select sexo_socio,count(*) from socio group by sexo_socio; S COUNT(*) F 7 M Qual o sócio mais velho? SQL> select nome_socio from socio where &idade = all(select max(&idade) from socio); Mário Soares 12 Qual o sócio mais novo?* Cristiano Ronaldo Paula Sousa Cristiana Ronaldo 13 Para cada filme, qual o seu nome e o nome do género de que faz parte?

7 SQL> select nome_filme,nome_genero from filme natural inner join genero; %ou SQL> select nome_filme,nome_genero from filme f, genero g where f.cod_genero = g.cod_genero; NOME_FILME NOME_GENERO O padrinho I Acção O padrinho II Acção O padrinho III Acção Nova Iorque fora de horas Cómico O pianista Dramático O piano Romântico O sentido da vida Cómico Libertinagens Poucas Vergonhas Beldades em férias Poucas Vergonhas Sherlock Holmes Policial Crime disse ela Policial NOME_FILME NOME_GENERO Amores a torto e adireito Romântico Os 101 Dalmatas Familiar Shine a Light Musical Amadeus Familiar Taxi driver Familiar 16 rows selected. 14 Para cada filme, qual o seu nome e o nome da editora de que faz parte?* SQL> select nome_filme, nome_editora from filme natural inner join editora NOME_FILME NOME_EDITORA O padrinho I Lusomundo O padrinho II Lusomundo

8 O padrinho III Lusomundo Nova Iorque fora de horas FilmesFilmes O pianista FilmesFilmes O piano Lusomundo O sentido da vida FilmesFilmes Libertinagens FilmesFilmes Beldades em férias FilmesFilmes Sherlock Holmes FilmesFilmes Crime disse ela Lusomundo NOME_FILME NOME_EDITORA Amores a torto e adireito Lusomundo Os 101 Dalmatas FilmesFilmes Shine a Light FilmesFilmes Amadeus FilmesFilmes Taxi driver FilmesFilmes 16 rows selected. 15 Para cada género, quantos filmes existem no vídeo-clube (indique o nome do género)? SQL> select nome_genero,count(*) from filme natural inner join genero group by nome_genero; NOME_GENERO COUNT(*) Acção 3 Cómico 2 Dramático 1 Familiar 3 Musical 1 Policial 2 Poucas Vergonhas 2 Romântico 2 8 rows selected.

9 16 Para cada género, quantos filmes existem no vídeo-clube (indique o nome do género e ordena a lista por contagem de forma descendente)? SQL> select nome_genero,count(*) from filme natural inner join genero group by 2 nome_genero order by count(*) desc; NOME_GENERO COUNT(*) Acção 3 Familiar 3 Cómico 2 Policial 2 Romântico 2 Poucas Vergonhas 2 Dramático 1 Musical 1 8 rows selected. 17 Para cada filmes, quantas cópias existem, alugadas ou não (indique o nome do filme)? * SQL> select nome_filme,count(*) from filme natural inner join copia group by nome_filme; NOME_FILME COUNT(*) Amadeus 3 Amores a torto e adireito 3 Beldades em férias 3 Crime disse ela 3 Libertinagens 3 Nova Iorque fora de horas 3 O padrinho I 3 O padrinho II 3 O padrinho III 3 O pianista 3 O piano 3

10 NOME_FILME COUNT(*) O sentido da vida 3 Os 101 Dalmatas 3 Sherlock Holmes 3 Shine a Light 3 Taxi driver 3 16 rows selected. 18 Quais os nomes dos filmes do género cómico? SQL> select nome_filme from filme natural inner join genero where 2 upper(nome_genero) like 'C_MICO'; NOME_FILME Nova Iorque fora de horas O sentido da vida 19 Quais os géneros para os quais existe no vídeo-clube exactamente 1 filme (indique o nome do género)? SQL> select nome_genero,count(*) from filme natural inner join genero group by 2 nome_genero having count(*) = 1; NOME_GENERO COUNT(*) Dramático 1 Musical 1 20 Quais os géneros para os quais existem no vídeo-clube mais do que 2 filmes (indique o nome do género)?

11 SQL> select nome_genero,count(*) from filme natural inner join genero group by nome_genero having count(*) > 2; NOME_GENERO COUNT(*) Acção 3 Familiar 3 21 Quais os actores do filme O Padrinho III? SQL > select nome_actor from actor natural inner join filme_actor natural inner join filme where nome_filme = O padrinho III ; %ou ainda, para uma pesquisa menos ingrata SQL > select nome_actor from actor natural inner join filme_actor natural inner join filme where upper(nome_filme) like %PADRINHO III ; NOME_ACTOR Al Pacino Marlon Brando 22 Quais os nomes dos actores (não repita nomes) que já entraram em filmes realizados por Copolla (Copolla, embora seja um nome suficientemente discriminante, é apenas um dos nomes deste realizador).? SQL> select distinct nome_actor from actor natural inner join filme_actor natural inner join filme_realizador natural inner join realizador where upper(nome_realizador) like %COP%OL%A ; NOME_ACTOR Al Pacino Antony Hopkins Marlon Brando Mick Jagger

12 Robert de Niro 23 Quais os actores (os nomes sem repetição) que entraram em qualquer dos filmes O Padrinho I, II ou III? (use o operador like combinado com o caracter %). SQL> select distinct nome_actor from actor natural inner join filme_actor natural inner join filme where upper(nome_filme) = 'O PADRINHO I' or upper(nome_filme) = 'O PADRINHO II' or upper(nome_filme) = 'O PADRINHO III'; % ou SQL> select distinct nome_actor from actor natural inner join filme_actor natural inner join filme where upper(nome_filme) in ('O PADRINHO I','O PADRINHO II','O PADRINHO III'); % ou ainda, SQL> select distinct nome_actor from actor natural inner join 2 filme_actor natural inner join filme where upper(nome_filme) 3 like '%PADRINHO%'; NOME_ACTOR Al Pacino Marlon Brando Robert de Niro 24 Quais os actores que já entraram em pelo menos 2 filmes diferentes? SQL> select distinct nome_actor from actor a,filme_actor fa1, filme_actor fa2 where fa1.cod_filme!= fa2.cod_filme and fa1.cod_actor = fa2.cod_actor and fa2.cod_actor = a.cod_actor; NOME_ACTOR Al Pacino Antony Hopkins John Gleese Julia Roberts

13 Marlon Brando Meryl Streep Mick Jagger Robert de Niro 8 rows selected. 25 Qual o outro filme em que um dos actores do filme Shine a Light também entrou?* SQL> select f2.nome_filme from filme f2,filme f1,filme_actor fa1,filme_actor fa2 where f1.cod_filme!= f2.cod_filme and fa1.cod_filme = f1.cod_filme and fa2.cod_filme = f2.cod_filme 2 and fa1.cod_actor = fa2.cod_actor and upper(f1.nome_filme) like 3 'SHINE%LIGHT'; NOME_FILME Amadeus 26 Qual a média de filmes alugados por sócio? SQL> select avg(count(*)) from aluguer group by num_socio; AVG(COUNT(*)) Quais os filmes nunca alugados? SQL> select nome_filme from filme where cod_filme not in (select cod_filme from aluguer); NOME_FILME Amadeus Taxi driver 28 Quais os filmes não alugados este mês? SQL> select nome_filme from filme where cod_filme not in (select cod_filme from aluguer where to_char(data_aluguer, MON ) = to_char(sysdate, MON )); NOME_FILME

14 O pianista Libertinagens O padrinho III Amadeus Amores a torto e adireito Sherlock Holmes O sentido da vida Nova Iorque fora de horas Shine a Light Taxi driver Beldades em férias NOME_FILME Os 101 Dalmatas O padrinho I O padrinho II Crime disse ela 15 rows selected. 29 Quais os filmes de acção não alugados este mês?* SQL> select nome_filme from filme natural inner join genero where upper(nome_genero) like AC O and cod_filme not in (select cod_filme from aluguer where to_char(data_aluguer, MON ) = to_char(sysdate, MON )); NOME_FILME O padrinho III O padrinho I O padrinho II 30 Qual o filme mais alugado desde sempre? SQL> select nome_filme from filme natural inner join aluguer group by nome_filme having count(*) in (select max(count(*)) from aluguer group by cod_filme);

15 SQL> select nome_filme from filme natural inner join aluguer group by nome_filme having count(*) in (select max(count(*)) from aluguer group by cod_filme); NOME_FILME Sherlock Holmes 31 Qual o filme com mais realizadores?* SQL> select nome_filme from filme natural inner join filme_realizador group by nome_filme having count(*) in (select max(count(*)) from filme_realizador group by cod_filme); NOME_FILME Beldades em férias 32 Qual o socio que mais filmes alugou desde sempre?* SQL> select nome_socio from socio natural inner join aluguer group by nome_socio having count(*) in (select max(count(*)) from aluguer group by num_socio); Cristiana Ronaldo 33 Quais os sócios com devoluções em atraso? SQL> select distinct nome_socio from socio natural inner join aluguer natural inner join filme where (data_aluguer + dias_sem_multa_filme) < sysdate and (cod_filme, num_copia, data_aluguer,num_socio) not in (select cod_filme,num_copia,data_aluguer,num_socio from devolucao); Antonio Silva Fernanda Preto Fernando Preto Helena Cunha

16 Joana Chaves João Chaves Luis Figo Manuel Branco Maria Luz Miguel Branco Paula Sousa Paulo Sousa Pedro Sousa 13 rows selected. 34 Quais os sócios e os filmes relativos a devoluções em atraso há mais de um mês?* SQL> select distinct nome_socio,nome_filme from socio natural inner join aluguer natural inner join filme where (data_aluguer + dias_sem_multa_filme) < sysdate - 30 and (cod_filme, num_copia, data_aluguer,num_socio) not in (select cod_filme,num_copia,data_aluguer,num_socio from devolucao); NOME_FILME Antonio Silva O padrinho I Antonio Silva O sentido da vida Fernanda Preto Amores a torto e adireito Fernando Preto Libertinagens Helena Cunha O padrinho II Joana Chaves Sherlock Holmes João Chaves O padrinho III Luis Figo Beldades em férias Luis Figo Sherlock Holmes Manuel Branco Os 101 Dalmatas Maria Luz O padrinho I NOME_FILME

17 Maria Luz Miguel Branco Paula Sousa Paulo Sousa Pedro Sousa O padrinho II O piano Crime disse ela O pianista Nova Iorque fora de horas 35 Quais os sócios que já viram filmes de todos os generos? SQL> select nome_socio from socio natural inner join aluguer natural inner join filme group by nome_socio having count(distinct(cod_genero)) = all (select count(cod_genero) from genero); no rows selected. 36 Quanto deve o sócio número N? SQL> select nvl(sum((least(data_aluguer + dias_sem_multa_filme -1, to_date(to_char(sysdate,'dd-mon-yyyy'),'dd-mon-yyyy')) - data_aluguer + 1) * preco_dia_filme + ( to_date(to_char(sysdate,'dd-mon-yyyy'),'dd-mon-yyyy') - least( data_aluguer + dias_sem_multa_filme -1, to_date(to_char(sysdate,'dd-mon- YYYY'),'DD-MON-YYYY'))) * multa_dia_filme),0) as deve from aluguer natural inner join filme where num_socio = &num_socio and (cod_filme,num_copia,data_aluguer,num_socio)!= all (select cod_filme,num_copia,data_aluguer,num_socio from devolucao); Enter value for num_socio: 1 old 1: select nvl(sum((least(data_aluguer + dias_sem_multa_filme, to_date(to_char(sysdate,'dd-m new 1: select nvl(sum((least(data_aluguer + dias_sem_multa_filme, to_date(to_char(sysdate,'dd-m DEVE Qual a receita (em dinheiro) dos alugueres no mês corrente, até à presente data. Crie as views que achar convenientes)?

18 %Uma view é uma tabela que se cria tipicamente a partir de outras. Tem a vantagem de sentir as alterações feitas naquelas a partir das quais ela foi criada. É usada para vários fins: esconder pormenores que, por vezes não interessam; obter vistas parciais para facilitar a elaboração de pesquisas complexas. Vamos primeiro criar uma view que nos dê o cod_filme, o num_copia, a data_aluguer e o num_socio dos alugueres nao devolvidos. SQL> create or replace view aluguernaodevolvido as select cod_filme as cod_filme,num_copia as num_copia, data_aluguer as data_aluguer,num_socio as num_socio, to_date(to_char(sysdate,'dd-mon-yyyy'),'dd-mon-yyyy') as data_fim from aluguer where (cod_filme,num_copia,data_aluguer,num_socio) not in (select cod_filme,num_copia,data_aluguer,num_socio from devolucao); View created. % Agora vamos criar outra view com campos idênticos mas para os alugueres devolvidos depois do princípio do mês corrente. SQL> Create or replace view aluguerdevolvido as select cod_filme as cod_filme,num_copia as num_copia, data_aluguer as data_aluguer, num_socio as num_socio, data_devolucao as data_fim from aluguer natural inner join devolucao where data_devolucao >= to_date('01-' to_char(sysdate,'mon-yyyy'),'dd-mon-yyyy'); View created. % Agora vamos criar outra view correspondente à união das duas anteriores. SQL> create or replace view aluguerdestemes as select cod_filme as cod_filme,num_copia as num_copia, data_aluguer as data_aluguer,num_socio as num_socio, data_fim as data_fim from aluguernaodevolvido union select cod_filme as cod_filme,num_copia as num_copia, data_aluguer as data_aluguer, num_socio as num_socio, data_fim as data_fim from aluguerdevolvido; % A ultima view determina que dinheiro foi ganho pelo video-clube, o que corresponde ao somatório de cada aluguer, em que para cada aluguer calcula-se a soma do valor sem multa e do valor da multa, tendo em conta o número de dias de cada período. SQL> create or replace view receitadestemes as select sum( (least( greatest(data_aluguer + dias_sem_multa_filme -1, to_date('01-' to_char(sysdate,'mon-yyyy'),'dd-mon-yyyy') ),data_fim) - greatest(data_aluguer,

19 to_date('01-' to_char(sysdate,'mon-yyyy'),'dd-mon-yyyy')) +1) * preco_dia_filme + least(data_fim - least(data_aluguer + dias_sem_multa_filme -1,data_fim) +1, data_fim - to_date('01-' to_char(sysdate,'mon-yyyy'),'dd-mon-yyyy') +1) * multa_dia_filme ) as receitadestemes from aluguerdestemes natural inner join filme; View created. %Vamos pois ler a view produtodestemes. SQL> select * from receitadestemes; RECEITADESTEMES Crie uma view que reporte para cada sócio, o seu nome e o número de multas que ele já pagou. A lista só deve conter sócios com multas não nulas e deve ser ordenada pelo número de multas de forma descendente. SQL> create or replace view sociosnumeromultas as select nome_socio as nome_socio,count(*) as NumeroDeMultas from socio natural inner join aluguer natural inner join devolucao natural inner join filme where data_aluguer + dias_sem_multa_filme < data_devolucao group by nome_socio order by count(*) desc; View created. SQL> select * from sociosnumeromultas; NUMERODEMULTAS Cristiana Ronaldo 7 Antonio Silva 1 Manuel Branco 1

20 39 Em média, qual o género de filme mais tempo conservado pelo sócio em casa? 40 Qual a distribuição de géneros de filme pelas idades (décadas das idades) de sócios? SQL> select trunc(((data_aluguer - data_nsc_socio)/365.25) / 10) * 10 as decada,nome_genero,count(*) from socio natural inner join aluguer natural inner join filme natural inner join genero group by trunc(((data_aluguer - data_nsc_socio)/365.25) / 10) * 10,nome_genero order by trunc(((data_aluguer - data_nsc_socio)/365.25) / 10) * 10,count(*) desc; DECADA NOME_GENERO COUNT(*) Policial 3 10 Cómico 2 10 Musical 2 10 Familiar 2 10 Poucas Vergonhas 2 10 Acção 1 10 Dramático 1 10 Romântico 1 20 Dramático 1 20 Romântico 1 30 Policial 1 DECADA NOME_GENERO COUNT(*) Poucas Vergonhas 1 40 Cómico 2 40 Acção 1 40 Policial 1 60 Acção 4 60 Cómico 1 60 Romântico 1 18 rows selected. 41 Qual a distribuição de generos de filme por cada sexo do sócio?*

21 SQL> select sexo_socio as sexo,nome_genero,count(*) from socio natural inner join aluguer natural inner join filme natural inner join genero group by sexo_socio, nome_genero order by sexo_socio, count(*) desc; S NOME_GENERO COUNT(*) F Acção 4 F Policial 3 F Cómico 2 F Musical 1 F Familiar 1 F Dramático 1 F Romântico 1 F Poucas Vergonhas 1 M Cómico 3 M Acção 2 M Romântico 2 S NOME_GENERO COUNT(*) M Policial 2 M Poucas Vergonhas 2 M Musical 1 M Familiar 1 M Dramático 1 16 rows selected. 42 Qual a distribuição dos géneros de filme alugados, ao longo dos meses? Será que no natal se vêem mais filmes do tipo familiar? E na Primavera?* SQL> select to_char(data_aluguer,'mon') as dia,nome_genero,count(*) from socio natural inner join aluguer natural inner join filme natural inner join genero group by to_char(data_aluguer,'mon'),nome_genero order by to_char(data_aluguer,'mon'),count(*) desc; DIA NOME_GENERO COUNT(*)

22 APR Cómico 2 AUG Cómico 1 FEB Acção 2 JAN Acção 2 JAN Poucas Vergonhas 1 JUL Romântico 2 JUN Musical 1 JUN Dramático 1 MAR Acção 2 MAR Familiar 2 MAR Cómico 2 DIA NOME_GENERO COUNT(*) MAR Musical 1 MAR Policial 1 MAR Dramático 1 MAR Poucas Vergonhas 1 MAY Romântico 1 NOV Policial 2 OCT Policial 1 SEP Policial 1 SEP Poucas Vergonhas 1 20 rows selected. 43 Qual a distribuição de géneros de filmes alugados por dia da semana (sugestão: use a funcão to_char(data, Day ) que lhe dá o dia da semana)?* SQL> select to_char(data_aluguer,'day') as dia,nome_genero,count(*) from socio natural inner join aluguer natural inner join filme natural inner join genero group by to_char(data_aluguer,'day'), nome_genero order by to_char(data_aluguer,'day'), count(*) desc; DIA NOME_GENERO COUNT(*) Friday Acção 1

23 Friday Dramático 1 Monday Cómico 3 Monday Acção 2 Monday Poucas Vergonhas 2 Monday Musical 1 Monday Familiar 1 Monday Policial 1 Monday Dramático 1 Saturday Familiar 1 Sunday Cómico 1 DIA NOME_GENERO COUNT(*) Thursday Acção 1 Thursday Cómico 1 Thursday Policial 1 Thursday Poucas Vergonhas 1 Tuesday Policial 2 Tuesday Romântico 2 Tuesday Acção 1 Tuesday Musical 1 Wednesday Acção 1 Wednesday Policial 1 Wednesday Romântico 1 22 rows selected. SQL> 44 Faça uma view ordenada por nome de sócio, que tenha além disso o seu telefone, para que se lhe possa telefonar porque «hoje» ele faz anos e, por isso mesmo, o vídeo-clube oferecelhe um aluguer gratuitamente. Isto significa que sempre que consulta a view, esta lhe dá os sócios que nesse dia são aniversariantes. Use a função to_char(data, DD-MON )* que lhe dá o dia e o mês da data Data. SQL> create view fazemanoshoje as select nome_socio as nome_socio,tlf_socio as tlf_socio from socio where to_char(sysdate,'dd-mon') = to_char(data_nsc_socio,'dd-mon');

24 View created. SQL> select * from fazemanoshoje; no rows selected 45 Crie uma view que dê a despesa que cada sócio fez no vídeo-clube desde sempre. Considere apenas a despesa efectiva; não o que o cliente deve. SQL> create or replace view despesasocios as select nome_socio as nome_socio,sum( (least(data_devolucao, data_aluguer + dias_sem_multa_filme -1) - data_aluguer + 1) * preco_dia_filme + Greatest(0,(data_devolucao - (data_aluguer + dias_sem_multa_filme -1)))* multa_dia_filme ) as soma from socio natural inner join devolucao natural inner join filme group by nome_socio; View created. SQL> select * from despesasocios; SOMA Antonio Silva 450 Cristiana Ronaldo 227 Pedro Sousa 16 Cristiano Ronaldo 8 46 Crie uma view que apresente a despesa relativa que cada sócio fez no vídeo-clube desde sempre. Por despesa relativa entenda-se a despesa que o sócio fez mas tendo em conta há quanto tempo o é no vídeo-clube. Assuma a primeira data de empréstimo do sócio como a data em que ele se fez sócio. Considere novamente apenas a despesa efectiva; não a que o cliente deve.** %vamos dividir o problema em pequenos problemas.

25 SQL> create or replace view sociodatainicio as select nome_socio as nome_socio,min(data_aluguer) as Data_Inicio_Socio from socio natural inner join aluguer group by nome_socio; View created. SQL> select * from sociodatainicio; DATA_INIC Antonio Silva 01-JAN-08 Cristiana Ronaldo 12-MAR-07 Cristiano Ronaldo 01-OCT-08 Fernanda Preto 20-MAY-08 Fernando Preto 01-JAN-09 Helena Cunha 04-FEB-08 Joana Chaves 13-NOV-08 João Chaves 12-MAR-08 Luis Figo 01-SEP-08 Manuel Branco 22-MAR-08 Maria Luz 03-JAN-08 DATA_INIC Miguel Branco 22-JUL-08 Paula Sousa 23-SEP-08 Paulo Sousa 20-JUN-08 Pedro Sousa 13-APR rows selected. SQL> create or replace view despesarelativasocio as select nome_socio as nome_socio,soma/(sysdate - Data_Inicio_socio) as despesarelativa from sociodatainicio natural inner join despesasocios order by soma/(sysdate - Data_Inicio_socio) desc; View created.

26 SQL> select * from despesarelativasocio; DESPESARELATIVA Antonio Silva Manuel Branco Cristiana Ronaldo Cristiano Ronaldo Pedro Sousa Faça uma lista do top + desta semana (os filmes mais alugados na semana corrente)? (view) 48 Quais os filmes que apresentam maior regularidade de alugueres ao longo do tempo (utilize a funçao de grupo variance(.)? 49 Faça uma lista com o nome do filme, o numero da cópia e o número de vezes que a cópia já foi alugada. Mostre as cópias de cada filme juntas. (view). 50 Faça uma view que dê a situação de cada cópia de filme, ito é: livre ou há quantos dias está alugada e, se em atraso, qual o valor corrente da multa?

27 nome_género

28

29

30 create view copiadisponivel as (select cod_filme,num_copia from copia minus select cod_filme, num_copia from aluguer where (cod_filme,num_copia,data_aluguer,num_socio) in (select cod_filme,num_copia,data_aluguer,num_socio from devolucao)) select nome_genero,count(cod_filme) from genero natural inner join filme where cod_filme in (select cod_filme from copiadisponivel) group by nome_genero Pode ficar também numa view.

FCT-NOVA - Bases de Dados 2016/2017. Ficha 4 - SQL. Considere o seguinte diagrama E-R e o correspondente esquema da Base de Dados:

FCT-NOVA - Bases de Dados 2016/2017. Ficha 4 - SQL. Considere o seguinte diagrama E-R e o correspondente esquema da Base de Dados: FCT-NOVA - Bases de Dados 2016/2017 Ficha 4 - SQL Considere o seguinte diagrama E-R e o correspondente esquema da Base de Dados: Consider the following E-R Diagram and the corresponding Database schema:

Leia mais

FCT-NOVA - Bases de Dados 2016/2017. Ficha 3. Relational Algebra Exercises

FCT-NOVA - Bases de Dados 2016/2017. Ficha 3. Relational Algebra Exercises FCT-NOV - Bases de Dados 2016/2017 Ficha 3 Relational lgebra Exercises roup 1. Considere os seguintes esquemas em que os atributos a bold da chave ou a chave inteira: Consider the following schemas where

Leia mais

SQL. Subqueries. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

SQL. Subqueries. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL Subqueries Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL Subqueries Uma subquery ou nested query, é uma query dentro de outra query. Uma subquery é uma expressão do tipo

Leia mais

SQL. Agregações e agrupamentos. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

SQL. Agregações e agrupamentos. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL Agregações e agrupamentos Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL Agregações As operações de agregação calculam um valor para um conjunto de tuplos. Operadores de

Leia mais

Rápida revisão do Modelo Relacional

Rápida revisão do Modelo Relacional Rápida revisão do Modelo Relacional Conceito de relação Tuplas e atributos Rápida revisão do Modelo Relacional Regras de integridade Entidade: Deve existir uma chave primária com valor único e não-nulo.

Leia mais

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

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. LINGUAGEM SQL SQL CREATE DATABASE MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. SQL CREATE TABLE SQL NOT NULL O valor NOT NULL obriga que o campo contenha sempre

Leia mais

Guião para criar aplicações simples em APEX (parte II) Guide to create simple Apex applications (part II)

Guião para criar aplicações simples em APEX (parte II) Guide to create simple Apex applications (part II) Guião para criar aplicações simples em APEX (parte II) Guide to create simple Apex applications (part II) Vamos criar duas funções: uma que devolve quantos alugueres foram feitos por sócio; outra que calcula

Leia mais

SQL. Índices, views e restrições. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

SQL. Índices, views e restrições. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL Índices, views e restrições Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL Índices Um índice é uma estrutura de dados que acelera o acesso aos tuplos de uma tabela. Os índices

Leia mais

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD. Definição do esquema da base de dados o esquema da BD é composto pelas definições de todas as tabelas da BD. existem outros elementos (views, índices, triggers) que também fazem parte do esquema e que

Leia mais

Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (parte II)

Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (parte II) Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (parte II) Segundo nível / Second level Criar duas funções: uma que dê quantos alugueres foram feitos por um socio.

Leia mais

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

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas Linguagem SQL ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas villas@puc-rio.br SQL Linguagem padrão de acesso tabelas em um banco de dados relacional Permite definir e manipular dados DML

Leia mais

SQL. Prof. Roger Cristhian Gomes

SQL. Prof. Roger Cristhian Gomes SQL Prof. Roger Cristhian Gomes SQL SQL - Structured Query Language Linguagem de acesso e manipulação de sistemas de base de dados computacionais que segue o padrão ANSI Existem diferenças entre as versões

Leia mais

IMPLEMENTAÇÃO DE BANCO DE DADOS

IMPLEMENTAÇÃO DE BANCO DE DADOS IMPLEMENTAÇÃO DE BANCO DE DADOS MODULO 2 LINGUAGEM SQL CONTEÚDO 2. LINGUAGEM SQL 2.1 Linguagens de Definição de Dados (DDL) 2.1.1 Criação de tabela: CREATE 2.1.2 Alteração de Tabela: ALTER 2.1.3 Exclusão

Leia mais

Prof. Fabiano Taguchi

Prof. Fabiano Taguchi BANCO DE DADOS Prof. Fabiano Taguchi http://fabianotaguchi.wordpress.com fabianotaguchi@hotmail.com OPERAÇÕES LÓGICAS AND (E) Avalia as condições e devolve um valor verdadeiro caso ambas condições forem

Leia mais

Laboratório de Banco de Dados II AULA 06 Linguagem SQL (Continuação) Prof. Érick de Souza Carvalho

Laboratório de Banco de Dados II AULA 06 Linguagem SQL (Continuação) Prof. Érick de Souza Carvalho Laboratório de Banco de Dados II AULA 06 Linguagem SQL (Continuação) Prof. Érick de Souza Carvalho 1 Trabalhando com DATAS A Data é armazenada em um formato numérico interno, contendo: Século, ano, mês,

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 02/06/2016 SUMÁRIO SQL DDL DML SQL (STRUCTURED

Leia mais

ANÁLISE E PROJETO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS ANÁLISE E PROJETO DE BANCO DE DADOS SQL FELIPE G. TORRES SQL A linguagem SQL (Struct Query Language) é utilizada como padrão em bancos de dados relacionais. Seu desenvolvimento foi originalmente no início

Leia mais

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 pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; MySQL SQL (Structured Query Languagem ) Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; Inicialmente - Sequel

Leia mais

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

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho Laboratório de Banco de Dados II Aula 04 Prof. Érick de Souza Carvalho 1 SQL (Structured Query Language ) Prof. Érick de Souza Carvalho 2 SQL Structured Query Language - Introdução É uma Linguagem para

Leia mais

Triggers em SQLite. Fernando Lobo. Base de Dados, Universidade do Algarve

Triggers em SQLite. Fernando Lobo. Base de Dados, Universidade do Algarve Triggers em SQLite Fernando Lobo Base de Dados, Universidade do Algarve 1 / 15 Triggers Um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Leia mais

Guião para criar aplicações simples em APEX (parte I) Guide to create simple Apex applications (part I)

Guião para criar aplicações simples em APEX (parte I) Guide to create simple Apex applications (part I) Guião para criar aplicações simples em APEX (parte I) Guide to create simple Apex applications (part I) O guião que se segue usará uma base de dados que decorre do seguinte DER: The following script will

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

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

Banco de Dados II. Aula do dia 10/03. Revisão. SQL Estudado até o dia 03/03/2011 Banco de Dados II Aula do dia 10/03 Revisão SQL Estudado até o dia 03/03/2011 Operadores de Comparação Operador = > >= <

Leia mais

Sumário SELECT + FROM

Sumário SELECT + FROM Sumário 1 Introdução SQL - Perguntas André Restivo Faculdade de Engenharia da Universidade do Porto October 18, 2010 2 3 Operadores de Conjuntos 4 5 Agregações 6 Ordenações e Limites 7 Sub-perguntas 8

Leia mais

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

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language) AULA 8 8.1. OBJETIVO DA AULA Relembrar conceitos e recursos básicos apresentados nas aulas anteriores, dar continuidade nas codificações iniciadas e ainda não finalizadas, explorar acesso a banco de dados

Leia mais

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as: Curso Profissional Técnico de Informática de Gestão 10ºB Prof. Pedro Lopes S i s t e m a s d e I n f o r m a ç ã o M ó d u l o : L i n g u a g e m S Q L T e s t e s u m a t i v o d u r a ç ã o 8 0 m i

Leia mais

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve Triggers e Regras Fernando Lobo Base de Dados, Universidade do Algarve 1 / 21 Triggers Um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

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

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012 SQL - Perguntas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Perguntas February 24, 2012 1 / 46 Sumário 1 Introdução 2 Seleccionar e Filtrar

Leia mais

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais. Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais. A instrução SELECT As consultas a uma base de dados relacional fazem-se

Leia mais

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

SUBCONSULTAS E TIPOS DE JUNÇÃO. Banco de Dados Profa. Ana Paula Wauke SUBCONSULTAS E TIPOS DE JUNÇÃO Banco de Dados Profa. Ana Paula Wauke Operador IN e NOT IN IN: Dados de um conjunto, membros de um conjunto ou uma consulta; Filmes de categoria: Drama, Terror, Suspense

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

Bases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9

Bases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9 BDDAD Bases de Dados Linguagem SQL Comando SELECT Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9 Operador Sumário Introdução Expressão Equivalente em SQL Soluções Tradução Directa de Expressão Algébrica Quantificação

Leia mais

SQL (Tópicos) Structured Query Language

SQL (Tópicos) Structured Query Language SQL (Tópicos) Structured Query Language ISI Introdução aos Sistemas de Informação SQL (Tópicos) 1 SQL: componentes SQL / DDL (Data Definition Language) Permite definir os Esquemas de Relação Permite definir

Leia mais

U.C Fundamentos de Bases de Dados Resolução e Critérios de Correção INSTRUÇÕES:

U.C Fundamentos de Bases de Dados Resolução e Critérios de Correção INSTRUÇÕES: e-fólio B U.C. 21053 Fundamentos de Bases de Dados 2017-2018 Resolução e Critérios de Correção INSTRUÇÕES: 1) O e-fólio é constituído por 5 perguntas. A cotação global é de 5 valores. 2) O e-fólio deve

Leia mais

Otimização de Consultas SQL. André Luiz do Vale Soares Banco de Dados II

Otimização de Consultas SQL. André Luiz do Vale Soares Banco de Dados II Otimização de Consultas SQL André Luiz do Vale Soares Banco de Dados II Fatores que influem na seleção de caminho Formulação da Query Formulação do Predicado Índices Estatísticas Buffers Usuários Concorrentes

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017

Leia mais

Ordenação de tuplos order by

Ordenação de tuplos order by Bases de Dados Elementos da linguagem SQL Ordenação de tuplos order by A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de

Leia mais

Sintaxe do comando SELECT

Sintaxe do comando SELECT Universidade Estadual de Mato Grosso do Sul Ciência da Computação Banco de Dados Prof. Nilton nilton@comp.uems.br Sintaxe do comando SELECT SELECT FROM [WHERE ]

Leia mais

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes Escola Secundária de Albufeira Comandos MySQL (Páginas Web Dinâmicas: PHP e MySQL) (csmnunes@gmail.com) 2009/2010 Criar Base de Dados CREATE DATABASE basededados; Apagar Base de Dados DROP DATABASE basededados;

Leia mais

Exame de Recurso de Base de Dados Universidade do Algarve 03/Fev/2005, (duração: 2 horas)

Exame de Recurso de Base de Dados Universidade do Algarve 03/Fev/2005, (duração: 2 horas) Exame de Recurso de Base de Dados Universidade do Algarve 03/Fev/2005, (duração: 2 horas) Este exame consiste em 16 perguntas de escolha múltipla. Para todas as questões existe apenas 1 resposta correcta.

Leia mais

Preparação. Na página do curso, fazer download do arquivo LabAula.txt; No EasySQL,

Preparação. Na página do curso, fazer download do arquivo LabAula.txt; No EasySQL, Estudo Dirigido Preparação Na página do curso, fazer download do arquivo LabAula.txt; No EasySQL, Criar um arquivo de banco de dados chamado Empresa; Cliqueem carregar script... e selecione esse arquivo;

Leia mais

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 17 Escola Politécnica da Universidade de São Paulo 1 SQL STRUCTURED QUERY LANGUAGE Manipulação de dados operações de modificam o estado das tabelas:

Leia mais

Bases de Dados. DML Data Manipulation Language Parte 2

Bases de Dados. DML Data Manipulation Language Parte 2 Bases de Dados DML Data Manipulation Language Parte 2 Funções de Grupo São funções aplicáveis a conjuntos de linhas de uma tabela À totalidade dos elementos ou A um subconjunto especificado na cláusula

Leia mais

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

Apresentação Modelo e SQL. André Luiz Montevecchi Apresentação Modelo e SQL André Luiz Montevecchi andreluiz@unipacbomdespacho.com.br Conceitos básicos de um modelo de dados Primary Key Foreign Key Padronização Modelo Sist. Odontológico Revisão SQL -

Leia mais

Bases de Dados. DML Data Manipulation Language Parte 1

Bases de Dados. DML Data Manipulation Language Parte 1 Bases de Dados DML Data Manipulation Language Parte 1 DML Data Manipulation Language Diz respeito à manipulação dos dados. É utilizada para: Inserir dados numa tabela(tuplos) Remover dados de uma tabela(tuplos)

Leia mais

Sistemas de Bases de Dados Relacionais Introdução ao SQL. Interrogações diversas sobre a Base de Dados Northwind - Parte II

Sistemas de Bases de Dados Relacionais Introdução ao SQL. Interrogações diversas sobre a Base de Dados Northwind - Parte II SQL (02) Sistemas de Bases de Dados Relacionais Introdução ao SQL Interrogações diversas sobre a Base de Dados Northwind - Parte II /* Introdução ao SQL - Parte II =========================== Folha de

Leia mais

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais Linguagem de Consulta SQL Profa. Carla A. Lima Reis SQL Agenda Introdução Histórico BD relacionais Linguagem SQL Definição de BD Manipulação de BD com SQL Consultas SQL Consultas com várias tabelas Subconsultas

Leia mais

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

Disciplina: Banco de Dados. Edmilson Campos, Prof. MsC.  AULA 10 Disciplina: Banco de Dados AULA 10 Baseado no livro SQL: Curso Prático, do Celso Henrique. Edmilson Campos, Prof. MsC. http://edmilsoncampos.net edmilson.campos@ifrn.edu.br Introdução 2 Quando informado,

Leia mais

Utilizando o Postgres - comandos SQL para a manipulação de dados

Utilizando o Postgres - comandos SQL para a manipulação de dados Utilizando o Postgres - comandos SQL para a manipulação de dados SELECT A declaração SELECT é utilizada para selecionar os dados de um banco de dados. SELECT nome FROM clientes WHERE A cláusula WHERE é

Leia mais

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

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011 Banco de Dados I Aula 16 - Prof. Bruno Moreno 04/11/2011 Plano de Aula O comando DELETE Cláusula CHECK Comparações utilizando NULL Funções agregadas Junções de tabelas em SQL Visões Comando DELETE DELETE

Leia mais

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

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano Restringindo e Ordenando Dados Após o término do Capítulo: Restringir as linhas que são recuperadas por uma consulta

Leia mais

Guião para criar aplicações simples em APEX (parte I) Guide to create simple Apex applications (part I)

Guião para criar aplicações simples em APEX (parte I) Guide to create simple Apex applications (part I) Guião para criar aplicações simples em APEX (parte I) Guide to create simple Apex applications (part I) O guião que se segue usará uma base de dados que decorre do seguinte DER: The following script will

Leia mais

SQL Comandos para Relatórios e Formulários. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Comandos para Relatórios e Formulários. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Comandos para Relatórios e Formulários Laboratório de Bases de Dados SELECT SELECT FROM [ WHERE predicado ] [ GROUP BY ]

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados Laboratório de Banco de Dados Prof. Luiz Antônio Vivacqua C. Meyer (luiz.vcm@gmail.com) Sintaxe Geral SELECT [ALL/DISTINCT] coluna1, coluna2,..., colunan FROM nome_tabela1, nome_tabela2,...,

Leia mais

Introdução ao PostgreSQL

Introdução ao PostgreSQL Introdução ao PostgreSQL Fontes Karine Reis Ferreira karine@dpi.inpe.br Gilberto Câmara gilberto@dpi.inpe.br Gilberto Ribeiro de Queiroz gribeiro@dpi.inpe.br Marcos André Gonçalves - UFMG Parte 3 Aula

Leia mais

Pesquisa básica em tabelas

Pesquisa básica em tabelas Pesquisa básica em tabelas José Antônio da Cunha Disciplina: Banco de Dados 1 Introdução O comando utilizado para realizar pesquisas em tabelas, ou seja, extrair informações do banco de dados, é o SELECT.

Leia mais

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

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO... Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni camila.barioni@facom.ufu.br Bloco B - sala 1B137 SQL DML CONTINUAÇÃO...

Leia mais

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br BANCO DE DADOS -INTRODUÇÃO AO SQL Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br Os comandos SQL podem ser agrupados em 3 classes: DDL Data Definition Language Comandos para a Definição

Leia mais

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

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 SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80

Leia mais

BANCO DE DADOS PARA WEB

BANCO DE DADOS PARA WEB BANCO DE DADOS PARA WEB PROF. FABIANO TAGUCHI http://fabianotaguchi.wordpress.com fabianotaguchi@gmail.com BANCO DE DADOS O banco de dados será de fundamental importância para a criação de páginas dinâmicas,

Leia mais

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

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc. MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza DML Data Manipulation Language Linguagem de Manipulação de Dados Comandos básicos: Insert Update

Leia mais

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

SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT Pós-graduação em Ciência da Computação CCM-202 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni camila.barioni@ufabc.edu.br Bloco B - sala 937 2 quadrimestre

Leia mais

Bases de Dados. DML Data Manipulation Language Parte 3

Bases de Dados. DML Data Manipulation Language Parte 3 Bases de Dados DML Data Manipulation Language Parte 3 Sub-Consultas São consultas contidas na cláusula WHERE ou HAVING de uma outra consulta SQL Essencialmente consiste numa instrução SELECT contida noutra

Leia mais

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

Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima Fundamentos de Programação ORACLE: SQL. 1 Prof. Walter Gima walter_gima@yahoo.com.br ALIAS RELACIONAMENTOS TO_CHAR SYSDATE ROWNUM CONCATENAÇÃO PROCEDURES FUNCTIONS 2 ALIAS Utilizado para facilitar o uso

Leia mais

SQL: Definição de tabelas, Modificações à Base de Dados

SQL: Definição de tabelas, Modificações à Base de Dados SQL: Definição de tabelas, Modificações à Base de Dados Fernando Lobo Base de Dados, Universidade do Algarve 1 / 24 Definição do esquema da base de dados O esquema da BD é composto pelas definições de

Leia mais

Bases de Dados. Junção de relações. Junção de relações

Bases de Dados. Junção de relações. Junção de relações Bases de Dados Junção de relações Junção de relações Tipicamente usadas na cláusula from SQL oferece várias possibilidades condição da junção determina quais são os atributos a comparar tipo de junção

Leia mais

14/9/2009. Banco de Dados

14/9/2009. Banco de Dados Banco de Dados Fernando Fonseca & Ana Carolina Salgado Roteiro Analisar Minimundo Criar Esquema no SGBD Oracle Script criacaotabelas.sql em http://www.cin.ufpe.br/~fdfd/dinter/sql Inserir dados no banco

Leia mais

Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas DI-FCT/UNL 28 de abril de 2018 Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas N. º : Nome: Grupo 1 (7 valores) 1 a) Para cada uma das seguintes

Leia mais

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

Leia mais

Banco de dados. Aula 22 O Comando SELECT. 1 Wedson Quintanilha da Silva -

Banco de dados. Aula 22 O Comando SELECT. 1 Wedson Quintanilha da Silva - Banco de dados Aula 22 O Comando SELECT 1 O comando SELECT O comando SELECT serve para recuperarmos os dados armazenados no banco de dados. Sua estrutura BASICA é: SELECT FROM WHERE campo1, campo2, campo3,

Leia mais

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real.

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real. PROGRAMA ANO LECTIVO: 2005/2006 CURSO: LICENCIATURA BI-ETÁPICA EM INFORMÁTICA ANO: 2.º DISCIPLINA: BASE DE DADOS DOCENTE RESPONSÁVEL PELA REGÊNCIA: Licenciado Lino Oliveira Objectivos Gerais: Aquisição

Leia mais

Cristiano Araujo. Facebook Report. Março. Page 1/18

Cristiano Araujo. Facebook Report. Março. Page 1/18 Cristiano Araujo Facebook Report Março Page 1/18 Cris.ano Araujo Overview Fans Conteúdo Interações Total Fans Total de Posts Total de Interações 5 747 119 110 3 201 480 Crescimento Mês Média de Engajamento

Leia mais

PROGRAMA. Objectivos Gerais :

PROGRAMA. Objectivos Gerais : PROGRAMA ANO LECTIVO : 2005/2006 CURSO : ENGENHARIA MULTIMÉDIA ANO: 2.º DISCIPLINA : SISTEMA DE GESTÃO DE BASE DE DADOS DOCENTE RESPONSÁVEL PELA REGÊNCIA : Licenciado Lino Oliveira Objectivos Gerais :

Leia mais

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL Sistemas de Informação e Bases de Dados 2012/2013 Linguagem SQL Alberto Sardinha Sumário Linguagem SQL 1 Operações com strings operador like Exemplo: nomes dos clientes cuja rua possui a sequência Main

Leia mais

Visão & Visão Materializada. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Visão & Visão Materializada. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Visão & Visão Materializada Laboratório de Bases de Dados Em SQL Visão tabela simples que é derivada de outras tabelas não existe necessariamente em sua forma física: tabela virtual Utilidade forma de

Leia mais

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO Disciplina: Banco de Dados I Professor: Prof. Me. Everton

Leia mais

Álgebra Relacional e SQL

Álgebra Relacional e SQL Álgebra Relacional e SQL Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Álgebra Relacional Maneira teórica de se manipular o banco de dados relacional Linguagem de consulta procedural usuários

Leia mais

Bases de Dados. Álgebra Relacional II Junções, agregações, vistas. P. Serendero,

Bases de Dados. Álgebra Relacional II Junções, agregações, vistas. P. Serendero, Bases de Dados Álgebra Relacional II Junções, agregações, vistas P. Serendero, 2011-13 1 JUNÇÕES OU JOINS em SQL - R S A condição do JOIN é especificada na claúsula ON ou USING,, ou implicitamente

Leia mais

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado Forma geral: SELECT FROM [WHERE ] [GROUP BY ]

Leia mais

SQL - Consultas

SQL - Consultas SQL - Consultas 2008.1 Manipulando Dados CONSULTA SELECT INCLUSÃO INSERT ALTERAÇÃO UPDATE EXCLUSÃO DELETE Consultas SQL Realização de consultas em tabelas SELECT atributo1, atributo2,... FROM tabela 1,

Leia mais

Bancos (Bases) de Dados

Bancos (Bases) de Dados Bancos (Bases) de Dados Aula #8 SQL Prof. Eduardo R. Hruschka * Slides baseados no material elaborado pelas professoras: Cristina D. A. Ciferri Elaine P. M. de Souza SQL (Structured Query Language) Linguagem

Leia mais

Linguagem SQL - Structured Query Language

Linguagem SQL - Structured Query Language Linguagem SQL - Structured Query Language Breve introdução aos comandos: insert delete update select Alguns casos práticos: 1 Marca nome país nºpontos Carro nºcarro peso potência velocidademáxima Piloto

Leia mais

Introdução ao Banco de Dados. Banco de Dados

Introdução ao Banco de Dados. Banco de Dados Introdução ao Banco de Dados Prof. Tiago Garcia de Senna Carneiro UFOP Prof. Técnicas de Programação II 2006 PARTE 1: Conceitos Básicos Banco de Dados SGDB: Sistema Gerenciador de Banco de Dados Definição:

Leia mais

Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (perte I)

Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (perte I) Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (perte I) Entrar em/ go to: bd2:priv.di.fct.unl.pt:8090/apex Depois de entrar verá / after entering you will see: Depois

Leia mais

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011 Banco de Dados I Aula 14 - Prof. Bruno Moreno 11/10/2011 Plano de Aula INSERT UPDATE SELECT-FROM-WHERE Uso de ALIASES SELECT com * DISTINCT Operações de Conjuntos Comparação entre substrings Operadores

Leia mais

A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de Perryridge

A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de Perryridge Bases de Dados Elementos da linguagem SQL Ordenação de tuplos orderby A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de

Leia mais

Importar e Exportar Dados

Importar e Exportar Dados Importar e Exportar Dados Administração de Base de Dados OBJECTIVOS: Definir comandos e formatos Definir restrições (constraints) DEFINIÇÃO DO ESQUEMA DA BASE DE DADOS O esquema da BD e composto pelas

Leia mais

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados SQL (Structured Querie Language) SQL é mais que uma linguagem de interrogação estruturada. Inclui características para a definição da estrutura de dados, para alterar os dados de uma base de dados, e para

Leia mais

Exercícios de MSSQL. Exercício Teste SELECT codigocd, Nome, DataCompra, ValorPago, LocalCompra, Album

Exercícios de MSSQL. Exercício Teste SELECT codigocd, Nome, DataCompra, ValorPago, LocalCompra, Album Exercício Teste 1 Exercícios de MSSQL 1 - SELECT codigocd, Nome, DataCompra, ValorPago, LocalCompra, Album 2 - SELECT TOP (100) PERCENT Nome, DataCompra ORDER BY Nome 3 - SELECT TOP (100) PERCENT Nome,

Leia mais

Views. uma view é uma tabela virtual. não existe fisicamente na BD. é definida à custa de outras tabelas ou views. CREATE VIEW <nome> AS <query>;

Views. uma view é uma tabela virtual. não existe fisicamente na BD. é definida à custa de outras tabelas ou views. CREATE VIEW <nome> AS <query>; Views uma view é uma tabela virtual. não existe fisicamente na BD. é definida à custa de outras tabelas ou views. sintaxe: CREATE VIEW AS ; 1 Exemplo Criar uma view que dá o nome, ano e duração

Leia mais

Linguagem de Consulta - SQL

Linguagem de Consulta - SQL Complementos da Linguagem SQL - Eliminando Tuplas Repetidas Exemplo: Obter o código das editoras que têm livros publicados CodEditora Titulo Publicacao... 04 Banco de Dados 1989 02 Análise 2000 01 XML

Leia mais

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva. Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva. Seja então o conjunto de entidades pessoa, com os atributos bi_pessoa, nome_pessoa e morada_pessoa,

Leia mais

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer SQL BÁSICO Luiz Antônio Vivacqua Corrêa Meyer SQL (Structured Query Language) Início na década de 70 pela IBM com o nome de SEQUEL. Em 1980 o produto mudou seu nome para SQL. American National Standards

Leia mais

Linguagem de Banco de Dados DML Exercícios

Linguagem de Banco de Dados DML Exercícios Linguagem de Banco de Dados DML Exercícios 1. A partir do modelo conceitual abaixo e das descrições das tabelas, crie o modelo físico e implanteo no banco de dados. 2. Acrescente os dados, conforme descrito

Leia mais

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1 SQL Structured Query Language SQL Desenvolvida pela IBM Structured English Query Language Sequel Linguagem de consulta para o sistema R Primeiro

Leia mais