Uma base de dados relacional (dados tabulares) é uma das bases de dados mais utilizadas em projetos de Ciência de Dados.
E SQL é uma das linguagens de programação mais utilizadas para manipulação de dados relacionais.
A Linguagem SQL é usada ativamente por Analistas de Dados e Cientistas de Dados para tarefas de extração de dados e manipulação de dados.
Neste artigo você encontra as Top 8 Operações SQL Para Manipulação de Dados.
1- Limit: Observar as linhas lhe dará uma ideia dos valores dentro das diferentes colunas da tabela de dados. Buscar e ver “todas” as linhas da tabela de dados é uma operação cara, leva tempo e consome recursos computacionais. Portanto, a funcionalidade de buscar as primeiras linhas da tabela de dados se torna muito útil. A cláusula Limit é usada para buscar as primeiras linhas de uma tabela. Por exemplo, queremos buscar as 5 primeiras linhas da tabela tb_pedidos (em maiúsculo é instrução SQL):
SELECT * FROM tb_pedidos Limit 5;
2- Agregação: A operação de agregação é usada para encontrar a soma, contagem, min, max, etc… dos valores de uma coluna. Por exemplo, se quisermos encontrar a quantidade total (ou unidades) de produtos vendidos, podemos aplicar a função SUM() à coluna quantidade. Da mesma forma, também podemos encontrar o número máximo de unidades vendidas para um produto aplicando a função MAX() na coluna de quantidade, como nos exemplos abaixo:
SELECT SUM(quantidade) FROM tb_pedidos;
SELECT MAX(quantidade) FROM tb_pedidos;
3- Where: A cláusula Where é usada para filtrar as linhas com base em alguns valores de coluna. Por exemplo, imagine se quisermos ver a quantidade total vendida correspondente ao id do produto 129, podemos usar a cláusula Where na coluna de id do produto:
SELECT id_produto, SUM(quantidade) FROM tb_pedidos WHERE id_produto = 129;
4- Groupby: Group by é usado para localizar as agregações/grupos no nível da coluna. Group by é usado junto com as agregações como soma, min, max, contagem, etc. Por exemplo, para encontrar o total de unidades vendidas para todos os produtos, podemos agrupar por id do produto e encontrar a soma da quantidade:
SELECT id_produto, SUM(quantidade) FROM tb_pedidos GROUP BY id_produto;
5- Having: A cláusula Having é usada para aplicar um filtro nas colunas/valores agregados. Por exemplo, imagine que queremos encontrar os produtos com uma quantidade total vendida superior a 745 unidades, podemos usar a cláusula Having para aplicar o filtro na quantidade agregada:
SELECT id_produto, SUM(quantidade)
FROM tb_pedidos
GROUP BY id_produto
HAVING SUM(quantidade) > 745;
Obs: Where é usado para aplicar um filtro nas colunas já existentes de uma tabela, enquanto que Having é usado para aplicar um filtro nos valores agregados de uma coluna.
6- Order by: A cláusula Order by é usada para classificar os valores de uma coluna em ordem crescente (por padrão) ou decrescente. Por exemplo, podemos buscar o total de unidades vendidas por produto e depois ordenar por esse total de forma decrescente, como demonstrado abaixo:
SELECT id_produto, SUM(quantidade)
FROM tb_pedidos
GROUP BY id_produto
ORDER BY SUM(quantidade) DESC;
7- Join: Join é usado para combinar as informações presentes em 2 tabelas de dados em uma única tabela. Imagine se quisermos obter as informações sobre os produtos, podemos juntar a tabela de detalhes do pedido com a tabela de produtos para obter as informações do produto. Para juntar 2 tabelas de dados, precisamos juntá-las pela chave primária (ou colunas) que são comuns em ambas as tabelas. No exemplo abaixo, estamos aplicando a junção interna (INNER JOIN) entre as duas tabelas usando a coluna id_produto:
SELECT a.*, b.*
FROM tb_pedidos as a
INNER JOIN
tb_produtos as b
ON a.id_produto = b.id_produto;
8- Window: A função Window é usada para aplicar funções em um subconjunto/janela de dados. Por exemplo, para encontrar os 3 produtos mais vendidos em cada categoria, podemos particionar nossos dados por coluna de categoria (partição por id_categoria), classificá-los por quantidade total (de alta a baixa), anexar o número da linha a cada linha e filtrar as 3 primeiras linhas (como mostrado no código abaixo). Esta é uma das funções mais avançadas em SQL.
SELECT *
FROM
(SELECT c.*, ROW_NUMBER() OVER(PARTITION BY c.id_categoria ORDER BY c.tot_qtd DESC) AS ‘Row_Number’
FROM (SELECT b.id_categoria, a.id_produto, SUM(a.quantidade) as ‘tot_qtd’
FROM tb_pedidos as a
INNER JOIN
tb_produtos as b
ON a.id_produto = b.id_produto
GROUP BY b.id_categoria, a.id_produto)c )d
WHERE Row_Number <= 3;
Há muitas outras operações em SQL que são úteis no dia a dia. Recomendo este excelente material em português se quiser conhecer mais: SQL Para Data Science.
David Matos
Referências: