Al terminar, podrás
- Aplicar funciones de texto sin modificar el valor almacenado.
- Distinguir el número de caracteres del número de bytes.
- Reconocer que la aritmética y el formato de fechas cambian entre motores.
Recupera lo aprendido: ¿Una columna calculada cambia el valor guardado o solo la salida de la consulta?
La idea clave
Una función recibe valores y devuelve un resultado calculado. Funciones como LOWER, UPPER y LENGTH son comunes, pero su tratamiento de Unicode y las funciones de fecha no son idénticos en todos los motores.
Separa concepto y dialecto: primero define la transformación que necesitas; después consulta la función concreta del motor donde se ejecutará.
La sintaxis básica
LOWER(texto)
UPPER(texto)
LENGTH(texto)
DATE(fecha, modificador) -- SQLiteEjemplo paso a paso
| id | nombre |
|---|---|
| 1 | Ana Torres |
| 12 | Mario Gil |
SELECT nombre,
UPPER(nombre) AS mayusculas,
LENGTH(nombre) AS caracteres
FROM clientes
WHERE id IN (1, 12)
ORDER BY id;| nombre | mayusculas | caracteres |
|---|---|---|
| Ana Torres | ANA TORRES | 10 |
| Mario Gil | MARIO GIL | 9 |
Cómo funciona
UPPERcrea otro valor para la salida; no cambia la columnanombre.LENGTHcuenta caracteres en estos valores de texto.- El alias explica qué representa cada columna calculada.
Un error habitual
Suponer que las mayúsculas funcionan igual con todos los caracteres
SELECT UPPER('López');La función integrada de SQLite convierte a mayúsculas únicamente las letras ASCII, por lo que puede devolver LóPEZ. PostgreSQL aplica las reglas de la configuración regional de la base. Comprueba el motor y la extensión Unicode disponible antes de usar el resultado para normalizar búsquedas.
Practica con datos
Laboratorio SQL
Resuelve la consulta
Escribe una consulta que devuelva el nombre de cada empleado en minúsculas como nombre_minusculas y su fecha_alta.
Resultado esperado: 10 filas con nombre_minusculas, fecha_alta. El orden de las filas no importa.
Ver tablas y datos
Cargando la estructura del ejercicio…
Utiliza LOWER(nombre).
Añade un alias descriptivo.
Selecciona también fecha_alta.
Solución
SELECT LOWER(nombre) AS nombre_minusculas, fecha_alta FROM empleados;LOWER transforma únicamente el resultado de la consulta.
Puedes consultar la solución y volver a intentarlo. La práctica se completa cuando tu consulta funciona.
La consulta usa datos ficticios y se ejecuta solo en este navegador.
Comprueba si puedes explicarlo
¿Es suficiente ordenar textos como 31/01/2025 y 02/02/2025 para obtener orden cronológico?
Ver respuesta razonada
No. Ese formato se compara empezando por el día. En las fechas de este curso se usa YYYY-MM-DD; al conservar ese formato de longitud fija, el orden textual coincide con el cronológico.
Responde antes de abrir la explicación. Si necesitaste ayuda, cierra la respuesta y vuelve a explicarlo con tus palabras antes de dar la lección por aprendida.
Qué debes recordar
- Las funciones calculan valores de salida y no modifican la tabla por sí solas.
- El tratamiento de mayúsculas y Unicode depende del motor y su configuración.
- Las operaciones con fechas deben escribirse para el dialecto concreto.
A continuación: Continúa con Práctica: combina UNION, CASE y funciones.
Fuentes técnicas consultadas
Las referencias documentan el recuento de caracteres, la conversión de mayúsculas y las funciones de fecha de cada motor.
- SQLite: funciones escalares LOWER, UPPER y LENGTH
- SQLite: funciones y modificadores de fecha y hora
- PostgreSQL: funciones de texto
- PostgreSQL: funciones y operadores de fecha y hora