Your SlideShare is downloading. ×
Banco de Dados - Módulo 2 - Aula 4 - Select
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Banco de Dados - Módulo 2 - Aula 4 - Select

2,849

Published on

Curso Técnico Programação SENAI São José - SC …

Curso Técnico Programação SENAI São José - SC
2011 - Segundo Semestre

Disciplina: Banco de Dados I
Professor: Kaléu Caminha

Módulo 2

Aula 4
Realizar consultas SQL em tabelas únicas com seleção de campos, ordenação, agrupamento e condicionais.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,849
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
47
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Módulo 2 – Aula 2 DDL Objetivo da Aula Realizar consultas SQL em tabelas únicas com seleção de campos, ordenação, agrupamento e condicionais. Introdução•Nesta aula exploraremos:◦Consultas SQL com;▪Seleção de campos;▪Ordenação de Resultado;▪Condicionais;▪Agrupamento; Relembrando...•Módulo 1:•Módulo 2:Relembrando com um pouco de SQL.... create table livros ( id int not null primary key auto_increment, nome varchar(80) not null, preco float not null, vendas int default 0, lancamento date not null ); insert into livros (nome, preco, vendas, lancamento) values ("As Brumas de Avalon", 40.00, 1700, "1979-01-01");Atividade 1 Para exercitar, encontre os 8 erros nos comandos "insert" abaixo: insert into livros (nome preco, vendas, lancamento) values (O Senhor dos Anéis, 40.00, 5000, "1995-01-01") insert em livros (nome, preco, vendas, lancamento) ("Ágape", 12, 3500, 2010-01-01); insert into (nome, preco, vendas, lancamento) values ("PHP Profissional", 48.00, 412, "01-01-2006"); Consultas SQL;•É comum que as tabelas tenham alguns milhares deregistros;•Para encontrar informações em grandes quantidades dedados foi desenvolvido o comando Select da linguagemSQL;•Este comando é o mais amplo e mais importantecomando da linguagem SQL;•Sempre que visualiza-se uma lista de qualquer domínio, éprovável que esta tenha sido obtida através de umaconsulta SQL como por exemplo:◦Lista de Cifras para violão no cifraclub;◦Lista de produtos mais vendidos nas americanas.com;◦Lista de últimos livros cadastrados na estante virtual;◦Amigos no Orkut (ou Facebook);◦Seguidores no Twitter, etc...•Exemplo: Tabela de Livros de uma Livraria on-line:Preparando o ambientePara fazermos alguns testes com este comando, importe oarquivo SQL exemplo_select.sql para o mySQL através doPHPMyAdmin;Este arquivo contém a tabela utilizada no exemplo acimacom 20 registros fictícios;Para confirmar que você carregou tudo corretamente,acesse a base de dados: use exemplo_select;e execute o comando Select básico select * from livros;Você deve ver a tabela livros com todos os seus 20registros. Agora, estamos preparados para aprender estevasto comando. Exibindo apenas o necessárioÉ comum não precisarmos visualizar todos os campos deuma tabela. Se quisermos ver apenas o nome e o preçodos livros por exemplo, isso é possível.É particularmente importante visualizar apenas asinformações necessárias em tabelas com grandesvolumes de dados, cuja carga de muitas informaçõespoderia sobrecarregar a memória do computador.Fazemos isso substituindo o * (asterisco) da consulta pelalista de campos que desejamos visualizar, separados porvírgula.Exemplo 1: Apenas nome e preço dos livros select nome, preco from livros;Exemplo 2: Apenas nome e gênero dos livros select nome, genero from livros;Atividade 3 Faça uma consulta visualizando apenas nome e número de vendas de um livro.Erros Comuns•Esquecer a vírgula entre os campos.•Informar o nome de um campo que não existe. Tudo em OrdemAgora que já exibimos apenas os campos necessáriospodemos também ordenar os resultados de forma maisagradável.Podemos ordenar os resultados por alguma informaçãode forma crescente ou decrescente.No select o comando order by é adicionado ao final daexpressão, seguido do nome do campo que vai serordenado e de um termo para informar se a ordenação écrescente (asc) ou decrescente (desc).Exemplo 3: Livros em ordem alfabética select nome from livros order by nome asc;Exemplo 4: Livros mais vendidos select nome, vendas from livros order by vendas desc;Exemplo 5: Livros menos vendidos select nome, vendas from livros order by vendas asc;Colocando LimitesGeralmente, as listas de mais vendidos e últimoslançamentos exibem apenas uma parcial dos resultados.Os últimos 5, 10, 20, etc.Para limitarmos o número de registros que devemaparecer em uma consulta utilizamos a cláusula limit logoapós o order by.Exemplo 6: Os 5 livros mais vendidos podemos executar: select nome, vendas from livros order by vendas desc limit 5;Atividade 4 Consulte os 10 últimos lançamentos da lista.Atividade 5 Consulte os 3 livros mais antigos da lista.Atividade 6 É necessário informar "asc" ou "desc" em todas as consultas? Tente removê-lo de alguma instrução e descubra o que acontece.Erros mais comuns•Escrever orderby ao invés de order by;•informar algum nome de campo que não existe;•Inverter a posição de limit e order by; Mas e se...Também podemos adicionar condicionais às nossasbuscas.Dessa forma, extraímos das tabelas apenas uma porçãodos dados.Livrarias costumam ter todos os seus registros de livrosem apenas uma tabela e apresentar opções de filtragemdestes dados como:•Filtro por preço;•Por data de lançamento;•Por gênero;•Por autor;•etc...A inclusão destas condições é feita através da cláusulawhere seguida das condições que desejamos:Exemplo 7: Filtro por gênero select nome, genero from livros where genero = "ficcao";Exemplo 8: Filtro por preço menor que 20 reais. select nome, preco from livros where preco < 20;Exemplo 9: Livros com data de lançamento maior que 1º de janeiro de 2010. select nome, lancamento from livros where lancamento > "2010-01-01";Realizando BuscasO comando where é o coração dos filtros e buscas embanco de dados. Sempre que você faz uma busca emalgum site, provavelmente ele está adicionando cláusulaswhere à sua instrução select.Para realizar buscas parciais por textos podemos usar ocomando like com o coringa %. O coringa representa"qualquer coisa".Exemplo 10: Selecionar nomes de livros começando com "A". select nome from livros where nome like "A%";Exemplo 11: Selecionar nomes de livros terminando com "Anéis". select nome from livros where nome like "%Anéis";Exemplo 12: Selecionar nomes de livros com a palavra "Amor". select nome from livros where nome like "%Amor%";Várias condições em uma mesma consultaTambém podemos usar operadores lógicos and e or pararealizar buscas por mais de um campo da tabela.Exemplo 13: Todos os livros de ficção por menos de 20 reais. select nome, genero, preco from livros where genero = "ficcao" and preco < 20;Exemplo 14: Todos os livros entre 20 e 40 reais. select nome, preco from livros where preco > 20 and preco < 40;Exemplo 15: Todos os livos com vendas abaixo de 1000 ou acima de 3000. select nome, vendas from livros where vendas < 1000 or vendas > 3000;Juntando tudoLembre-se que a ordenação e o limite só sãoacrescentados ao fim da consulta. A cláusula where deveestar logo após o nome da tabela consultada.Exemplo 16: Três livros entre 20 e 40 reais ordenados do mais barato ao maiscaro. select nome, preco from livros where preco > 20 and preco < 40 order by preco asc;Atividade 7 Busque todos os livros com vendas acima de 2000 ordenados pelo mais vendidoAtividade 8 Busque os 5 últimos lançamentos dos livros de ficção.Atividade 9 Busque todos os livros de não ficção com lançamento em 2011.Atividade 10 Lista os três livros com maior vendagem cujo lançamento é anterior ao ano de 2010. Contando e AgrupandoOutro recurso é a contagem de itens em uma tabela. Nesteexemplo sabemos de antemão que temos 20 registros,porém, a maioria dos sistemas tem alguma forma deinclusão de registros, o que altera de tempos em tempos onúmero de registros em uma tabela.Para calcularmos qualquer coisa utilizamos funções deagrupamento no SQL.A primeira que veremos é a função count().Através dela podemos contar o número de registros emuma tabelaExemplo 17: Número de registros na tabela. select count(*) from livros;Outras funções de agrupamento são:•MAX: retorna o registro com maior valor;•MIN: retorna o registro com menor valor;•SUM: A soma dos itens;Exemplo 18: Uso do MAX select MAX(preco) from livros;Exemplo 19: Uso do MIN select MIN(preco) from livros;Exemplo 20: Uso do AVERAGE select SUM(vendas) from livros;AgrupamentoSozinhas, as funções de agrupamento não são muitoúteis, porém, quando as utilizamos em conjunto comagrupamentos podemos realizar consultas para informardados agregados.A cláusula group by é usada para isto e sempre vem antesdo order by;Exemplo 21: Número de livros por gênero select genero, count(*) from livros group by genero;Exemplo 22: Preço máximo de um livro por gênero select genero, max(preco) from livros group by genero;Atividade 11: Soma das vendas por gêneroAtividade 12: Observe os dados da tabela e tente identificar que outras consultas poderiam ser executadas sobre estes
  • 2. dados. Crie pelo menos uma consulta que não foi realizada nos exemplos anteriores. ConcluindoVimos as principais cláusulas do comando Select.Exploraremos ainda mais este comando nas próximasaulas. A partir de agora, usaremos select em todas asnossas aulas.

×