Imagem por Freepik
SQL, ou Standard Query Language, é uma linguagem de programação para gerenciar e manipular dados dentro de um sistema de gerenciamento de banco de dados relacional (RDBMS). É uma linguagem padrão usada em muitas empresas para ajudar as empresas a acessar dados sem problemas. Por ser amplamente utilizado, o emprego costuma citar o SQL como uma das habilidades necessárias. É por isso que é essencial aprender sobre SQL.
Um dos problemas comuns para quem aprende SQL é entender as consultas, principalmente quando outra pessoa as escreve. Trabalharíamos em equipe nas empresas e muitas vezes precisaríamos ler e compreender suas consultas SQL. Portanto, precisamos praticar a desconstrução das consultas SQL e entendê-las.
Este artigo percorrerá um processo passo a passo para ler e compreender consultas SQL. Como fazemos isso? Vamos entrar no assunto.
A primeira coisa que precisamos fazer ao encontrar uma consulta SQL é entender a intenção geral das consultas SQL. A intenção geral não significa que conhecemos inteiramente a estrutura da consulta; é mais sobre os fluxos gerais.
Devemos entender as consultas SQL padrão para entender a consulta SQL geral. A maioria das consultas SQL começa com o SELECIONE cláusula e siga com o A PARTIR DE cláusula. Continuando a partir daí, as consultas são geralmente seguidas por Cadastre-se, ONDE, GROUP BY, ORDENAR POR, e TENDO cláusulas.
As cláusulas acima são padrão nas consultas SQL que precisamos entender. Para cada cláusula, suas funções são:
- SELECIONE: Quais colunas devem ser retiradas da tabela
- A PARTIR DE: De qual tabela os dados vieram
- Cadastre-se: Combine tabelas com o identificador especificado
- ONDE: Filtro de dados com base na condição
- GROUP BY: Organize os dados com base no valor da coluna e permita que a função de agregação seja executada.
- ORDENAR POR: organize a ordem dos resultados dos dados com base na coluna específica
- TENDO: A condição de filtro para função de agregação que não pode ser especificada com ONDE
Estas são as cláusulas padrão e o que você deve encontrar no início ao compreender a estrutura geral da consulta SQL. Vamos usar o código de exemplo para aprender mais.
SELECT
customers.name,
purchases.product,
SUM(price) as total_price
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
WHERE
purchases.category = 'kitchen'
GROUP BY
customers.name,
purchases.product
HAVING
total_price > 10000
ORDER BY
total_price DESC;
Ao analisar a consulta acima, tente identificar as cláusulas padrão. A cláusula forneceria uma compreensão de quais dados são selecionados (SELECIONE), de onde é (A PARTIR DE e Cadastre-se) e a condição (ONDE, GROUP BY, ORDENAR POR e TENDO).
Por exemplo, a leitura da consulta acima forneceria a você a compreensão do seguinte:
- tentamos obter três tipos diferentes de dados: o Nome de uma tabela chamada clientes, o Produto de uma tabela chamada compras e a agregação de colunas de preços que não identificam de onde é a tabela e com o alias total_price (Informações da cláusula SELECIONE).
- Os dados gerais viriam das tabelas de compras e clientes que se unem usando a coluna cust_id das compras e a coluna id da tabela do cliente (Informações da cláusula A PARTIR DE) e Cadastre-se).
- Selecionaríamos apenas os dados com o valor da coluna de categoria na tabela de compras como 'cozinha' (Informações da cláusula ONDE),
- grupo para a função de agregação com o nome e a coluna do produto que veio da respectiva tabela (Informações da cláusula GROUP BY),
- filtrado também a partir da soma do resultado da função de agregação onde o total_price é maior que 10000 (informações da cláusula TENDO), E
- ordene os dados em ordem decrescente de acordo com total_price (informações da cláusula ORDENAR POR).
Essa é a estrutura geral de consulta SQL que você precisa conhecer e identificar. A partir daí, podemos explorar mais a partir da consulta avançada. Vamos prosseguir para o próximo passo.
Chegaria um momento em que você encontraria uma consulta complexa onde tantos SELECIONE existem cláusulas na mesma consulta. Neste caso, devemos entender o resultado final da consulta ou o final (primeiro) SELECIONE você vê na consulta. A chave é saber qual será o resultado da consulta.
Vamos usar um código mais complexo como o abaixo.
WITH customerspending AS (
SELECT
customers.id,
SUM(purchases.price) as total_spending
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
GROUP BY
customers.id
)
SELECT
c.name,
pd.product,
pd.total_product_price,
cs.total_spending
FROM
(
SELECT
purchases.cust_id,
purchases.product,
SUM(purchases.price) as total_product_price
FROM
purchases
WHERE
purchases.category = 'kitchen'
GROUP BY
purchases.cust_id,
purchases.product
HAVING
SUM(purchases.price) > 10000
) AS pd
JOIN customers c ON pd.cust_id = c.id
JOIN customerspending cs ON c.id = cs.id
ORDER BY
pd.total_product_price DESC;
A consulta parece mais complexa e mais longa agora, mas o foco inicial deve estar no final SELECIONE, que parece tentar produzir o gasto total e o histórico de compras do cliente. Tente avaliar qual quer ser o resultado final e decompô-lo a partir daí.
Temos a visão do resultado que deve vir das consultas. A próxima parte é ver quais são as condições para a final SELECIONE são. A cláusula de condições, incluindo ONDE, GROUP BY, ORDENAR POR e TENDO foram os que controlaram o resultado geral dos dados.
Tente ler e entender as condições da nossa consulta, e entenderemos melhor o resultado final da nossa consulta. Por exemplo, em nossa consulta SQL anterior, a condição final é apenas o ORDENAR POR. Isso significa que o resultado final seria ordenado pelo preço total do produto em ordem decrescente.
Conhecer as condições finais ajudaria você a entender uma parte significativa da consulta e a intenção geral da consulta.
Por último, precisamos entender de onde vêm os dados. Depois de sabermos sobre os dados a serem selecionados e as condições para obtê-los, precisamos entender a fonte. O final Cadastre-se cláusula nos daria uma compreensão de como as tabelas interagem e o fluxo de dados.
Por exemplo, a consulta complexa anterior mostra que realizamos Join duas vezes. Isso significa que usamos pelo menos três fontes de dados para o resultado final. Essas informações seriam necessárias nas etapas posteriores para entender melhor como cada fonte de dados surge, especialmente quando a fonte de dados vem da subconsulta.
Depois de entender como deve ser o resultado final e de onde ele vem, é preciso olhar mais de perto os detalhes. A partir daqui, voltaríamos em cada subconsulta e entenderíamos por que elas estão estruturadas dessa forma.
Contudo, não tentamos observá-los nas estruturas de cima para baixo. Em vez disso, devemos tentar olhar para as subconsultas que estão mais próximas do resultado final e avançar para aquela que está mais distante do resultado final. A partir do exemplo de código acima, devemos tentar entender este código primeiro:
SELECT
purchases.cust_id,
purchases.product,
SUM(purchases.price) as total_product_price
FROM
purchases
WHERE
purchases.category = 'kitchen'
GROUP BY
purchases.cust_id,
purchases.product
HAVING
SUM(purchases.price) > 10000
Então, estamos passando para o código mais distante, que é este:
WITH customerspending AS (
SELECT
customers.id,
SUM(purchases.price) as total_spending
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
GROUP BY
customers.id
)
Podemos rastrear claramente o processo de pensamento do autor quando dividimos cada subconsulta daquela que está mais próxima do resultado até a mais distante.
Tente repetir o processo acima se precisar de ajuda para entender cada subconsulta. Com alguma prática, você terá uma experiência melhor na leitura e compreensão da consulta.
Ler e compreender consultas SQL é uma habilidade que todos deveriam ter na era moderna, já que toda empresa lida com elas. Usando o guia passo a passo a seguir, você terá mais facilidade para entender as consultas SQL complexas. As etapas incluem:
- Compreenda a estrutura geral da consulta SQL
- Entenda a seleção final
- Entenda a Cláusula das Condições Finais
- Entenda a junção final
- Leitura e repetição de ordem inversa
Cornélio Yudha Wijaya é gerente assistente de ciência de dados e redator de dados. Enquanto trabalhava em período integral na Allianz Indonésia, ele adora compartilhar dicas sobre Python e dados nas mídias sociais e na mídia escrita.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoData.Network Gerativa Vertical Ai. Capacite-se. Acesse aqui.
- PlatoAiStream. Inteligência Web3. Conhecimento Amplificado. Acesse aqui.
- PlatãoESG. Carbono Tecnologia Limpa, Energia, Ambiente, Solar, Gestão de resíduos. Acesse aqui.
- PlatoHealth. Inteligência em Biotecnologia e Ensaios Clínicos. Acesse aqui.
- Fonte: https://www.kdnuggets.com/a-step-by-step-guide-to-reading-and-understanding-sql-queries?utm_source=rss&utm_medium=rss&utm_campaign=a-step-by-step-guide-to-reading-and-understanding-sql-queries
- :é
- :não
- :onde
- $UP
- 12
- 17
- 9
- a
- Sobre
- acima
- Acesso
- Segundo
- avançado
- Depois de
- agregação
- Allianz
- permitir
- an
- e
- Outro
- SOMOS
- artigo
- AS
- avaliar
- Assistente
- At
- autor
- baseado
- BE
- Porque
- Começo
- abaixo
- Melhor
- Break
- negócios
- mas a
- by
- chamado
- veio
- CAN
- não podes
- casas
- Categoria
- claramente
- mais próximo
- código
- Coluna
- colunas
- combinar
- como
- vem
- vinda
- comum
- Empresas
- Empresa
- integrações
- condição
- condições
- continuar
- controlado
- cs
- cliente
- Clientes
- dados,
- ciência de dados
- banco de dados
- Ofertas
- detalhes
- diferente
- do
- Não faz
- não
- down
- cada
- emprego
- encontro
- encontrando
- inteiramente
- Era
- especialmente
- essencial
- Cada
- todos
- exemplo
- existir
- vasta experiência
- explorar
- filtro
- final
- Encontre
- Primeiro nome
- fluxo
- Fluxos
- Foco
- seguir
- seguido
- seguinte
- Escolha
- da
- função
- funções
- mais distante
- Geral
- ter
- OFERTE
- Grupo
- guia
- Ter
- ter
- he
- ajudar
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- história
- Como funciona o dobrador de carta de canal
- HTTPS
- ID
- identificador
- identificar
- if
- in
- incluir
- Incluindo
- Indonésia
- INFORMAÇÕES
- do estado inicial,
- introspecção
- em vez disso
- Intenção
- interagir
- para dentro
- IT
- juntar
- jpg
- KDnuggetsGenericName
- Chave
- tipos
- Saber
- língua
- mais tarde
- APRENDER
- aprendizagem
- mínimo
- como
- mais
- olhar
- ama
- principalmente
- de grupos
- Sistema de gestão
- Gerente
- gestão
- manipulando
- muitos
- significar
- significa
- Mídia
- EQUIPAMENTOS
- mais
- a maioria
- mover
- em movimento
- nome
- necessário
- você merece...
- Próximo
- agora
- of
- frequentemente
- on
- ONE
- queridos
- só
- or
- ordem
- A Nossa
- saída
- global
- parte
- Pessoas
- realizada
- pessoa
- platão
- Inteligência de Dados Platão
- PlatãoData
- prática
- anterior
- preço
- problemas
- processo
- produzir
- Produto
- Programação
- fornecer
- compra
- compras
- Python
- consultas
- pergunta
- Leia
- Leitura
- repetir
- aqueles
- resultar
- reverso
- s
- mesmo
- Ciência
- Vejo
- parece
- selecionar
- selecionado
- Partilhar
- rede de apoio social
- Shows
- periodo
- habilidade
- Habilidades
- sem problemas
- So
- Redes Sociais
- meios de comunicação social
- alguns
- fonte
- Fontes
- específico
- especificada
- Passar
- SQL
- padrão
- começo
- Passo
- Passos
- estrutura
- estruturada
- estruturas
- soma
- .
- mesa
- tomado
- Profissionais
- do que
- que
- A
- A fonte
- deles
- Eles
- Lá.
- deles
- coisa
- isto
- pensamento
- três
- Através da
- tempo
- dicas
- para
- juntos
- Total
- pista
- tentar
- Twice
- compreender
- compreensão
- us
- usar
- usava
- utilização
- geralmente
- valor
- via
- andar
- quer
- we
- BEM
- O Quê
- quando
- qual
- enquanto
- porque
- largamente
- precisarão
- de
- dentro
- Atividades:
- trabalhar
- seria
- daria
- escritor
- escrita
- Você
- zefirnet