Funciones SQL integradas
Lección 3.1 · Tiempo de lectura: ~8 min · Tareas de práctica ↓
En esta lección conocerás las funciones SQL y verás cómo las funciones integradas transforman los datos directamente dentro de una consulta. Veremos la sintaxis básica, las categorías de funciones y ejemplos prácticos con Sakila. Al terminar, podrás aplicar funciones SQL con seguridad en tareas de análisis reales.
En las lecciones anteriores aprendiste a seleccionar, filtrar y ordenar filas. El siguiente paso es calcular y transformar valores dentro de la consulta, sin procesamiento adicional en la aplicación.
Aquí es donde las funciones SQL integradas resultan más útiles: hacen las consultas más expresivas, reducen la lógica repetida y aceleran la preparación de informes.
Qué son las funciones SQL integradas
Una función SQL integrada es una operación predefinida que ofrece el SGBD. Recibe argumentos y devuelve un nuevo valor, como un texto, un número, una fecha o un resultado booleano.
Las funciones se usan cuando necesitas:
- normalizar valores de texto;
- hacer cálculos en SQL;
- extraer partes de cadenas o de fechas;
- convertir valores entre tipos de datos.
Sintaxis básica
FUNCTION_NAME(argument1, argument2, ...)
Donde:
FUNCTION_NAMEes el nombre de la función;argument1, argument2, ...son columnas, literales o resultados de otras funciones.
Ejemplo de llamada sencilla a una función:
SELECT
UPPER(first_name) AS upper_name
FROM customer
LIMIT 5;
Resultado: cada valor de first_name se convierte a mayúsculas.
También puedes anidar llamadas, de modo que una función se pase como argumento de otra.
Ejemplo de llamada anidada:
SELECT
UPPER(TRIM(first_name)) AS normalized_name
FROM customer
LIMIT 5;
Resultado: se eliminan los espacios del principio y del final y, después, el nombre se convierte a mayúsculas.
Dónde se usan habitualmente las funciones
Funciones en SELECT
En SELECT, las funciones ayudan a dar forma al resultado.
SELECT
customer_id,
CONCAT(first_name, ' ', last_name) AS full_name,
UPPER(email) AS email_upper
FROM customer
LIMIT 10;
Nota: este ejemplo usa una sola tabla y muestra cómo las funciones pueden formatear las columnas del resultado directamente en SELECT.
Funciones en WHERE
En WHERE, las funciones permiten filtrar según condiciones calculadas.
SELECT
title,
rental_duration
FROM film
WHERE LENGTH(title) >= 15
AND ABS(rental_duration - 5) <= 2
ORDER BY title;
Resultado: devuelve las películas con títulos largos y una duración de alquiler cercana a 5 días.
Principales tipos de funciones SQL
Funciones de cadena
Ejemplos: UPPER, LOWER, TRIM, SUBSTRING, CONCAT.
Sirven para limpiar y formatear campos de texto.
Funciones matemáticas
Ejemplos: ROUND, ABS, CEILING, FLOOR, MOD.
Sirven para cálculos, redondeos y control de valores numéricos.
Funciones de fecha y hora
Ejemplos: NOW, CURRENT_DATE, YEAR, MONTH, DATE_ADD, DATEDIFF.
Sirven para el análisis temporal y el cálculo de intervalos.
Funciones de conversión de tipos
Ejemplos: CAST, CONVERT.
Se usan cuando hay que convertir valores explícitamente al tipo correcto.
Recomendaciones prácticas
- Comprueba siempre cómo se comporta la función en tu SGBD: la sintaxis y los detalles pueden variar.
- Usa alias con
ASpara que las columnas calculadas sean más fáciles de leer. - Ten en cuenta los valores
NULL, porque el resultado de una función puede serNULL. - Evita anidar demasiadas funciones en una consulta; divide la lógica compleja en pasos.
Puntos clave de esta lección:
- Las funciones SQL integradas permiten procesar los datos directamente en las consultas.
- Las funciones en
SELECTdan forma al resultado, y las funciones enWHEREhacen el filtrado más preciso. - Las funciones de cadena, matemáticas, de fecha y hora y de conversión cubren la mayoría de las necesidades básicas.
- Tratar bien los tipos de datos y
NULLes esencial para obtener resultados predecibles. - Bien usadas, las funciones hacen las consultas SQL más cortas, claras y útiles para el análisis.
Preguntas frecuentes
¿Qué diferencia hay entre las funciones escalares y las de agregación en SQL?
Una función escalar como UPPER o ROUND procesa una fila a la vez y devuelve un valor por fila. Una función de agregación como COUNT, SUM o AVG reduce muchas filas a un solo valor, normalmente junto con GROUP BY. Esta lección trata las funciones escalares; las de agregación tienen sus propias lecciones.
¿Las funciones SQL funcionan igual en todos los SGBD?
Las básicas, sí: UPPER, LOWER, TRIM, ROUND, ABS y CAST existen casi en todas partes. Muchas otras cambian: la fecha actual es NOW() en MySQL y PostgreSQL, pero GETDATE() en SQL Server, y DATEDIFF recibe argumentos distintos en MySQL y SQL Server. Consulta la documentación de tu SGBD al trasladar una consulta.
¿Qué devuelve una función SQL cuando el argumento es NULL?
La mayoría devuelve NULL: UPPER(NULL), ROUND(NULL) y LENGTH(NULL) dan NULL. En MySQL, CONCAT devuelve NULL si algún argumento es NULL, mientras que CONCAT_WS omite los NULL. Para obtener un valor por defecto, envuelve la columna en COALESCE(column, 'default').
Preguntas de entrevista
¿Qué es una función SQL integrada y para qué sirve?
Una función SQL integrada es una operación predefinida que ofrece el SGBD. Es útil porque permite transformar, calcular y formatear datos directamente en una consulta.
¿Por qué las funciones SQL se usan tanto en SELECT como en WHERE?
En SELECT, las funciones ayudan a formatear o calcular los valores del resultado. En WHERE, ayudan a filtrar filas mediante condiciones calculadas.
¿Qué es una llamada anidada a una función y cuándo conviene usarla?
Una llamada anidada consiste en pasar el resultado de una función a otra. Úsala cuando los datos necesiten varios pasos de transformación, por ejemplo UPPER(TRIM(first_name)).