Volver a la lista de artículos Artículos
Lectura de 9 minutos

18 funciones SQL importantes y útiles para aprender cuanto antes

Iniciación a SQL: Funciones útiles para dominar

Aprender un nuevo lenguaje de programación puede parecer intimidante. Como cualquier otro lenguaje, un lenguaje de programación tiene un amplio vocabulario que necesitas dominar. En este artículo, veremos algunas de las funciones SQL más útiles que necesitas conocer.

Hay muchas funciones SQL útiles para trabajar con diferentes tipos de datos. Una vez que practiques con algunas de las más comunes, ganarás suficiente confianza para pasar a material más avanzado. Así pues, examinemos algunas de estas funciones SQL más comunes con más detalle.

1. FUNCIONES DE CADENA

Una cadena no es más que una serie de uno o más caracteres que se han encadenado. En pocas palabras, las funciones de cadena se ocupan de las cadenas.

Longitud

La función de cadena más sencilla de SQL es length. Como su nombre indica, length devuelve el número de caracteres que contiene una cadena dada (incluyendo espacios y puntuación). Veamos una simple sentencia select de PostgreSQL y alimentémosla con la cadena 'Hola, mi nombre es':

select length('Hello, my name is');

El resultado de ejecutar esta consulta es 17. Si contamos manualmente el número de caracteres, espacios incluidos, de la cadena anterior, veremos que 17 es una coincidencia exacta. Aunque al principio length puede parecer una función trivial, en realidad la utilizará con mucha frecuencia.

Recortar

¡Recortemos un poco de grasa! Otro ejemplo de la categoría de funciones SQL más útiles es trim. Elimina el exceso de espacios y tabulaciones del principio y el final de una cadena que pasamos como argumento. Por ejemplo, si pasamos la cadena "Hola, mi nombre es", recibiremos la misma cadena pero sin todos esos espacios iniciales y finales. Esta es una consulta básica con esa cadena:

select length('  Hello, my name is  ');

Como era de esperar, la consulta anterior devuelve 'Hello, my name is'.

Concatenar

La función concat combina(concatena) dos o más cadenas que pasamos como argumentos. He aquí un ejemplo de concatenación de cadenas en acción:

select concat(' Hello, ', 'my name is ', 'Paul');

Esta consulta devuelve la cadena 'Hello, my name is Paul'.

Upper

Dada una cadena, upper devuelve la misma cadena pero con todos sus caracteres en mayúsculas. Por lo tanto, si quieres que todo el mundo te oiga bien, puedes escribir la siguiente consulta:

select upper('Hello, my name is Paul');

Esto devuelve la cadena 'HELLO, MY NAME IS PAUL'.

Minúsculas

La función lower es lo contrario de upper: toma una cadena y devuelve la misma cadena con todos sus caracteres en minúsculas. Esta es una consulta que utiliza lower:

select lower('Hello, my name is Paul');

Como es de esperar, obtenemos la cadena 'hello, my name is paul'.

Initcap

Esta función pone en mayúsculas la primera letra (inicial) de cada palabra de una cadena dada. Por ejemplo, puede utilizar initcap para asegurarse de que el nombre que alguien ha proporcionado se ajusta a las reglas de mayúsculas. Este es un ejemplo de uso de la función:

select initcap('paul anderson');

El resultado de la consulta anterior es 'Paul Anderson'.

Por supuesto, hay muchas más funciones SQL útiles utilizadas para cadenas, como replace, substr, y otras. Para aprender más sobre ellas, consulte el curso interactivo de LearnSQL.es Funciones estándar de SQL ¡curso interactivo! Gracias a él, conocerás otras funciones SQL comunes que no he mencionado en este artículo.

2. FUNCIONES NUMÉRICAS

Las funciones numéricas simplemente trabajan con números, y hay bastantes funciones SQL útiles en esta categoría. Vamos a hablar de algunas de ellas.

Abs

¿Recorte? ¿Abs? Sí, sé lo que estás pensando, pero esto no es un programa de ejercicios. Abs es la abreviatura de absoluto; es una de las funciones SQL más comunes que calcula el valor absoluto de un valor numérico que le pasamos como argumento. En otras palabras, abs devuelve la versión positiva de un número dado. He aquí un ejemplo:

select abs(-22),abs(22);

Si has prestado atención en la clase de matemáticas, sabrás que estas dos llamadas a abs devuelven el número 22.

Redondear

La función round toma un número de punto flotante (decimal) y lo redondea como lo harías normalmente en papel. Mira este sencillo ejemplo:

select round(5.4),round(5.5),round(5.6);

Obtendríamos 5 (el siguiente número entero más pequeño), 6 (el siguiente número entero más grande) y 6 (el siguiente número entero más grande), respectivamente, para las tres llamadas al redondeo anteriores.

Techo

La función ceil devuelve el techo de un número, el primer entero mayor o igual a ese número. Para visualizar este proceso, coloque el número en cuestión (digamos -0,5) en una recta numérica estándar y muévase de izquierda a derecha, buscando el siguiente entero mayor (en este caso, es el 0). He aquí un ejemplo adicional:

select ceil(5.4),ceil(5.5),ceil(6);

Recibimos los números 6, 6 y 6 por estas tres llamadas.

Piso

Floor es el reverso de la función ceil; devuelve el piso del número decimal que pasamos como argumento - el primer entero que es menor o igual a ese número. Por ejemplo, el piso de -0,5 es -1, ya que es el primer entero que es menor que -0,5. Con la visualización de la recta numérica, se empieza en el número dado y se mueve de derecha a izquierda en busca de un entero. Si repetimos las llamadas anteriores con la función floor en su lugar:

select floor(5.4),floor(5.5),floor(6);

Recibimos estos tres números después de ejecutar la consulta anterior: 5, 5 y 6.

Signo

Una de las funciones más sencillas de esta lista, sign toma un número como argumento y devuelve -1 si el número es negativo, 0 si el número es 0 y 1 si el número es positivo. Así de fácil. He aquí un ejemplo:

select sign(-5),sign(0),sign(5);

Esta consulta devuelve los siguientes números: -1, 0 y 1.

Mod

Mod significa módulo. Se trata de una función SQL muy potente, pero aún así una de las más comunes, que devuelve el resto del primer argumento dividido por el segundo. Por ejemplo, al dividir 5 entre 2 se obtiene un resto de 1. Así, la llamada a la función mod(5, 2) devuelve el número 1.

El operador módulo tiene muchas aplicaciones útiles, y uno de sus usos comunes es determinar si un número dado es par o impar. Recordemos que si un número es par, el resto de la división de ese número por 2 es 0. De lo contrario, el resto es 1. Por lo tanto, dado un número n, se puede realizar mod(n, 2) para determinar si n es par o impar.

Hay muchas más funciones SQL útiles en la categoría numérica que deberías conocer, como trunc, trigonometric, logarithmic, power, root, y más. El mejor lugar para dominarlas es LearnSQL.es's Funciones estándar de SQL del curso. Si aún no lo has hecho, ¡ve a verlo!

3. FUNCIONES DE FECHA

Como el nombre de esta categoría sugiere, las funciones de fecha trabajan con fechas. En esta sección, veremos algunas de las funciones SQL más útiles de este tipo.

Fecha_actual

La primera en nuestra lista es current_date, una función SQL extremadamente útil que... ¡devuelve la fecha actual! Aquí hay un ejemplo de consulta:

select current_date;

Para nosotros, esto devolverá 2018-01-04.

Extraer

Esta función SQL común te permite extraer ciertas partes de una fecha (como el día, el mes o el año) que pasas como argumento. He aquí un ejemplo de los tres usos:

select extract(day from date'2017-1-1'),extract(month from date'2017-1-1'),extract(year from date'2017-1-1');

La consulta anterior devuelve los tres números siguientes: 1, 1 y 2017.

Date_trunc

La función date_trunc trunca los valores de una fecha dada a una granularidad específica. Digamos que tienes una fecha, pero quieres tener sólo el primer día del mes de esa fecha, truncarías el valor de la fecha a un parámetro "mes". Veamos un ejemplo:

select date_trunc('month',date'2017-4-2') 

Esto devolvería la fecha de 04-01-2017. Si introdujéramos el valor del año como granularidad:

select date_trunc('year',date'2017-4-2')

Recibiríamos el primer día del año introducido, el 01-01-2017.

4. FUNCIONES DIVERSAS

Además de las funciones que hemos cubierto hasta ahora, hay un par de funciones misceláneas que se utilizan comúnmente en la programación SQL.

Coalesce

A veces, te encontrarás con valores nulos cuando trabajes con datos tabulares. Estos representan información ausente o faltante. Desafortunadamente, cualquier cálculo que involucre un valor nulo devolverá null, y esto no siempre es ideal.

La función COALESCE toma una lista de argumentos y devuelve el primero de ellos que no contenga un valor nulo. En otras palabras, si SQL encuentra que el primer argumento proporcionado es nulo, pasará a evaluar el segundo argumento, repitiendo el proceso hasta que encuentre uno que no sea nulo o simplemente se quede sin argumentos.

Por ejemplo, supongamos que estamos trabajando con una tabla que tiene una columna numérica llamada columna_potencialmente_nula. Digamos que esta columna tiene varios valores, algunos que son nulos y otros que no lo son. Supongamos que ejecutamos el siguiente código:

select COALESCE(potentially_null_column, 0);

Aquí, la consulta utilizará el valor 0 siempre que una celda de la columna_potencialmente_nula almacene un valor nulo. Para las celdas de esa columna que no son nulas, la consulta simplemente utilizará sus valores. Esta función SQL es más útil en los cálculos que implican columnas que pueden contener valores nulos, ya que evita comportamientos inesperados. Para saber más sobre COALESCE y sus usos, consulte este útil artículo.

Mayor

Otra de las funciones SQL más útiles, greatest, toma una lista de expresiones y devuelve la mayor de ellas. Aquí tienes un ejemplo de su uso:

select greatest(1,2,3,5,6);

Naturalmente, esta consulta devuelve 6, ya que es el valor más grande de la lista que proporcionamos.

Least

Least es la inversa directa de greatest. Si escribimos la siguiente consulta:

select least(1,2,3,5,6);

Esta consulta devuelve 1, ya que es el valor más pequeño de la lista que hemos proporcionado.

Y una vez que conozcas estas útiles funciones SQL...

Hay una variedad de funciones SQL útiles para manipular cadenas, números, fechas y otros tipos de datos. Ahora que has aprendido un poco sobre lo básico, deberías considerar profundizar en estos temas para ampliar lo que ya sabes. ¡Para ello, simplemente no hay mejor lugar para empezar que LearnSQL.es! Nuestro paquete de cursos SQL avanzado Consulte paquete de cursos incluye los siguientes cursos de SQL:

  1. Funciones estándar de SQL - en este curso aprenderás a procesar datos numéricos, de texto y de otros tipos con las funciones SQL más útiles.
  2. Funciones de ventana - aquí aprenderá las funciones de ventana también conocidas como funciones SQL analíticas.
  3. Consultas recursivas y expresiones de tabla comunes - en este curso aprenderá a procesar árboles y gráficos en SQL, y a organizar eficazmente consultas y subconsultas SQL largas.

Ya has aprendido las funciones SQL más comunes. Ahora, lleve su autodesarrollo al siguiente nivel y domine las consultas SQL más desafiantes.