Inicio » Blog » Laravel

26 septiembre, 2021

consultas SQL crudas

En esta publicación se enseñará cómo funcionan las consultas con SQL sin procesar en Laravel

consultas SQL crudas

Suscríbete a nuestro canal en Youtube

Suscríbirse

En el desarrollo de sitios web dinámicos es esencial almacenar datos como configuraciones, cuentas de usuario, imágenes y muchas más información; el lugar donde se almacena esa información es una base de datos; como desarrolladores backend debemos encargarnos de interactuar con esa base de datos conectándonos a la misma; Laravel como buen framework del lado del backend, al dia en el que se subió esta publicación, proporciona soporte para bases de datos como: MySQL, PostgreSQL, SQLite y SQL Server; es ese soporte el que nos permite interactuar con la base de datos y para ello hay tres formas de hacerlo: utilizando SQL sin procesar, usando el generador de consultas, o el ORM de Eloquent.

Es de esa primera forma de interacción con la base de datos de la que hablaremos en la publicación de hoy, sentencias SQL sin procesar.

¿Qué significa SQL sin procesar?

Una sentencia  SQL sin procesar es aquella que se ejecuta directamente en la base de datos, porque está escrita en formato SQL puro o crudo por lo que es la base de datos la que se encargará de ejecutarla sin problemas. Se les dice sin procesar porque normalmente los ORMs en general tienden a crear su propia sintaxis para consultar la data de una base de datos, y por ello se podría decir que una consulta tiene encima muchos procesos o que ya está preprocesada, antes de llegar a la base de datos; por ello decir que una consulta SQL esta sin procesar es que está en estado puro listo para correr en el motor para el que fue escrito.

El generador de consultas de Laravel y Eloquent no usan consultas SQL sin procesar. La imagen de más abajo tiene consultas de ejemplo con SQL sin procesar.

La Fachada DB

La fachada DB es la encargada de ejecutar todo tipo de consultas que requieras. Esta fachada proporciona métodos que invocaremos según el tipo de consulta que hagamos hay un método para operaciones de: “select”, “update”, “insert”, “delete”, “statement” (este se usa para operaciones en la base de datos que no retornan un valor) y “unprepared” (este se usa para operaciones en la base de datos que no requieran parámetros)

No olvides que como estamos trabajando con bases de datos, debes tener una creada y configurada en tu archivo .env. Observa cada método antes mencionado en la tabla de ejemplos:

iamgen_tabla_resumen

¿En qué casos usar SQL sin procesar?

El motivo de la existencia de los métodos del cuadro de arriba es que hay ocasiones en las que las operaciones con las bases de datos son complejas y se requiere la escritura de consultas muy apuradas, que hagan cosas que no puedas a través de otros mecanismos (como el generador de consultas y Eloquent)

Ten en cuenta que si no tienes de otra y vas a usar estos métodos debes pasar tus parámetros a través de los llamados “bindings” porque si los pones directamente en la consulta serás vulnerable a ataques por inyección de SQL. Además ten en cuenta que las consultas que escribas, al tener SQL puro, solo funcionan en el sistema gestor que estés utilizando en ese momento; por lo que si en un futuro decides cambiar de motor de base de datos, deberás cambiarlas todas manualmente.

¿Por qué no debemos usar SQL sin procesar?

Si bien puedes correr consultas en SQL (suele decirsele “en crudo” del inglés “raw”) directamente en la base de datos apoyándote de la fachada DB, no es que directamente copies tu consulta SQL y ya, hay un método que debes conocer para cada tipo de consulta que existe, y si bien una vez los conozcas todos ya podrás moverte usando solo consultas SQL, no es la manera con la que debes interactuar con la base de datos, porque precisamente para eso Laravel usa una sintaxis en la que se sigue usando la Fachada DB en las operaciones del generador de consultas de Eloquent y ambas formas de interacción con la base de datos te protegen al cien por ciento de ataques por inyección de SQL.

No olvides que toda esta información está en la documentación oficial de Laravel, revisala tu mismo para complementar lo aprendido.


Leido 1062 veces

Compartir link del tutorial con tus amigos


Aprende más sobre Laravel

Cursos de programación

Codea Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023