CodeGym /Cursos /SQL SELF /Formateo de cadenas: CONCAT(), UPPER(), LOWER()

Formateo de cadenas: CONCAT(), UPPER(), LOWER()

SQL SELF
Nivel 5 , Lección 1
Disponible

Trabajar con datos de texto es el pan de cada día en las tareas de bases de datos. Imagina que eres desarrollador de una tienda online y tienes una base de datos de usuarios. Necesitas mostrar los nombres completos de los usuarios para un banner de bienvenida en la web, por ejemplo: "Bienvenido, Otto Art!". O necesitas estandarizar todos los emails (por ejemplo, ponerlos en minúsculas). En estos casos, las operaciones de cadenas son imprescindibles.

PostgreSQL te da herramientas potentes para trabajar con texto. Hoy vamos a ver tres herramientas básicas:

  • CONCAT() — unir cadenas.
  • UPPER() — pasar una cadena a mayúsculas.
  • LOWER() — pasar una cadena a minúsculas.

Trabajando con la función CONCAT()

La función CONCAT() te permite juntar varias cadenas en una sola. Es súper útil si los datos están en columnas distintas pero necesitas unirlos para mostrarlos.

Sintaxis

CONCAT(string1, string2, ..., stringN)
  • string1, string2, stringN — las cadenas o columnas que quieres unir.
  • Devuelve una sola cadena con todos los argumentos juntos.

Ejemplo: trabajando con nombres

Supón que tienes una tabla students:

first_name last_name
Otto Art
Maria Chi
Anna Pal

Tu objetivo: mostrar los nombres completos de los estudiantes en formato "Nombre Apellido".

Consulta:

SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM students;

Resultado:

full_name
Otto Art
Maria Chi
Anna Pal

Fíjate en el ' ' entre el nombre y el apellido. Es un espacio que añadimos para separar las cadenas.

Detalles a tener en cuenta

CONCAT() ignora NULL. Si uno de los argumentos es NULL, simplemente lo salta. Si aún no sabes qué es NULL, tranqui — lo veremos más adelante.

Alternativa a CONCAT() — el operador ||, por ejemplo:

SELECT first_name || ' ' || last_name AS full_name FROM students;

Cambiar el case de las cadenas: UPPER() y LOWER()

Imagina que trabajas con emails que los usuarios han escrito en todos los cases posibles: ivan@example.com, IVAN@EXAMPLE.COM. Para estandarizar, muchas veces necesitas:

  • poner el texto en un solo formato antes de comparar (por ejemplo, lowercase).
  • resaltar palabras importantes (por ejemplo, UPPERCASE para títulos).

UPPER(): texto en mayúsculas

La función UPPER() convierte el texto a mayúsculas.

Sintaxis:

UPPER(string)
  • string — la cadena o el nombre de la columna de texto.

Ejemplo:

En la tabla students añadimos la columna email:

first_name last_name email
Otto Art otto@example.com
Maria Chi MARIA@EXAMPLE.com
Anna Pal anna.pal@mail.ru

Queremos mostrar los emails en mayúsculas:

SELECT email, UPPER(email) AS email_upper
FROM students;

Resultado:

email email_upper
otto@example.com OTTO@EXAMPLE.COM
MARIA@EXAMPLE.com MARIA@EXAMPLE.COM
anna.pal@gmail.com ANNA.PAL@GMAIL.COM

LOWER(): texto en minúsculas

Igual que antes, la función LOWER() convierte el texto a minúsculas.

Sintaxis:

LOWER(string)

Ejemplo:

Ponemos los emails en minúsculas:

SELECT email, LOWER(email) AS email_lower
FROM students;

Resultado:

email email_lower
otto@example.com otto@example.com
MARIA@EXAMPLE.com maria@example.com
anna.pal@gmail.com anna.pal@gmail.com

Ejemplos prácticos y casos

Vamos a juntar todo lo que hemos visto.

Crear el nombre completo en mayúsculas

Consulta:

SELECT CONCAT(UPPER(first_name), ' ', UPPER(last_name)) AS full_name_upper
FROM students;

Resultado:

full_name_upper
OTTO ART
MARIA CHI
ANNA PAL

Aquí usamos la función CONCAT() para unir nombre y apellido, y UPPER() para ponerlo todo en mayúsculas.

Ejemplo: estandarizar emails

Queremos poner todos los emails en el mismo formato — minúsculas:

UPDATE students
SET email = LOWER(email);

Ahora todos los emails en la tabla tienen el mismo formato, sin importar cómo estaban antes.

Cómo funciona el operador UPDATE lo verás en las próximas lecciones.

Preparar un saludo para los usuarios

Añadimos al nombre completo el saludo "Bienvenido":

SELECT CONCAT('Bienvenido, ', first_name, ' ', last_name, '!') AS greeting
FROM students;

Resultado:

greeting
Bienvenido, Otto Art!
Bienvenido, Maria Chi!
Bienvenido, Anna Pal!

Errores típicos al trabajar con funciones de texto

Si te olvidas el espacio en CONCAT(), el resultado puede quedar raro. Por ejemplo:

SELECT CONCAT(first_name, last_name) AS full_name
FROM students;

El resultado será: "OttoArt", "MariaChi". Siempre mete el espacio donde toca.

Uso de NULL. Si uno de los argumentos de CONCAT() es NULL, la cadena puede quedar incompleta. Por ejemplo:

SELECT CONCAT(first_name, ' ', middle_name, ' ', last_name) AS full_name
FROM students;

Si middle_name = NULL, el resultado será "Otto NULL Art". Para evitar esto, puedes usar la función COALESCE():

SELECT CONCAT(first_name, ' ', COALESCE(middle_name, ''), ' ', last_name) AS full_name
FROM students;

Más sobre NULL y la función COALESCE() lo verás en las próximas lecciones :P

2
Tarea
SQL SELF, nivel 5, lección 1
Bloqueada
Conversión a mayúsculas
Conversión a mayúsculas
2
Tarea
SQL SELF, nivel 5, lección 1
Bloqueada
Estandarización de direcciones de email
Estandarización de direcciones de email
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION