O que é o Query Builder?
O Query Builder do Laravel é uma ferramenta flexível e poderosa para construir e executar consultas SQL de forma programática. É uma alternativa ao Eloquent ORM, ideal para cenários em que buscas maior controlo sobre as consultas ou precisas de desempenho otimizado.
É uma ferramenta versátil e eficiente para trabalhar com bases de dados. Ele permite construir consultas SQL de forma programática, utilizando métodos intuitivos que facilitam o desenvolvimento e a manutenção do código. Aqui estão as principais vantagens:
1. Flexibilidade: O Query Builder é ideal para cenários que exigem consultas SQL personalizadas. Ele permite criar consultas complexas como joins, agrupamentos e agregações sem precisar recorrer a SQL bruto.
2. Suporte a Múltiplos Tipos de Bases de Dados: Com uma única interface, podes trabalhar com diferentes sistemas de bases de dados (MySQL, PostgreSQL, SQLite, etc.), sem alterar o código ao migrar de uma base para outra.
3. Melhor Desempenho: Ao contrário do Eloquent ORM, que é orientado a objetos e mais abstrato, o Query Builder é mais leve e direto, oferecendo melhor desempenho para consultas complexas ou em grandes volumes de dados.
4. Sintaxe Intuitiva: A sua API baseada em métodos é fácil de aprender e utilizar. Com métodos como join(), where() e orderBy(), podes construir consultas de forma rápida e clara, sem necessidade de memorizar sintaxe SQL.
5. Resultados em Arrays Simples: O Query Builder retorna os resultados como arrays associativos, o que é ideal para situações em que apenas precisas dos dados sem as funcionalidades adicionais de modelos.
6. Compatibilidade com o Eloquent: O Query Builder pode ser utilizado juntamente com o Eloquent ORM. Em situações específicas, podes alternar entre os dois métodos, dependendo das necessidades de desempenho e simplicidade.
7. Menos Sobrecarga: Por ser mais direto, o Query Builder introduz menos sobrecarga do que o Eloquent, tornando-o ideal para scripts ou tarefas que precisam de interações rápidas e eficientes com a base de dados.
Em resumo, o Query Builder do Laravel oferece uma solução poderosa e flexível para criar consultas SQL programaticamente, equilibrando eficiência e simplicidade. É especialmente útil em cenários onde o controlo e o desempenho são prioritários.
Estrutura das Tabelas
Vamos ter em conta as seguintes tabelas:
Microbio: Contém os os produtos de microbiologia.
Campos principais:id,nome.MicroArmarios: Liga micróbios a armários e regista a quantidade.
Campos principais:micro_id(FK),arm_id(FK),qt.Armarios: Contém os armários.
Campos principais:id,descricao,localizacao.
Exemplos Práticos com Query Builder
Neste primeiro exemplo vamos ver como obter os armários e as quantidades associadas a um produto de microbiologia específico:
Este segundo exemplo pretende listar todos os produto de microbiologia num armário específico:
Por último, vamos ver um exemplo que permite calcular o total de produtos de microbiologia armazenados em cada armário:
Vantagens do Query Builder vs Eloquent
O Query Builder é uma excelente ferramenta para quem procura flexibilidade e controlo na construção de queries SQL em Laravel. É especialmente útil em projetos que necessitam de alto desempenho ou consultas complexas. No entanto, o Eloquent ORM continua a ser preferido para desenvolvimento rápido e orientado a objetos.