¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)
Procedimiento PobtenerNombre_clienteYTituloLibro ()
Portada » Procedimiento PobtenerNombre_clienteYTituloLibro ()

Table of Contents

Publicidad

Procedimiento PobtenerNombre_clienteYTituloLibro ()

En esta ocasión vemos un procedimiento explicado paso a paso, gracias a él podrás obtener el nombre de un cliente y el título de un libro concreto. Hemos usado dos tablas distintas, para unirlas usaremos inner join, como ya hemos visto en otras ocasiones.

📎Cómo activar la opción Do Not Track en Android

Este es el código completo:

-- La base de datos usada es la siguiente:

use bd_biblioteca;

-- Me gusta ver las tablas donde estoy trabajando:

select * from autores;
select * from categorias;
select * from libros;
select * from prestamos;

Esta es la consulta que haremos en el procedimiento, me gusta hacerla fuera para comprobar el resultado:

select p.nombre_cliente, l.titulo from prestamos as p
inner join libros as l on p.libro_id = l.Id where p.id = 4;

-- Si existe lo borrará.

DROP PROCEDURE IF EXISTS PobtenerNombre_clienteYTituloLibro;

DELIMITER //

-- Creamos el procedimiento:

CREATE PROCEDURE PobtenerNombre_clienteYTituloLibro
(in pId int, -- Parámetro de entrada, gracias a este id localizamos un id dentro de la tabla
out pnombre_cliente varchar (50), -- Parámetro de salida, lo utilizamos para extraer el nombre del cliente
out ptitulo varchar (50)) -- -- Parámetro de salida, lo utilizamos para extraer el título del libro

BEGIN

-- Manejamos los errores con Handler y hacemos un rollback. También imprimimos un resultado.

DECLARE exit handler for sqlexception
BEGIN
SELECT 'ERROR DE CONSULTA'; -- lanza un mensaje de error.
rollback;
END ;

/* unimos los resultados de dos tablas con inner join, utilizamos la clave ajena en prestamos para conectarcon la clave primaria de la tabla libro. */

-- * Recuerda usar el into para almacenar y el valor, de lo contrario daría nulo el resultado
select p.nombre_cliente, l.titulo into pnombre_cliente, ptitulo from prestamos as p
inner join libros as l
on p.libro_id = l.Id where p.Id = pId;

END //
DELIMITER ;

-- usamos el procedimiento:

set @vpId = 1; -- variable para el id
set @vpnombre_cliente = ''; variable para guardar el resultado del nombre del cliente.
set @vptitulo = ''; variable para guardar el resultado del título del libro.

-- Llamamos al procedimiento:

call PobtenerNombre_clienteYTituloLibro (@vpId, @vpnombre_cliente,@vptitulo);

-- Imprimimos el resultado:

select @vpnombre_cliente as 'Nombre del cliente',@vptitulo as 'Titulo del libro';

Resultado del procedimiento anterior:

* ERROR: En caso de no usar INTO:

Entradas recomendadas:

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)

Deja una respuesta

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)
error: Content is protected !!
Hablemos de informática
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.