A continuación se presentan los principales componentes de una consulta SQL. Comprender estos componentes es fundamental para escribir consultas SQL efectivas y realizar operaciones en una base de datos relacional de manera precisa y eficiente.

Comandos SQL

Son las instrucciones generales que se utilizan para realizar acciones en una base de datos relacional.

SELECT

Se utiliza para recuperar datos de una o más tablas de la base de datos.

En su sintaxis indicamos los campos que queremos nos muestre. Los campos van separados por comas, cuando se señale más de uno.

También se pueden realizar cálculos o manipulaciones en este comando.

Otros comandos

Existen otros muchos comandos como INSERT INTO, UPDATE, DELETE, CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, GRANT, REVOKE, etc.

Cláusulas

Son componentes específicos de ciertos comandos SQL que proporcionan instrucciones adicionales o condiciones para realizar la acción deseada.

FROM

Aquí indicamos la tabla de la cual se debe extraer la información.

Por ejemplo: customer_data.customer_address

En el ejemplo se señala el conjunto de datos "customer_data" y la tabla "customer_address" con la que vamos a trabajar.

WHERE

Aquí indicamos las condiciones que deben cumplir los datos arrojados, una especie de filtro. Esta cláusula es opcional.

DISTINCT

Se utiliza para eliminar filas duplicadas en los resultados de la consulta.

GROUP BY

Se utiliza para agrupar filas de datos basadas en un conjunto de columnas.

HAVING

Se utiliza para filtrar grupos de filas generados por la cláusula GROUP BY.

JOIN

Se utiliza para combinar filas de dos o más tablas basadas en una condición relacionada.

ORDER BY

Se utiliza para ordenar el resultado de una consulta en función de una o más columnas.

Funciones SQL

Son herramientas que se utilizan dentro de los comandos  o cláusulas SQL para realizar cálculos o manipulaciones en los datos. Hay muchas más funciones en SQL además de las mencionadas.

CAST

Sirve para convertir valores de determinado campo o atributo de un tipo de dato a otro. Esto es crucial cuando se requiere manipular datos para operaciones, comparaciones o al almacenar/recuperar información en formatos específicos.

Algunos de los tipos de datos más frecuentes son los siguientes:

BOOLEAN: Representa dos valores, True (verdadero) o False (falso). Se utiliza para realizar operaciones lógicas y de control de flujo.

DATE: Tipo de dato utilizado para representar fechas, incluyendo año, mes y día. Ejemplo: 2024-04-05.

FLOAT: Número de punto flotante, que puede representar fracciones y números con decimales. Ejemplo: -1.23, 0.0, 3.14...

INTEGER: Número entero, sin parte decimal. Ejemplo: -1, 0, 1, 2, 3...

STRING: Cadenas de caracteres alfanuméricos, que pueden incluir letras, números, símbolos y espacios. Ejemplo: "Hola123", "¡Bienvenido!", "2023".

CAST se puede usar, por ejemplo, para convertir valores introducidos como texto (STRING) a números (FLOAT), para poder operar adecuadamente con ellos.

La sintaxis de CAST es la siguiente:

SELECT CAST(campo_texto AS FLOAT) FROM tabla;

Este comando convierte los valores del campo campo_texto de una cadena de caracteres a números de punto flotante, permitiendo realizar operaciones matemáticas con esos valores.

COALESCE

Devuelve el primer valor no nulo de su lista de argumentos. Se usa comúnmente para manejar valores nulos en bases de datos, proporcionando valores alternativos en consultas, asegurando que la consulta devuelva datos útiles incluso en presencia de nulos.

La sintaxis de COALESCE es la siguiente, en una tabla con N columnas:

COALESCE(columna_1, columna_2, ..., columna_N)

En este ejemplo, si algún valor consultado del campo_1 es nulo, pondrá el valor del campo_2 en su defecto, y asi sucesivamente hasta la columna_N. Si todos los valores en la secuencia son nulos, COALESCE resultará en nulo.

CONCAT

Cumple una función similar a la función CONCATENAR de las hojas de cálculo.

La sistanxis de CONCAT cuando quiero concatenar los campos columna_1 y columna_2 es la siguiente:

CONCAT(columna_1, columna_2)

LENGTH

Devuelve la longitud de una cadena de caracteres.

SUBSTR

Se utiliza para extraer una subcadena de una cadena de caracteres.

La sintaxis general es SUBSTR(cadena, inicio, longitud).

cadena: es la cadena de caracteres de la que se extraerá la subcadena.
inicio: es la posición en la cadena donde comenzará la extracción de la subcadena. La numeración de las posiciones comienza generalmente en 1, lo que significa que el primer carácter de la cadena está en la posición 1.
longitud: es el número de caracteres a extraer a partir de la posición de inicio.

Ejemplo de uso en la cláusula WHERE para filtrar los resultados, si por ejemplo además de los registros con valores "US" existen campos que tienen valores "USA" que también se desea sean considerados:

SUBSTR(country,1,2) = 'US'

Esta función extraerá los dos primeros caracteres de la cadena contenida en el campo "country" y se compararán con la cadena 'US'. Si los dos primeros caracteres del campo "country" son 'US', serán considerados en los resultados arrojados.

Esto permite considerar registros cuyo campo country comience tanto con 'US' como con 'USA', entre otros posibles valores que comiencen con 'US'.

TRIM

Se utiliza para eliminar espacios (u otros caracteres especificados) del inicio y/o final de una cadena de caracteres.

La sintaxis para eliminar espacios en blanco es TRIM(cadena).

cadena: es la cadena de caracteres de la que se eliminarán los espacios en blanco del inicio y del final de la cadena.

Ejemplo de uso en la cláusula WHERE para filtrar los resultados, si por ejemplo, tenemos valores que deberían ser iguales entre si, pero hay algunos campos con valores que contienen indebidamente espacios en blanco al comienzo y/o al final:

TRIM(state) = 'HO'

Esta función eliminará los espacios en blanco al comienzo y/o al final de cualquier cadena del campo "state" y los comparará con la cadena 'HO', de existir coincidencia los registros correspondientes serán considerados en los resultados de la consulta arrojados. Entonces se considerarán todos los registros que contengan 'HO', ' HO', 'HO ' y ' HO '.

Expresiones SQL

Combinaciones de valores, operadores y funciones que se evalúan para producir un resultado. Las expresiones se utilizan en muchos aspectos de una consulta SQL para realizar cálculos, comparaciones y manipulaciones de datos.

CASE

Se utiliza para implementar lógica condicional dentro de una consulta SQL. Funciona de manera similar a las estructuras "if-else" en lenguajes de programación como Python o Java. La expresión CASE evalúa las condiciones en secuencia y devuelve un valor cuando se cumple una condición.

Por ejemplo:

SELECT
customer_id,
CASE
WHEN first_name = 'Tnoy' THEN 'Tony'
WHEN first_name = 'Tmo' THEN 'Tom'
WHEN first_name = 'Rachle' THEN 'Rachel'
ELSE first_name
END AS cleaned_name
FROM
customer_data.customer_name

En este ejemplo, CASE se utiliza para examinar cada valor en la columna first_name de la tabla customer_data.customer_name y corregir ciertos errores tipográficos específicos de acuerdo con las condiciones definidas:

    • Si first_name es 'Tnoy', lo reemplaza por 'Tony'.
    • Si first_name es 'Tmo', lo reemplaza por 'Tom'.
    • Si first_name es 'Rachle', lo reemplaza por 'Rachel'.
    • Para cualquier otro valor de first_name que no cumpla con las condiciones anteriores, mantiene el valor original de first_name.

La cláusula ELSE aquí actúa como una "red de seguridad", asegurando que si ninguna de las condiciones especificadas en las declaraciones WHEN se cumple, el valor original de first_name se utilizará sin cambios.

Este uso de la expresión CASE es particularmente útil para la limpieza de datos y la normalización de valores dentro de una base de datos, permitiendo ajustes específicos en los datos sin la necesidad de actualizar o modificar la tabla subyacente.