Modelado físico avanzado relacional de bases de datos

Las funciones de cadena en SQL permiten manipular y transformar valores de texto dentro de consultas. A continuación, veremos las funciones más utilizadas en SQLite, PostgreSQL y MySQL.


1. CONCAT() - Concatenación de Cadenas

CONCAT() une dos o más cadenas en una sola.

Ejemplo:

1SELECT CONCAT(nombre, ' ', apellido) AS nombre_completo
2FROM empleados;

2. LENGTH() - Longitud de una Cadena

Devuelve el número de caracteres en una cadena.

Ejemplo:

1SELECT LENGTH(nombre) FROM empleados;
2--👉 Si quieres el número de caracteres, usa CHAR_LENGTH(nombre)

3. UPPER() y LOWER() - Conversión a Mayúsculas y Minúsculas

  • UPPER() convierte a mayúsculas.
  • LOWER() convierte a minúsculas.

Ejemplo:

1SELECT 
2  UPPER(nombre) AS nombre_mayuscula,
3  LOWER(apellido) AS apellido_minuscula
4FROM empleados;

4. SUBSTRING() - Extraer Parte de una Cadena

Extrae una porción de una cadena de texto.

Ejemplo:

Extrae el prefijo del telefono

1SELECT SUBSTRING(telefono, 1, 3) FROM empleados;

5. TRIM(), LTRIM(), RTRIM() - Eliminar Espacios

  • TRIM() elimina espacios al inicio y al final.
  • LTRIM() elimina espacios al inicio.
  • RTRIM() elimina espacios al final.

Ejemplo:

1SELECT TRIM('  Hola  ');
2SELECT LTRIM('  Hola  ');
3SELECT RTRIM('  Hola  ');

6. REPLACE() - Reemplazar Subcadenas

Reemplaza una subcadena dentro de otra cadena.

Ejemplo:

1SELECT REPLACE(nombre, 'a', 'o') FROM empleados;

Esto cambia todas las ‘a’ por ‘o’ en la columna nombre.


7. POSITION() - Posición de una Subcadena (Solo PostgreSQL y MySQL)

Devuelve la posición de una subcadena dentro de otra.

Ejemplo:

1SELECT POSITION('a' IN nombre) FROM empleados;

8. LEFT() y RIGHT() - Extraer Caracteres desde la Izquierda o Derecha

  • LEFT() extrae los primeros N caracteres.
  • RIGHT() extrae los últimos N caracteres.

Ejemplo:

1SELECT LEFT(nombre, 3), RIGHT(nombre, 3)
2FROM empleados;

Ejemplo:

extraer los dominios de las direcciones de correo (lo que está después de @)

1SELECT SUBSTRING(email, LOCATE('@', email) + 1) AS dominio
2FROM empleados;

9. SUBSTRING_INDEX() y SPLIT_PART() - Divide la cadena y extrae una parte

Ejemplo:

1SELECT email, SUBSTRING_INDEX(email, '@', -1) AS dominio
2FROM empleados;