Las funciones en SQL son bloques de código que realizan cálculos, manipulaciones de datos o tareas específicas y devuelven un valor como resultado.
Estas funciones pueden ser predefinidas por el sistema o definidas por el usuario. Veamos en detalle en qué consisten las funciones en SQL con ejemplos.
SQL proporciona una serie de funciones predefinidas que se pueden utilizar directamente en las consultas.
Algunas de las funciones predefinidas comunes incluyen:
Funciones de agregación: Estas funciones operan en conjuntos de datos y devuelven un solo valor agregado, como la suma (SUM), el promedio (AVG), el recuento (COUNT) o el máximo (MAX).
-- Calcular el promedio de ventas
SELECT AVG(monto) AS promedio_ventas FROM ventas;
Funciones de cadena: Estas funciones operan en valores de tipo cadena y permiten realizar operaciones como la concatenación (CONCAT), la extracción de subcadenas (SUBSTRING) o la búsqueda de patrones (LIKE).
-- Concatenar el nombre y el apellido
SELECT CONCAT(nombre, ' ', apellido) AS nombre_completo FROM empleados;
Funciones de fecha y hora: Estas funciones permiten manipular valores de tipo fecha y hora, realizar cálculos y obtener partes específicas de una fecha o hora, como el año (YEAR), el mes (MONTH) o la diferencia entre dos fechas (DATEDIFF).
-- Concatenar el nombre y el apellido
SELECT CONCAT(nombre, ' ', apellido) AS nombre_completo FROM empleados;
Además de las funciones predefinidas, SQL permite a los usuarios definir sus propias funciones personalizadas para realizar tareas específicas.
Estas funciones se crean utilizando la sentencia CREATE FUNCTION y pueden ser utilizadas en consultas SQL posteriormente.
Supongamos que queremos crear una función que calcule el descuento aplicado a un monto de venta dado:
-- Crear una función para calcular el descuento
CREATE FUNCTION calcular_descuento(monto DECIMAL(10, 2)) RETURNS DECIMAL(10, 2)
BEGIN
DECLARE descuento DECIMAL(10, 2);
SET descuento = monto * 0.1; -- 10% de descuento
RETURN descuento;
END;
Una vez creada la función, se puede utilizar en consultas SQL para calcular el descuento de una venta específica:
-- Calcular el descuento de una venta de $1000
SELECT calcular_descuento(1000) AS descuento;
En este ejemplo, la función «calcular_descuento» recibe un parámetro «monto» y devuelve el valor del descuento aplicado al monto. La función se utiliza en una consulta para calcular el descuento de una venta de $1000, y el resultado se muestra como «descuento».