Executando verificação de segurança...
4

[SQL] Princípios da Structured Query Language

Olá pessoal, estou pensando em escrever sobre SQL aqui no TabNews. Acredito que a maioria aqui saiba fazer uma query simples porém, não tenho certeza se todos entendem mais a fundo o que acontece de baixo dos panos. Meu objetivo é tentar trazer algo mais aprofundado. Espero que gostem.

Ordem de execução

A ordem de execução de uma query é a seguinte:

FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> ORDER BY -> LIMIT

Basicamente funciona em 3 partes.

  1. FILTRANDO LINHAS (1ª fase): consiste na execução das cláusulas FROM, WHERE, GROUP BY e HAVING.

  2. FILTRANDO COLUNAS: consiste na execução da cláusula SELECT.

  3. FILTRANDO LINHAS (2ª fase): consiste na execução das cláusulas DISTINCT, ORDER BY e LIMIT.

Ou seja, parte 1 entende qual tabela quer, quais linhas de cada coluna, qual agrupamento e qual o filtro desse agrupamento. Ja na parte 2 ele vai entender quais colunas você quer no resultado e por fim na parte 3 se quer duplicadas, em qual ordem e o máximo de linhas.

Próximos posts serão para distrinchar cada cláusula. Valeu!

Carregando publicação patrocinada...
1

Boa cara!

O que eu tenho muita curiosidade de saber é tipo:

Como o SQL "varre" as linhas para retornar o que você precisa?

Ele vai de cima pra baixo, de baixo pra cima, ou varre encima e embaixo ao mesmo tempo em direção à linha central para achar o resultado mais rápido?

2

Cara boa pergunta viu, eu sei que cada banco de dados tem seus próprios algoritmos internos de varrimento. Porém não acho é algo amplamente documentado viu. E acredito que em cada situação as engines devem se comportar de maneiras diferentes.

Esse é um ótimo tópico, vou dar uma pesquisada mais a fundo e trazer um post sobre. Oq acha?

1
2

O SQL faz uma leitura sequencial, tendo como princípio que os dados estão ordenados(otimizados) para a sua pesquisa.
Sabe-se que há infinitas pesquisas possíveis, para otimizar isso há o Index do banco de dados.
Caso não esteja ordenado, a eficiência é drasticamente reduzida.
O modo natural do Sql é o "heap", que é uma estrutura um tanto estranha para mim, recomendo a pesquisa.

1
1

Tratar Sql é um tema bastante relevante para todas as áreas da programação e até fora. Recomendo buscar conteúdos que devam somar maior relevância, que são de dúvida geral ou difíceis de encontrar em cursos, vídeos e sites.