Uma postagem rápida simples porém considero bastante interessante devido ao conteúdo teórico. Nesta lição o livro foca em explicar como o SQL processa a execução de uma query.
O negócio funciona mais ou menos assim:
Escrevermos querys nesta ordem, certo?
1. SELECT
2. FROM
3. WHERE
4. GROUP BY
5. HAVING
6. ORDER BY
Porém o processamento é feito nesta ordem:
1. FROM
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. ORDER BY
Cada etapa de processamento gera como saída uma tabela virtual que serve de entrada para a próxima etapa. Esta ordem de execução pode explicar algumas coisas para um olhar mais atento. Um exemplo é este abaixo:
Por que o SQL não consegue identificar a coluna ano_nascimento? Justamente pela ordem de processamento que descrevi, ao processar a cláusula WHERE o SQL não tem conhecimento das colunas no SELECT.
Outro item interessante é com relação a seguinte situação:
Diferente da grande parte das linguagens de programação o SQL não processa instrução da esquerda para a direta como lemos. O SQL conceitualmente processa toda a instrução de uma fase de processamento de uma só vez. Digo conceitualmente porque seria impossível executar duas coisas ao mesmo tempo. Sendo assim a coluna ano_nascimento pode não existir ao realizar o processamento da coluna geracao.
Então é isso, por hoje é só! Apesar de serem situações simples, que todo mundo sabe que é errado, achei interessante pois aqui explica-se "o por que".


Nenhum comentário:
Postar um comentário