Sintaxis de BigQuery

BigQuery es el almacén de datos de Google totalmente gestionado y sin servidor que permite a las empresas almacenar y manejar grandes cantidades de datos sin tener que invertir en infraestructura. Para recuperar datos de BigQuery, pueden utilizar la sintaxis SQL para ejecutar consultas.

En este artículo encontrará una guía sencilla sobre la sintaxis SQL de BigQuery y aprenderá a escribir sus primeras consultas SQL.

Sintaxis SQL de BigQuery

La sintaxis SQL hace referencia a las reglas del lenguaje que hay que seguir al escribir consultas SQL. Cada vez que escriba una sentencia, utilizará palabras clave como SELECT, FROM, WHERE y ORDER BY.

Nota: Para mejorar la legibilidad, seguiremos algunas prácticas recomendadas para escribir consultas SQL.

1) Utilizaremos mayúsculas para distinguir entre palabras clave y tablas o columnas. Por lo tanto, pondremos en mayúsculas las palabras clave, pero utilizaremos minúsculas para todas las tablas y columnas. 

2) Aunque podemos escribir varias sentencias en la misma línea, separaremos las sentencias utilizando nuevas líneas. 

Si desea iniciarse en BigQuery, a continuación encontrará una guía rápida de sintaxis SQL.

SELECCIONE

Utilizaremos la sentencia SELECT para seleccionar las columnas que devolverá la consulta.

Sintaxis SELECT

SELECT columna1, columna2, ...

FROM nombre_tabla;

En este ejemplo, le mostraremos cómo utilizar consultas SQL para recuperar datos de un conjunto de datos de baloncesto de la NCAA.

En primer lugar, ejecutaremos una consulta SQL para seleccionar tres columnas (school_ncaa, name y alias) de este conjunto de datos. 

Después de la sentencia SELECT, añada todas las columnas que desee seleccionar, separadas por comas. La cláusula FROM especifica la tabla que estamos consultando para recuperar los datos. 

SELECT escuela_ncaa, nombre, alias   

FROM `bigquery-public-data.ncaa_basketball.mbb_teams` ;

bigquery sintaxis 1

Esta consulta ha devuelto filas con las siguientes columnas:

  • school_ncaa - Esta columna contiene el nombre de la escuela asociada a cada equipo.
  • nombre - Esta columna contiene el nombre del equipo para cada fila.
  • alias - Esta columna contiene alias comunes o nombres abreviados utilizados para algunos equipos.

Como puede ver, ha devuelto todos los datos que he solicitado divididos en columnas. 

En este ejemplo, he pedido a BigQuery que devuelva los datos de estas tres columnas. Si desea seleccionar todas las columnas del conjunto de datos, utilice un asterisco (*) en su lugar.

SELECCIONAR * 

FROM `bigquery-public-data.ncaa_basketball.mbb_teams` ;

bigquery sintaxis 2

DONDE

Utilizaremos la cláusula WHERE para filtrar los datos del conjunto de datos.

Sintaxis WHERE

SELECT columna1, columna2, ...

FROM nombre_tabla

DONDE condición;

Digamos que quiero recuperar datos de todas las columnas pero sólo de las filas en las que la columna nombre sea igual a ‘Carmesí’. 

Así que vamos a desglosar la fórmula:

SELECT * - Especifica que queremos que se devuelvan todas las columnas. El * selecciona todas las columnas.

FROM bigquery-public-data.ncaa_basketball.mbb_teams - Esto especifica la tabla que estamos consultando, la tabla mbb_teams.

WHERE name = ‘Crimson’ - Esta cláusula WHERE filtra las filas a sólo aquellas en las que el valor de la columna name es igual a ‘Crimson’.

SELECCIONAR *  

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE name = ‘Crimson’;

bigquery sintaxis 3

Esta consulta SQL de BigQuery ha devuelto todas las columnas de las filas de la tabla mbb_teams donde la columna name es igual a ‘Crimson’.

Ahora utilizaré la condición OR porque quiero que BigQuery recupere las filas que coincidan con los nombres de los equipos ‘Crimson’ o ‘Tigers’. Añadiré una condición OR a la cláusula WHERE.

SELECT alias, escuela_ncaa, nombre, mercado

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE name = ‘Crimson’ OR name = ‘Tigers’;

bigquery sintaxis 4

Ahora BigQuery ha devuelto los datos de las filas cuyo nombre es ‘Crimson’ o ‘Tigers’.

Si quiero devolver varios valores con una cláusula WHERE, puedo añadir una condición IN a la fórmula. Cuando añado IN a la sentencia WHERE, BigQuery devolverá todos los valores entre paréntesis.

SELECT alias, escuela_ncaa, nombre, mercado

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE name IN (‘Crimson’,’Tigers’,’Gators’);

bigquery sintaxis 5

Si desea añadir varios filtros o varios criterios para que se cumplan en los resultados de la consulta, debe utilizar la condición Y. La condición AND devolverá valores sólo cuando se cumplan ambas condiciones.

En este ejemplo, quiero que BigQuery devuelva valores sólo para estos equipos: Tigres de Auburn o Tigres de Clemson. Por lo tanto, deben cumplirse ambos criterios. El nombre debe ser “Tigers” y la escuela debe ser Auburn o Clemson. Ésta es la fórmula que utilizaré:

SELECT alias, escuela_ncaa, nombre, mercado

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE name = ‘Tigers’ AND school_ncaa = ‘Auburn’ OR school_ncaa = ‘Clemson’;

bigquery sintaxis 6

Ahora digamos que quiero que BigQuery filtre las filas en las que el nombre empieza por ‘A’. A diferencia de los ejemplos anteriores, en los que utilicé la sentencia WHERE para devolver valores exactos, aquí utilizaré el operador LIKE para la coincidencia parcial de cadenas. Así es como puedo usar el comando LIKE:

SELECT alias, escuela_ncaa, nombre, mercado

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE nombre LIKE ‘A%’;

sintaxis de bigquery 7

Estos son algunos ejemplos de cómo puede utilizar el comando LIKE para filtrar datos basándose en criterios específicos.

COMO 

Resultado

LIKE ‘a%’

Devuelve los valores que empiezan por “a”

LIKE ‘%a’

Devuelve los valores que terminan en “a”

LIKE ‘%ty%’

Devuelve los valores que tienen “ty” en cualquier posición

LIKE ‘_s%’

Devuelve los valores que tienen “s” en la segunda posición

LIKE ‘a%s’

Devuelve los valores que empiezan por “a” y acaban por “s”.”

Si quiero que BigQuery filtre las filas en las que el nombre empieza por ‘A’, pero excluya los nombres que empiezan por ‘Ag’, puedo añadir un comando NOT LIKE.

SELECT alias, escuela_ncaa, nombre, mercado

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE nombre LIKE ‘A%’ AND nombre NO LIKE ‘Ag%’;

sintaxis de bigquery 8

ORDENAR POR

La sentencia ORDER BY se utiliza para ordenar los valores de una columna específica en orden ascendente o descendente.

ORDENAR POR sintaxis

SELECT columna1, columna2, ...

FROM nombre_tabla

ORDER BY columna1, columna2, ... ASC|DESC;

Escribiré una consulta para recuperar datos filtrados por un nombre de equipo específico y ordenaré los resultados por escuela en orden ascendente. Cuando ordeno los resultados en orden ascendente, la condición ASC es opcional.

SELECT alias, escuela_ncaa, nombre, mercado

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE nombre = ‘Tigres’

ORDER BY escuela_ncaa;

sintaxis de bigquery 9

Como puede ver, BigQuery ha ordenado los nombres de los colegios alfabéticamente. Si añado la condición DESC, ordenará los nombres de los colegios en orden descendente.

SELECT alias, escuela_ncaa, nombre, mercado

FROM `bigquery-public-data.ncaa_basketball.mbb_teams`

WHERE nombre = ‘Tigres’

ORDER BY escuela_ncaa DESC;

sintaxis bigquery 10

Cómo conectar BigQuery a Google Sheets

Ahí lo tienes. Así es como puedes escribir tus primeras consultas usando SQL en BigQuery. Si eres usuario de hojas de cálculo, echa un vistazo a este artículo sobre Obtener datos de BigQuery a Google Sheets automáticamente.

Gestione fácilmente grandes conjuntos de datos

Utiliza Sheetgo para conectar BigQuery con Google Sheets y manejar grandes volúmenes de datos de forma eficiente.

También te puede gustar...

Más allá de la RPA: Por qué el futuro de la automatización de hojas de cálculo pasa por los datos

Ha buscado "RPA" para eliminar tareas repetitivas. Pero ¿y si el problema no es la tarea, sino los datos? El "reflejo RPA" Todo equipo...

Cómo conectar el lago a los usuarios de la empresa con una base de datos sin código

Ha invertido en un Lakehouse moderno. Por qué su equipo financiero sigue pidiendo exportaciones CSV? La paradoja de los datos modernos Ha...
datascience

Gestión de inventarios de joyería: cómo elegir el sistema adecuado

La gestión del inventario de joyería es más compleja que en otros sectores. Con artículos de gran valor, materias primas preciosas e intrincados...