Funciones de texto · guía práctica

SUBSTRING

Extrae una parte de una cadena indicando desde dónde empezar y cuántos caracteres necesitas.

Lectura: 7–9 minEjemplo comprobadoPráctica con pistas
Contenido de esta guía

Qué hace SUBSTRING

SUBSTRING extrae una parte de un texto. Debes indicar la cadena, la posición inicial y, cuando la necesitas, la cantidad de caracteres. Sirve para mostrar prefijos, separar códigos conocidos o preparar una vista de datos.

En SQL, la primera posición suele ser 1, no 0. Esta diferencia provoca muchos errores cuando vienes de lenguajes de programación que empiezan a contar desde cero.

Sintaxis básica

Forma común
SUBSTRING(texto, inicio, cantidad)
SQLite
SUBSTR(texto, inicio, cantidad)

SQLite admite substr y también reconoce substring como alias en versiones modernas. PostgreSQL dispone de varias formas de substring. MySQL ofrece SUBSTRING y SUBSTR.

Ejemplo guiado

Queremos mostrar los cinco primeros caracteres de cada nombre de producto:

SQLite
SELECT nombre,
       SUBSTR(nombre, 1, 5) AS inicio
FROM productos
ORDER BY id
LIMIT 6;
Primeros cinco caracteres
nombreinicio
RatónRatón
TecladoTecla
Monitor 24Monit
Portátil ProPortá
AuricularesAuric
Monitor 27Monit

Cómo leer los argumentos

  1. nombre es el texto de origen.
  2. 1 indica que la extracción empieza en el primer carácter.
  3. 5 establece el máximo de caracteres.
  4. Si el texto es más corto, SQLite devuelve la parte disponible sin rellenarla.

Extraer no es validar. Que un código tenga un prefijo concreto no garantiza que toda su estructura sea correcta. Utiliza restricciones o reglas de validación cuando necesites asegurar el formato de los datos.

Error frecuente

Empezar en cero

Posición equivocada para la intención
SELECT SUBSTR(nombre, 0, 5) FROM productos;

Las posiciones de estas funciones SQL se interpretan desde uno. Utiliza 1 para comenzar en el primer carácter. Algunos motores permiten posiciones negativas con reglas propias, pero no conviene asumir que esa variante es portable.

Comprueba lo aprendido

Básica · apoyo gradual

Crea un prefijo de ciudad

Muestra ciudad y sus tres primeros caracteres con el alias prefijo. Evita ciudades repetidas y ordena alfabéticamente.

Autónoma · transferencia

Extrae el mes de una fecha almacenada como texto

Muestra id, nombre, fecha_registro y los primeros siete caracteres de la fecha con el alias mes_registro. Ordena por id y limita el resultado a cinco clientes.

Criterio de éxito: el valor derivado conserva el formato AAAA-MM; por ejemplo, 2025-01-08 se convierte en 2025-01.

Diferencias entre motores

El nombre, la forma de los argumentos y las variantes con expresiones regulares cambian. Para una lección inicial, utiliza la forma de posición y longitud que admita tu motor. No copies una forma avanzada de PostgreSQL a MySQL o SQLite sin revisarla.

Qué debes recordar

  • La primera posición suele ser 1.
  • La cantidad limita los caracteres devueltos.
  • Un texto corto devuelve la parte disponible.
  • SUBSTR y SUBSTRING no tienen exactamente las mismas variantes en todos los motores.

Conceptos relacionados

Fuentes técnicas consultadas

Se utilizaron para comprobar nombres, posiciones y variantes.