A elaboração de queries SQL costuma seguir um padrão de desenvolvimento bastante pobre e desleixado, normalmente realizado por profissionais de banco de dados que tentam entender as necessidades do negócio, elas tendem a se tornar um código espaguete rapidamente e uma sucessão de sub queries aninhadas e, pior sem comentários e muito menos documentação. E quem chegar depois , para ajustar vai se deparar com um código SQL labirintica de subqueries aninhadas…

Se já aconteceu com você, provavelmente entende a necessidade de simplificar o código e criar padrões que aumentem a legibilidade e mantenibilidade.

Voccabuário básico de SQL que usaremos:

Subquery: é uma consulta SQL embutida dentro de outra. A consulta mais interna passa os resultados para a mais externa. Por exemplo, na query a cláusula WHERE a seguir envolve uma subquery obtendo a média de preços a partir da tabela Production.Product:

CTE, ou Common Table Expressions, funciona como uma tabela temporária que fica disponível para realizar novas queries. Ela é definida pelo uso do with nome_cte as (query). Para acessar seu resultado precisamos fazer um select dessa CTE (como no print abaixo).

É possível obter algum ganho de performance ou recursividade, mas principalmente, a utilização de CTEs é uma grande solução para escrever consultas mais limpas e legíveis.

A utlização de CTEs nos permite segmentar nossa lógica em partes menores e mais gerenciáveis, o que não só torna nosso código mais fácil de ler, mas também simplifica o processo de identificar e corrigir possíveis erros.

Por exemplo, se você tem um código muito grande e identificou que está com um erro, é muito mais simples identificar em qual parte da consulta está esse erro se você escrevê-lo utilizando CTEs.

Tags:

Comments are closed