Constructor de consultas SQL en Laravel

Constructor de consultas SQL en Laravel

El constructor de consultas SQL en Laravel ofrece la posibilidad de crear consultas SQL sin depender de Eloquent ORM. Esto habilita la ejecución de consultas como visualizar, insertar, actualizar y eliminar registros en la base de datos, proporcionando una alternativa directa para la manipulación de datos.

¡Hola! ¿Qué tal? ¡Bienvenidos! Continuando con el curso de Laravel,  hoy veremos el constructor de consultas SQL en Laravel.

¡Empecemos!

Iniciar Tinker desde la Terminal

Para iniciar Tinker ejecutamos el siguiente comando desde la Terminal.

php artisan tinker

Al ejecutar este comando, se desplegará la consola de Tinker, donde ya podemos empezar a interactuar con nuestra aplicación.

Desplegar tu proyecto Laravel a producción

Adquiere la guía en formato PDF

Insertar registros de la base de datos

El constructor de consultas de Laravel utiliza la clase “DB” que debemos importar para poder realizar las consultas SQL.

use Illuminate\Support\Facades\DB;

Con el método “Insert” podemos agregar un registro a la tabla “Profesores” de nuestra base de datos.

DB::table('profesores')->insert(['nombre_apellido' => 'Karla Mercedez Sossa', 'profesion' => 'Ingenieria comercial', 'grado_academico' => 'Licenciatura']);

De manera similar podemos utilizar el método “insert” para crear registros en la tabla “Alumnos”.

DB::table('alumnos')->insert(['nombre_apellido' => 'Kevin Valdivia Morales', 'edad' => 22]);
DB::table('alumnos')->insert(['nombre_apellido' => 'Paola Corona Delgado', 'edad' => 19]);

Por último, vamos a crear registros en la tabla “Cursos”.

DB::table('cursos')->insert(['materia' => 'Marketing en redes sociales', 'nivel' => '5to grado', 'horas_academicas' => 120, 'profesor_id' => 2]);

Para poder insertar registros en la tabla pivot realizamos el mismo proceso, llamar a la tabla “alumno_curso” y agregar los id’s correspondientes.

DB::table('alumno_curso')->insert(['curso_id' => 2, 'alumno_id' => 3]);
DB::table('alumno_curso')->insert(['curso_id' => 2, 'alumno_id' => 4]);

Actualizar registros de la base de datos

Ahora, veremos cómo actualizar registros de una tabla de nuestra base de datos. Haremos uso del método «update» que nos brinda la capacidad de modificar los datos de un registro en particular.

Actualizaremos la información de la profesora “Karla Mercedez Sossa” de la siguiente manera:

DB::table('profesores')->where('id', '=', 2)->update(['nombre_apellido' => 'Karla Ana Mercedez Sossa ']);

De manera similar podemos actualizar los datos de las tablas “alumnos” y “cursos”.

Eliminar registros de la base de datos

Para eliminar un registro de una tabla de nuestra base de datos, utilizaremos el método “delete”, En este caso eliminaremos el registro de la tabla “profesores” con Id igual a 3.

DB::table('profesores')->where('id', '=', 3)->delete();

De manera similar podemos eliminar los datos de las tablas “alumnos” y “cursos”.

Consultas de selección

Para llevar a cabo consultas de selección, empleamos la clase ‘DB’ de Laravel. Utilizaremos comandos como ‘select’, ‘where’, ‘get’, ‘join’, entre otros, para recuperar la información deseada de la base de datos. Por ejemplo, quiero listar a todos los alumnos mayores de 20 años.

DB::table('alumnos')->where('edad', '>', 20)->get();

Quiero listar todos los cursos del “6to nivel”.

DB::table('cursos')->where('nivel', '=', '6to nivel')->get();

Quiero listar todos los profesores de profesión “Ingenieria comercial”.

DB::table(profesores)->where('profesion', '=', 'Ingenieria comercial')->get();

Consultas a dos o más tablas

Además, podemos realizar consultas más complejas que involucran más de una tabla. Por ejemplo, obtener todos los cursos que está dictando el profesor “Juan Daniel Suarez Matos”.

DB::table('profesores')
->select('profesores.nombre_apellido', 'cursos.materia', 'cursos.nivel')
->join('cursos', 'profesores.id', '=', 'cursos.profesor_id')
->where('profesores.nombre_apellido', '=', 'Juan Daniel Suarez Matosl')
->get();

Por último, veamos otro ejemplo que involucra esta vez a las tres tablas, cómo obtener los cursos y con qué profesores está inscrito el alumno “Maria de los Angeles”.

DB::table(alumnos)
->select('alumnos.nombre_apellido', 'profesores.nombre_apellido as profesor', 'profesores.profesion', 'cursos.materia as curso', 'cursos.nivel')
->join('alumno_curso', 'alumnos.id', '=', 'alumno_curso.alumno_id')
->join('cursos', 'cursos.id', '=', 'alumno_curso.curso_id')
->join('profesores', 'profesores.id', '=', 'cursos.profesor_id')
->where('alumnos.nombre_apellido', '=', 'Maria de los Angeles')
->get();

Así concluye la clase sobre constructor de consultas SQL en Laravel. Si tienes preguntas, déjanos un comentario o escríbenos a nuestro correo electrónico en Norvic Software. En la próxima clase, veremos el concepto de Seeder en Laravel. ¡Hasta la siguiente clase!

Saludos y éxitos.

Victor Peña

Victor Peña

Desarrollador de software Backend Developer, experto en Laravel Framework, PHP, JavaScript y MySQL. Creador de contenidos de emprendimiento y desarrollo de software.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *