SQL: Sintaxe, Funções de Agrupamento e Tipos de JOIN
Sintaxe Básica da Cláusula SELECT
SELECT [predicado] { * | tabela.* | [tabela.]campo1 [AS alias1] [, [tabela.]campo2 [AS alias2] [, ...]]}
FROM expressao_tabela
WHERE condição
GROUP BY campo(s)
HAVING condição
ORDER BY campo(s)
Exemplo de Uso de GROUP BY e HAVING
SELECT setor_id, COUNT(*) AS "Total de funcionários no setor" FROM funcionarios WHERE setor_id IS NOT NULL GROUP BY setor_id HAVING COUNT(*) > 4;
Cláusulas e Predicados Comuns
- IN: Utilizado em condições com valores fixos.
- DISTINCT: Retorna valores únicos (elimina replicação).
- TOP: Limita a quantidade de registros retornados.
Funções de Agrupamento (Agregações)
- COUNT: Conta o número de linhas.
- SUM: Soma os valores.
- AVG: Calcula a média.
- MAX: Retorna o valor máximo.
- MIN: Retorna o valor mínimo.
Regras e Boas Práticas para GROUP BY e HAVING
- Se funções de agregação forem incluídas na cláusula
SELECT,GROUP BYcalculará um valor resumido para cada grupo. São conhecidas como agregações de vetor. - Linhas que não atendem às condições na cláusula
WHEREsão removidas antes que qualquer operação de agrupamento seja executada. - A cláusula
HAVINGé usada com a cláusulaGROUP BYpara filtrar grupos no conjunto de resultados. - A cláusula
GROUP BYnão ordena o conjunto de resultados. Use a cláusulaORDER BYpara ordenar o conjunto de resultados. - Se uma coluna de agrupamento contiver valores nulos, todos os valores nulos serão considerados iguais e colocados em um único grupo.
- Não é possível usar
GROUP BYcom um alias para substituir um nome de coluna na cláusulaAS, a menos que o alias substitua um nome de coluna em uma tabela derivada na cláusulaFROM. GROUP BYouHAVINGnão podem ser usados diretamente em colunas dos tipos ntext, text ou image. Essas colunas podem ser usadas como argumentos em funções que retornam um valor de outro tipo de dados, comoSUBSTRING()eCAST().- Melhor Prática: Não utilize
SELECT *. Especifique os campos, pois você deverá especificá-los na cláusulaGROUP BY.
Tipos de JOIN (Junções de Tabelas)
- JOIN
- Junção de tabelas.
- INNER JOIN
- Junção interna (padrão) das tabelas.
- OUTER JOIN
- Junção externa.
- RIGHT JOIN
- Junção externa à direita. Todos os valores não preenchidos à esquerda serão preenchidos com NULL.
- LEFT JOIN
- Junção externa à esquerda. Todos os valores não preenchidos à direita serão preenchidos com NULL.
- FULL OUTER JOIN
- Junção externa total.
- SELF JOIN
- Auto junção (junção de uma tabela consigo mesma).
Estratégias de E-commerce e Dilemas Éticos
Classificação de E-commerce
- B2C: Comércio de produtos da empresa diretamente aos consumidores.
- B2B: Comércio de bens e serviços entre empresas.
- C2C: Comércio de bens e serviços entre consumidores.
Estratégias e Ferramentas de E-commerce
Classificação de Conexão
M-commerce e Wire (com fios).
Estratégias
Desafio: Personalizar produtos e serviços para milhões de usuários. Os sites fornecem informações de rotina e comportamento do usuário, o que ajuda na oferta do e-commerce. Exemplos: Land's End (vestuário), Visaprint (artigos gráficos).
Ferramentas de Rastreamento e Personalização
- Rastreamento de cliques.
- Armazenamento de sites visitados e tempo de permanência.
O rastreamento possibilita a oferta de páginas exclusivas. A personalização pode modificar as páginas apresentadas a cada cliente.
Filtragem
Técnica de personalização que compara informações de comportamento do cliente em um site com outros clientes de interesses semelhantes.
Teoria da Cauda Longa (Long Tail)
Um produto pode ser sazonal em uma certa época, mas pode ter alta demanda depois de um tempo.
Dilemas Éticos e Morais
Sistema de Rastreamento
Uso de GPS nos veículos para monitorá-los.
Dilema Ético do Rastreamento (Lados)
- Positivos: Segurança da pessoa e do equipamento.
- Negativos: Infringir a lei ou tirar proveito do acesso à privacidade.