¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)
Crear función obtenerNombre(pId) en MySQL
Portada » Crear función obtenerNombre(pId) en MySQL
Anuncios
Publicidad

Crear función obtenerNombre(pId) en MySQL

En esta ocasión creamos una función en MySQL llamada obtenerNombre(pId), que nos permitirá obtener el nombre de un autor a partir de un parámetro de entrada.

Usaremos un parámetro de tipo entero (pId) en la cláusula WHERE, de manera que podamos buscar un autor por un ID concreto. Esta es una forma muy práctica de encapsular consultas y reutilizarlas dentro de tu base de datos.


Código completo de la función

1. Eliminar la función si ya existe

Es recomendable borrarla antes de crearla para evitar errores:

DROP FUNCTION IF EXISTS obtenerNombre;

2. Cambiar el delimitador

Como trabajamos con bloques de código, debemos modificar el delimitador temporalmente:

DELIMITER //

3. Crear la función

Ahora sí, creamos la función obtenerNombre:

CREATE FUNCTION obtenerNombre (pId INT)
RETURNS VARCHAR(30)
DETERMINISTIC
BEGIN
    -- Declaramos la variable para almacenar el resultado
    DECLARE vnombre VARCHAR(30);

    -- Guardamos el nombre en la variable según el id recibido
    SELECT nombre INTO vnombre 
    FROM autores 
    WHERE id = pId;

    -- Devolvemos el valor
    RETURN vnombre;
END //
DELIMITER ;

4. Probar la función

Creamos una variable con el ID y llamamos a la función:

SET @vid = 2;

SELECT IFNULL(obtenerNombre(@vid), 'No hay autores') 
AS "El nombre con el Id especificado es";

Resultado de la función

  • Si el ID existe: mostrará el nombre del autor asociado.
  • Si el ID no existe: gracias a IFNULL, devolverá el texto "No hay autores".

De esta forma, evitamos errores y mostramos un mensaje más claro al usuario.


Recomendaciones

CREATE FUNCTION obtenerNombre (pId int)

Añade el modificador DETERMINISTIC siempre que la función devuelva resultados consistentes para un mismo parámetro.

Ajusta el tipo de dato (VARCHAR(30)) a la longitud real de tu campo nombre.

Usa IFNULL() o COALESCE() cuando la función pueda devolver valores nulos.

Preguntas frecuentes sobre la función obtenerNombre(pId) en MySQL

1. ¿Qué diferencia hay entre un procedimiento almacenado y una función en MySQL?
Un procedimiento puede ejecutar varias instrucciones y no siempre devuelve un valor, mientras que una función devuelve siempre un resultado que puede usarse en consultas SQL.

2. ¿Por qué usamos DELIMITER // al crear funciones?
Se cambia el delimitador para que MySQL no confunda los puntos y comas internos del bloque con el final de la función.

3. ¿Qué hace la cláusula DETERMINISTIC?
Indica que la función devuelve siempre el mismo resultado si recibe los mismos parámetros de entrada, lo que ayuda a la optimización de consultas.

4. ¿Cómo manejo los casos cuando el ID no existe en la tabla?
Puedes usar IFNULL() o COALESCE() para devolver un mensaje personalizado como “No hay autores”.

5. ¿Puedo usar esta función dentro de otra consulta SQL?
Sí, puedes llamarla directamente en SELECT, WHERE o incluso en otras funciones, siempre que no genere ambigüedad en la lógica de la consulta.

Seguir leyendo:

  • WPForms vs Contact Form 7: Comparativa completa y cuál elegir en 2025
    Anuncios Publicidad WPForms vs Contact Form 7: ¿Cuál es el mejor plugin de formularios para WordPress? Si estás buscando el mejor plugin para crear formularios en WordPress, seguramente habrás escuchado hablar de WPForms y Contact Form 7, dos de las opciones más populares. Ambos permiten crear formularios de contacto en WordPress, pero existen grandes diferencias... Lee más: WPForms vs Contact Form 7: Comparativa completa y cuál elegir en 2025
  • Instalación y configuración de MySQL
    Anuncios Publicidad Instalación y configuración de MySQL Para trabajar con MySQL no basta con conocer los comandos: primero hay que asegurarse de que la base de datos y sus herramientas estén bien instaladas y configuradas. Además, en algunos entornos es necesario activar extensiones o configurar el acceso desde cPanel. En esta vertical reunimos guías prácticas... Lee más: Instalación y configuración de MySQL
  • Gestión de bases de datos en MySQL
    Anuncios Publicidad Gestión de bases de datos en MySQL Una base de datos no solo necesita ser creada: también hay que mostrarla, administrarla, borrarla cuando ya no se necesita e incluso restaurarla en caso de pérdida o migración. En esta vertical reunimos guías esenciales para gestionar bases de datos en MySQL y SQL Server paso... Lee más: Gestión de bases de datos en MySQL
  • Inserción y manipulación de datos en MySQL
    Anuncios Publicidad Inserción y manipulación de datos en MySQL Insertar y manipular datos es una de las operaciones más comunes y esenciales en MySQL. Desde los comandos básicos para añadir registros hasta el uso de procedimientos almacenados que automatizan procesos, estas guías te ayudarán a manejar tu información de manera eficiente y segura. En esta... Lee más: Inserción y manipulación de datos en MySQL
  • Operadores SQL y consultas
    Anuncios Publicidad Operadores SQL y consultas En SQL, los operadores son herramientas fundamentales para construir consultas más potentes, flexibles y legibles. Gracias a ellos podemos filtrar, comparar y manipular datos de manera precisa. En esta vertical reunimos ejemplos prácticos de operadores muy usados en MySQL: BETWEEN, IN, EXISTS y DISTINCT. Cada guía incluye explicaciones paso... Lee más: Operadores SQL y consultas
  • Gestión de usuarios y permisos en MySQL
    Anuncios Publicidad Gestión de usuarios y permisos en MySQL La administración de usuarios en MySQL es clave para mantener la seguridad y el control en tus bases de datos. A través de esta vertical aprenderás a crear, eliminar y gestionar permisos de forma práctica y paso a paso. Aquí reunimos los artículos más útiles sobre... Lee más: Gestión de usuarios y permisos en MySQL
¡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.