⏳ ¡Últimos días de octubre! SQLtest.online es gratuito gracias a las donaciones, y aún necesitamos alcanzar la meta de este mes para que el sitio siga funcionando en noviembre. Cada donación cuenta. Apoyar ahora →
Código SQL copiado al portapapeles

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.

Funciones SQL integradas


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_NAME es 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 AS para 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 ser NULL.
  • 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 SELECT dan forma al resultado, y las funciones en WHERE hacen 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 NULL es 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)).

Intenta resolver las siguientes tareas para reforzar lo que aprendiste en esta lección.

  1. Cálculo de Impuestos