Vamos dar uns toques de SQL? V
Criado por Pedro Pinto em 25 de Junho de 2011 | 7 comentários
Por Pedro Gaspar para o PPLWARE
Depois de termos aprendido algumas das funções mais básicas de sql, esta semana vamos aprender a agrupar resultados utilizando o DISTINCT e o GROUP, alem disso também vamos aprender a contar os resultados obtidos com recurso ao COUNT
Para apresentar alguns exemplos utilizei a tabela que temos vindo a usar nas ultimas semanas com os seguintes dados:
Por vezes temos dados repetidos na nossa tabela e queremos que eles apareçam apenas uma vez na listagem, pois esta semana vamos aprender duas formas de o fazer
Começando pelo DISTINCT
Sintaxe de Utilização
SELECT DISTINCT nome_coluna(s) FROM nome_tabela
O DISTINCT é a forma mais simples de o fazer, mas também podemos utilizar o GROUP
Sintaxe de Utilização
SELECT nome_coluna(s) FROM nome_tabela GROUP BY coluna1 [, coluna2, coluna3]
Nada melhor para explicar todo o conceito do que utilizar alguns exemplos:
EXEMPLO1
Objectivo: Apresentar a lista de cores de cabelo
Query utilizando o DISTINCT:
SELECT DISTINCT cor_cabelo FROM `tbl_ppware`
Query utilizando o GROUP:
SELECT cor_cabelo FROM `tbl_ppware` GROUP BY cor_cabelo
Resultado:
Apesar de as duas funções apresentarem o mesmo resultado o seu funcionamento e totalmente diferente, sendo que com o GROUP conseguimos fazer queries muito mais complexas do que com o DISTINCT.
Vamos agora aprender a função COUNT para mais à frente utiliza-la em conjunto com o DISTINCT e o GROUP
O COUNT permite-nos contar o numero de registos de uma determinada coluna.
Sintaxe de utilização
SELECT COUNT(nome_coluna) FROM nome_tabela
EXEMPLO2
Objectivo: Apresentar o numero de registos que estão na tabela tbl_pplware
Query:
SELECT COUNT( * ) FROM `tbl_ppware`
(como não queremos seleccionar nenhum campo em particular podemos utilizar o ‘*’, mas poderíamos ter utilizado um campo qualquer para o efeito)
Resultado:
Para não aparecer ‘COUNT(*)’ no nome do campo da query que acabamos de fazer podemos utilizar o AS de forma a dar o nome que quisermos ao campo, vejamos o mesmo exemplo mas utilizando o AS
Query:
SELECT COUNT( * ) AS total FROM `tbl_ppware`
Resultado:
EXEMPLO3
Objectivo: Apresentar o numero das diferentes cores de cabelo existentes
Query:
SELECT COUNT( DISTINCT cor_cabelo ) AS cores FROM `tbl_ppware`
Resultado:
EXEMPLO4
Agora vamos juntar tudo o que aprendemos até este ponto.
Objectivo: Apresentar as cores de cabelo existentes e ao mesmo tempo mostrar quantas vezes existe cada uma
Query:
SELECT cor_cabelo, COUNT( * ) AS total FROM `tbl_ppware` GROUP BY cor_cabelo
Resultado:
Espero que tenham gostado da explicação sobre sql desta semana, para a semana há mais.