Introducción
- Seleccionar, filtrar y ordenar datos.
- Resumir información con funciones de agregación.
- Agrupar resultados con
GROUP BYy filtrarlos conHAVING. - Combinar tablas con
JOIN. - Simplificar consultas con vistas (views).
👉 Pero en muchas ocasiones los datos no vienen “listos para usar”.
- Quizás necesites transformar un nombre a mayúsculas o minúsculas.
- Concatenar (unir) varias columnas en una sola.
- Extraer el año, mes o día de una fecha.
- Obtener la fecha y hora actuales.
✅ Para esto existen las funciones de texto y de fechas en SQL.
🔹 1. Funciones de texto más comunes
UPPER(campo)→ convierte el texto a mayúsculas.LOWER(campo)→ convierte el texto a minúsculas.CONCAT(campo1, campo2, …)→ une cadenas de texto.LENGTH(campo)→ devuelve la cantidad de caracteres de un texto.SUBSTRING(campo, inicio, cantidad)→ extrae una parte del texto.
🔹 2. Ejemplos de funciones de texto
Ejemplo 1: convertir nombres a mayúsculas
SELECT nombre, UPPER(nombre) AS nombre_mayus
FROM alumnos;
📊 Resultado esperado:
| nombre | nombre_mayus |
|---|---|
| Ana | ANA |
| Juan | JUAN |
| Laura | LAURA |
| Pedro | PEDRO |
Ejemplo 2: convertir nombres a minúsculas
SELECT nombre, LOWER(nombre) AS nombre_minus
FROM alumnos;
📊 Resultado esperado:
| nombre | nombre_minus |
|---|---|
| Ana | ana |
| Juan | juan |
| Laura | laura |
| Pedro | pedro |
Ejemplo 3: concatenar nombre y ciudad
SELECT CONCAT(nombre, ' - ', ciudad) AS alumno_info
FROM alumnos;
📊 Resultado esperado:
| alumno_info |
|---|
| Ana – Buenos Aires |
| Juan – Ciudad de México |
| Laura – Madrid |
| Pedro – Madrid |
Ejemplo 4: longitud de un nombre
SELECT nombre, LENGTH(nombre) AS cantidad_letras
FROM alumnos;
📊 Resultado esperado:
| nombre | cantidad_letras |
|---|---|
| Ana | 3 |
| Juan | 4 |
| Laura | 5 |
| Pedro | 5 |
Ejemplo 5: extraer parte de un texto
SELECT nombre, SUBSTRING(ciudad, 1, 5) AS ciudad_corta
FROM alumnos;
📊 Resultado esperado:
| nombre | ciudad_corta |
|---|---|
| Ana | Bueno |
| Juan | Ciuda |
| Laura | Madri |
| Pedro | Madri |
🔹 3. Funciones de fechas más comunes
NOW()→ devuelve la fecha y hora actuales.CURDATE()→ devuelve solo la fecha actual.YEAR(fecha)→ devuelve el año.MONTH(fecha)→ devuelve el mes.DAY(fecha)→ devuelve el día.DATEDIFF(fecha1, fecha2)→ diferencia en días entre dos fechas.
🔹 4. Ejemplos de funciones de fechas
Imaginemos una tabla profesores con sus fechas de contratación:
| id | nombre | fecha_contratacion |
|---|---|---|
| 1 | Marta | 2020-03-15 |
| 2 | Roberto | 2018-07-01 |
| 3 | Sofía | 2022-11-20 |
Crear la tabla profesores en DB-Fiddle
Antes de correr las consultas de ejemplos, copiá y pegá este código en la parte de Esquema SQL de DB-Fiddle para crear la tabla con sus datos:
CREATE TABLE profesores (
id INT,
nombre VARCHAR(50),
fecha_contratacion DATE
);
INSERT INTO profesores (id, nombre, fecha_contratacion) VALUES
(1, 'Marta', '2020-03-15'),
(2, 'Roberto', '2018-07-01'),
(3, 'Sofía', '2022-11-20');
👉 Una vez creada, podés ejecutar las consultas de los ejemplos:
Ejemplo 1: mostrar el año de contratación
SELECT nombre, YEAR(fecha_contratacion) AS año
FROM profesores;
📊 Resultado esperado:
| nombre | año |
|---|---|
| Marta | 2020 |
| Roberto | 2018 |
| Sofía | 2022 |
Ejemplo 2: mostrar mes y día de contratación
SELECT nombre, MONTH(fecha_contratacion) AS mes, DAY(fecha_contratacion) AS dia
FROM profesores;
📊 Resultado esperado:
| nombre | mes | dia |
|---|---|---|
| Marta | 3 | 15 |
| Roberto | 7 | 1 |
| Sofía | 11 | 20 |
Ejemplo 3: calcular antigüedad en días
SELECT nombre, DATEDIFF(NOW(), fecha_contratacion) AS dias_antiguedad
FROM profesores;
👉 Esto calcula cuántos días pasaron desde la contratación hasta hoy.
🔹 5. Ejercicio práctico
- Muestra el nombre de los alumnos en mayúsculas.
- Muestra el nombre y la cantidad de letras de cada alumno.
- Crea una columna que muestre “Nombre – Ciudad” de cada alumno.
- De la tabla
profesores, muestra únicamente el año de contratación. - Calcula cuántos días lleva contratado Roberto.
🔹 Soluciones
SELECT UPPER(nombre) FROM alumnos;
SELECT nombre, LENGTH(nombre) FROM alumnos;
SELECT CONCAT(nombre, ' - ', ciudad) FROM alumnos;
SELECT nombre, YEAR(fecha_contratacion) FROM profesores;
SELECT DATEDIFF(NOW(), fecha_contratacion) FROM profesores WHERE nombre = 'Roberto';
📝 Mini Quiz
Resultados
#1. ¿Qué función convierte texto a mayúsculas en SQL?
#2. ¿Qué función devuelve el año de una fecha?
#3. Si quiero unir el nombre y la ciudad de un alumno, ¿qué función debo usar?
🔹 Resumen de la lección
- Las funciones de texto permiten transformar cadenas:
UPPER,LOWER,CONCAT,LENGTH,SUBSTRING. - Las funciones de fechas permiten trabajar con valores de tiempo:
NOW,CURDATE,YEAR,MONTH,DAY,DATEDIFF. - Estas funciones hacen que los datos sean más legibles y útiles en reportes.
👉 En la próxima lección aprenderás a INSERTAR, ACTUALIZAR y ELIMINAR registros (INSERT, UPDATE, DELETE), es decir, cómo modificar los datos de tus tablas de manera segura.
📖 Avanza en tu formación consultando el resto de los temas en el Curso SQL online.