Funciones de Cadenas, Fechas y Condicionales en SQL: Guía Práctica con Ejemplos

Informática y Telecomunicaciones5,21 KB

Funciones de manipulación de cadenas en SQL

A continuación se presentan las principales funciones para el tratamiento de cadenas de texto, con ejemplos y resultados.

Extracción de subcadenas

  • substring(cadena, posicion, longitud): Ejemplo: select substring('Buenas tardes', 3, 5); devuelve "enas".
  • mid(cadena, posicion, longitud): Ejemplo: select mid('Buenas tardes' from 3 for 5); devuelve "enas".
  • substring(cadena, posicion): Ejemplo: select substring('Margarita', 4); devuelve "garita".
  • substring(cadena from posicion): Ejemplo: select substring('Margarita' from 4); devuelve "garita".

Eliminación de espacios

ltrim y rtrim(cadena):

  • select ltrim(' Hola '); devuelve "Hola ".
  • select rtrim(' Hola '); devuelve " Hola".

Reemplazo de subcadenas

replace(cadena, cadenareemplazo, cadenareemplazar): devuelve la cadena con todas las ocurrencias de la subcadena a reemplazar por la subcadena de reemplazo.

Ejemplo: select replace('xxx.mysql.com', 'x', 'w'); devuelve www.mysql.com.

Repetición de cadenas

repeat(cadena, cantidad): devuelve la cadena repetida la cantidad de veces especificada. Si cantidad es menor o igual a cero, devuelve una cadena vacía.

Ejemplo: select repeat('hola', 3); devuelve "holaholahola".

Inversión de cadenas

reverse(cadena): devuelve la cadena invirtiendo el orden de los caracteres.

Ejemplo: select reverse('Hola'); devuelve "aloH".

Inserción de subcadenas

insert(cadena, posicion, longitud, nuevacadena): Ejemplo: select insert('buenas tardes', 2, 6, 'xx'); devuelve "bxxtardes".

Conversión a minúsculas

lcase(cadena) y lower(cadena)

  • select lower('HOLA ESTUDIAnte'); devuelve "hola estudiante".
  • select lcase('HOLA ESTUDIAnte'); devuelve "hola estudiante".

Conversión a mayúsculas

ucase(cadena) y upper(cadena) devuelven la cadena con todos los caracteres en mayúsculas.

  • select upper('HOLA ESTUDIAnte'); devuelve "HOLA ESTUDIANTE".
  • select ucase('HOLA ESTUDIAnte'); devuelve "HOLA ESTUDIANTE".

Funciones de fechas

Estas funciones permiten trabajar con fechas del sistema y realizar operaciones aritméticas sobre ellas.

Fecha y hora del sistema

  • sysdate(): devuelve la fecha del sistema.
  • current_date: devuelve la fecha de hoy con formato "YYYY-MM-DD" o "YYYYMMDD".
  • current_time: devuelve la hora actual con formato "HH:MM:SS" o "HHMMSS".

Suma y resta de fechas

  • adddate(fecha, interval expresion): Ejemplo: adddate('2006-10-10', interval 25 day) devuelve "2006-11-04".
  • adddate(fecha, dias): Ejemplo: adddate('2006-10-10', 25) devuelve "2006-11-04".
  • date_add(fecha, interval expresion tipo) y date_sub(fecha, interval expresion tipo): Ejemplo: date_add('2006-08-10', interval 1 month) devuelve "2006-09-10".

Diferencia y nombre de días

  • datediff(fecha1, fecha2): devuelve la cantidad de días entre fecha1 y fecha2.
  • dayname(fecha): devuelve el nombre del día de la semana. Ejemplo: dayname('2006-08-10') devuelve "thursday".

Estructuras condicionales: IF y CASE

Función IF

Permite evaluar una condición y devolver un valor según sea verdadera o falsa.

select editorial, if(count(*) > 4, '5 o más', 'menos de 5') as cantidad from libros group by editorial order by cantidad;

Expresión CASE (valor simple)

select editorial, case count(*) when 1 then 1 when 2 then 2 when 3 then 3 else 'Más de 3' end as 'cantidad' from libros group by editorial;

Expresión CASE aplicada a una tabla de películas

El siguiente ejemplo asigna una etiqueta de puntuación según el valor de movieRating:

select m.movieTitle as title, m.movieRating as rating,
case m.movieRating
when 4 then "4 points"
when 4.5 then "4.5 points"
else "5 points" end as point
from movie as m
order by m.movieRating desc;

Nota: en el documento original este mismo bloque de consulta aparecía repetido tres veces; se ha conservado una única versión para evitar redundancia, sin eliminar contenido útil.

Descargar

PDF Word HTML