Publicidad

Índices en MySQL y el uso de LIKE: guía completa

Imagen
 Índices en MySQL y el uso de LIKE: guía completa Los índices en MySQL son una de las claves más importantes para mejorar el rendimiento de las consultas SQL. Sin embargo, no siempre se usan correctamente, especialmente cuando entran en juego operadores como LIKE , BETWEEN o consultas con varias condiciones. En esta guía completa aprenderás qué son los índices , cuándo se usan , cómo afectan los LIKE al rendimiento , cómo interpretarlos con EXPLAIN y cómo saber si un índice es único . Todo explicado de forma clara, sencilla y orientada a exámenes DAM/ASIR y a la práctica real. ¿Qué es un índice en MySQL? Un índice es una estructura que permite a MySQL encontrar datos más rápido , evitando recorrer toda la tabla fila por fila. Es muy parecido al índice de un libro: no lees todo, vas directamente a la página que te interesa. Sin índices: MySQL hace un escaneo completo de la tabla ( ALL ) Consultas lentas en tablas grandes Con índices: Acceso rápido a los datos Menor número de fil...
Publicidad

Procedimientos en MySQL: Qué son, cómo se crean e invocan

Procedimientos en MySQL: Qué son, cómo se crean e invocan

Los procedimientos almacenados en MySQL (o stored procedures) son bloques de código SQL que se guardan directamente en la base de datos y se pueden ejecutar cuando sea necesario.
Son una herramienta fundamental para automatizar tareas, encapsular lógica de negocio y mejorar el rendimiento en entornos con muchas operaciones repetitivas.


 ¿Qué es un procedimiento en MySQL?

Un procedimiento es una secuencia de instrucciones SQL que se ejecutan como una unidad.
En lugar de repetir consultas complejas, puedes definirlas una sola vez dentro de un procedimiento y luego llamarlas con un simple comando.

Ventajas principales:

  • Reutilización del código SQL.

  • Mayor rendimiento, al ejecutarse directamente desde el servidor.

  • Mantenimiento más sencillo.

  • Control de seguridad sobre la lógica de negocio.

En sistemas como tiendas online, bibliotecas o CRMs, los procedimientos son ideales para automatizar tareas de validación, inserción o actualización de datos.


 ¿Cómo se crea un procedimiento?

Para crear un procedimiento en MySQL se usa la instrucción CREATE PROCEDURE.
Sin embargo, es importante cambiar temporalmente el DELIMITER, ya que el cuerpo del procedimiento suele incluir ; y MySQL, por defecto, lo interpreta como final de la instrucción.

Ejemplo básico:

DELIMITER // CREATE PROCEDURE ejemploBasico() BEGIN SELECT 'Hola, este es un procedimiento en MySQL'; END // DELIMITER ;

Una vez creado, puedes ejecutarlo con:

CALL ejemploBasico();

¿Qué es DELIMITER y para qué sirve?

El comando DELIMITER indica a MySQL qué carácter marca el final de una instrucción.
Por defecto es ;, pero al crear procedimientos o funciones lo cambiamos (por ejemplo, a // o $$) para evitar confusiones.

DELIMITER // CREATE PROCEDURE ejemplo() BEGIN SELECT 'Prueba de delimitador'; END // DELIMITER ;

De esta forma, MySQL entiende que la instrucción termina al encontrar //, no cada vez que vea un ; dentro del bloque.

Procedimientos en MySQL

Uso de BEGIN y END

Las palabras clave BEGIN y END enmarcan el cuerpo del procedimiento.
Dentro de ese bloque puedes incluir tantas instrucciones SQL como necesites, separadas por punto y coma ;.

Ejemplo:

BEGIN INSERT INTO usuarios (nombre, email) VALUES ('Carlos', 'carlos@mail.com'); SELECT COUNT(*) FROM usuarios; END;

SELECT INTO: almacenar datos en variables

SELECT INTO se usa para guardar el resultado de una consulta en variables internas dentro del procedimiento.
Esto permite manipular los valores antes de devolverlos o realizar comparaciones.

Ejemplo:

SELECT nombre INTO @v_nombre FROM clientes WHERE id_cliente = 3;

Aquí el nombre del cliente con id_cliente = 3 se guarda en la variable @v_nombre.


Procedimientos en MySQL


Procedimientos en MySQL



Procedimientos en MySQL



Procedimientos en MySQL




 Parámetros en procedimientos: IN, OUT e INOUT

Los procedimientos pueden recibir parámetros para hacerlos dinámicos y reutilizables.
Hay tres tipos:

  • IN: Se usa como entrada. No se modifica dentro del procedimiento.

  • OUT: Se usa para devolver valores al final del procedimiento.

  • INOUT: Se usa como entrada y salida (puede modificarse durante la ejecución).

Ejemplo:

CREATE PROCEDURE obtenerSalario(IN emp_id INT, OUT salario DECIMAL(10,2)) BEGIN SELECT sueldo INTO salario FROM empleados WHERE id = emp_id; END;

🚀 Ejemplo completo con control de errores

A continuación, un procedimiento más avanzado que obtiene el nombre y la fecha de nacimiento de un autor, controlando posibles errores con EXIT HANDLER.

-- Seleccionamos la base de datos USE bd_biblioteca; -- Eliminamos el procedimiento si ya existe DROP PROCEDURE IF EXISTS pobtenerNombreyFecha; DELIMITER // CREATE PROCEDURE pobtenerNombreyFecha ( IN pId INT, OUT pnombre VARCHAR(100), OUT pfecha_nacimiento DATE ) BEGIN -- Manejador de excepciones SQL DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK; SELECT 'Error en la ejecución del procedimiento' AS mensaje; END; -- Obtenemos los datos del autor según su ID SELECT a.nombre, a.fecha_nacimiento INTO pnombre, pfecha_nacimiento FROM autores AS a WHERE a.Id = pId; END // DELIMITER ; -- Probamos el procedimiento SET @vpId = 2; SET @vpnombre = ''; SET @vpfecha_nacimiento = ''; CALL pobtenerNombreyFecha(@vpId, @vpnombre, @vpfecha_nacimiento); SELECT @vpId AS id, @vpnombre AS nombre, @vpfecha_nacimiento AS 'Fecha de Nacimiento';

✅ Resultado esperado:

idnombreFecha de Nacimiento
2Luis Pérez1985-04-21


¿Cómo invocar un procedimiento?

Para ejecutar un procedimiento, simplemente usa la instrucción CALL:

CALL nombreDelProcedimiento(param1, param2, ...);

Ejemplo sin parámetros:

CALL ejemploBasico();

Ejemplo con parámetros:

CALL pobtenerNombreyFecha(2, @nombre, @fecha);

Conclusión

Los procedimientos almacenados en MySQL son una herramienta clave para mantener tu base de datos organizada, segura y eficiente.
Con ellos puedes:

  • Centralizar la lógica SQL dentro del servidor.

  • Reducir código repetido en tus aplicaciones.

  • Aumentar la velocidad de ejecución de consultas complejas.

  • Controlar errores de manera profesional con HANDLER.

Aprender a dominarlos es un paso esencial para cualquier desarrollador o administrador de bases de datos.


FAQ: Preguntas Frecuentes

¿Cuál es la diferencia entre un procedimiento y una función en MySQL?
Un procedimiento puede devolver múltiples valores o conjuntos de resultados, mientras que una función solo devuelve un valor único.


¿Puedo usar transacciones dentro de un procedimiento?
Sí, puedes usar START TRANSACTION, COMMIT y ROLLBACK para controlar transacciones dentro del bloque BEGIN...END.


¿Qué pasa si no cambio el DELIMITER?
MySQL interpretará el primer ; como el final de la instrucción y generará un error de sintaxis. Siempre debes cambiar el delimitador al crear o modificar procedimientos.


¿Puedo modificar un procedimiento ya creado?
No directamente. Primero debes eliminarlo con DROP PROCEDURE IF EXISTS y luego volver a crearlo con las modificaciones necesarias.


¿Cómo veo los procedimientos existentes en mi base de datos?
Ejecuta:

SHOW PROCEDURE STATUS WHERE Db = 'nombre_de_tu_base';

Comentarios

Publicidad

Entradas populares de este blog

Solución de errores de registro en Kodi

INNER JOIN, LEFT JOIN, RIGHT JOIN y UNION en MySQL: Guía Completa con Ejemplos

Cómo crear un USB booteable de Linux Mint 20.1 paso a paso

Cómo cambiar el idioma en Windows 11: guía completa paso a paso

Cómo Hacer Ping de Navegación a Google: Guía Completa Paso a Paso

Instalar programas con un solo clic: instalación desatendida con Silent Install Builder

Cómo crear una función en MySQL para obtener la ciudad de un cliente por su ID

Cómo borrar la cronología de Google Maps: guía paso a paso para proteger tu privacidad

Gana dinero con el Reproductor para Educación de YouTube Studio

Publicidad

¿Qué aprenderás en Bit Área de informática para profesionales?

¡Bienvenid@ a Bit Área de Informática! Tu espacio de referencia para aprender, optimizar y dominar la tecnología. Nos especializamos en guías detalladas y actualizadas sobre Windows, Linux y Android, junto con trucos, consejos y soluciones técnicas pensadas para profesionales y entusiastas de la informática. Nos apasiona mantenerte al día de las últimas tendencias en aplicaciones. Analizamos innovaciones, desglosamos funciones, compartimos recomendaciones y ofrecemos información detallada para que siempre estés a la vanguardia del mundo digital. Desde apps esenciales para productividad hasta las más divertidas para entretenimiento, te ayudamos a descubrir lo último en tecnología y sacarle el máximo provecho.
Junto a nosotros, aprenderás a reparar, optimizar y gestionar tus sistemas y dispositivos, así como a liberar espacio, solucionar problemas comunes y simplificar tu vida diaria. En Bit Área de Informática, transformamos el conocimiento en resultados: explora, aprende y domina la tecnología mientras te mantienes a la vanguardia del futuro digital. ¡Forma parte de nuestra comunidad!
Publicidad