Introducción
- Seleccionar, filtrar y ordenar datos.
- Resumir información con funciones de agregación.
- Agrupar resultados con
GROUP BY
y 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.