BigQuery é o data warehouse totalmente gerenciado e sem servidor do Google que permite que as empresas armazenem e manipulem grandes quantidades de dados sem precisar investir em infraestrutura. Para recuperar dados do BigQuery, é possível usar a sintaxe SQL para executar consultas.
Neste artigo, você encontrará um guia fácil para a sintaxe SQL do BigQuery e aprenderá a escrever suas primeiras consultas SQL.
Sintaxe SQL do BigQuery
A sintaxe SQL refere-se às regras de linguagem que você precisa seguir ao escrever consultas SQL. Sempre que escrever uma instrução, você usará palavras-chave como SELECT, FROM, WHERE e ORDER BY.
Observação: para melhorar a legibilidade, seguiremos algumas práticas recomendadas para escrever consultas SQL.
1) Usaremos letras maiúsculas para distinguir entre palavras-chave e tabelas ou colunas. Portanto, usaremos palavras-chave em letras maiúsculas, mas usaremos letras minúsculas para todas as tabelas e colunas.
2) Embora possamos escrever várias instruções na mesma linha, separaremos as instruções usando novas linhas.
Se quiser começar a usar o BigQuery, você encontrará um guia de início rápido sobre a sintaxe SQL abaixo.
SELECIONAR
Usaremos a instrução SELECT para selecionar as colunas que a consulta retornará.
Sintaxe SELECT
SELECT coluna1, coluna2, ...
FROM nome_da_tabela;
Neste exemplo, mostraremos como usar consultas SQL para recuperar dados de um conjunto de dados de basquete da NCAA.
Primeiro, executaremos uma consulta SQL para selecionar três colunas - school_ncaa, name e alias - desse conjunto de dados.
Após a instrução SELECT, adicione todas as colunas que deseja selecionar, separadas por vírgulas. A cláusula FROM especifica a tabela que estamos consultando para recuperar os dados.
SELECT school_ncaa, name, alias
FROM `bigquery-public-data.ncaa_basketball.mbb_teams` ;
Essa consulta retornou linhas com as seguintes colunas:
- school_ncaa - Essa coluna contém o nome da escola associada a cada equipe.
- name - Essa coluna contém o nome da equipe para cada linha.
- alias - Essa coluna contém aliases comuns ou nomes abreviados usados para algumas equipes.
Como você pode ver, ele retornou todos os dados que solicitei divididos em colunas.
Neste exemplo, solicitei ao BigQuery que retornasse os dados dessas três colunas. Se você quiser selecionar todas as colunas do conjunto de dados, use um asterisco (*) em vez disso.
SELECT *
FROM `bigquery-public-data.ncaa_basketball.mbb_teams` ;
ONDE
Usaremos a cláusula WHERE para filtrar os dados do conjunto de dados.
Sintaxe WHERE
SELECT coluna1, coluna2, ...
FROM nome_da_tabela
ONDE condição;
Digamos que eu queira recuperar dados de todas as colunas, mas somente das linhas em que a coluna de nome seja igual a ‘Crimson’.
Então, vamos detalhar a fórmula:
SELECT * - Especifica que queremos que todas as colunas sejam retornadas. O * seleciona todas as colunas.
FROM bigquery-public-data.ncaa_basketball.mbb_teams - Isso especifica a tabela que estamos consultando, a tabela mbb_teams.
WHERE name = ‘Crimson’ - Essa cláusula WHERE filtra as linhas apenas para aquelas em que o valor da coluna name é igual a ‘Crimson’.
SELECT *
FROM `bigquery-public-data.ncaa_basketball.mbb_teams`
WHERE name = ‘Crimson’;
Essa consulta SQL do BigQuery retornou todas as colunas das linhas da tabela mbb_teams em que a coluna name é igual a ‘Crimson’.
Agora usarei a condição OR porque quero que o BigQuery recupere as linhas que correspondam aos nomes de equipe ‘Crimson’ ou ‘Tigers’. Adicionarei uma condição OR à cláusula WHERE.
SELECT alias, school_ncaa, name, market
FROM `bigquery-public-data.ncaa_basketball.mbb_teams`
WHERE name = ‘Crimson’ OR name = ‘Tigers’;
Agora, o BigQuery retornou dados de linhas em que o nome é ‘Crimson’ ou ‘Tigers’.
Se eu quiser retornar vários valores com uma cláusula WHERE, posso adicionar uma condição IN à fórmula. Quando eu adicionar IN à instrução WHERE, o BigQuery retornará todos os valores entre colchetes.
SELECT alias, school_ncaa, name, market
FROM `bigquery-public-data.ncaa_basketball.mbb_teams`
WHERE name IN (‘Crimson’,’Tigers’,’Gators’);
Se você quiser adicionar vários filtros ou vários critérios a serem atendidos nos resultados da consulta, deverá usar a condição AND. A condição AND retornará valores somente quando ambas as condições forem atendidas.
Neste exemplo, quero que o BigQuery retorne valores apenas para estas equipes: Auburn Tigers ou Clemson Tigers. Portanto, ambos os critérios devem ser atendidos. O nome deve ser “Tigers”, e a escola deve ser Auburn ou Clemson. Aqui está a fórmula que usarei:
SELECT alias, school_ncaa, name, market
FROM `bigquery-public-data.ncaa_basketball.mbb_teams`
WHERE name = ‘Tigers’ AND school_ncaa = ‘Auburn’ OR school_ncaa = ‘Clemson’;
Agora, digamos que eu queira que o BigQuery filtre as linhas em que o nome começa com ‘A’. Diferentemente dos exemplos anteriores, quando usei a instrução WHERE para retornar valores exatos, aqui usarei o operador LIKE para correspondência parcial de strings. Veja como posso usar o comando LIKE:
SELECT alias, school_ncaa, name, market
FROM `bigquery-public-data.ncaa_basketball.mbb_teams`
WHERE name LIKE ‘A%’;
Esses são alguns exemplos de como você pode usar o comando LIKE para filtrar dados com base em critérios específicos.
|
GOSTO |
Resultado |
|
LIKE ‘a%’ |
Retorna valores que começam com “a” |
|
LIKE ‘%a’ |
Retorna valores que terminam com “a” |
|
LIKE ‘%ty%’ |
Retorna valores que têm “ty” em qualquer posição |
|
LIKE ‘_s%’ |
Retorna os valores que têm “s” na segunda posição |
|
LIKE ‘a%s’ |
Retorna valores que começam com “a” e terminam com “s” |
Se eu quiser que o BigQuery filtre as linhas em que o nome começa com ‘A’, mas exclua os nomes que começam com ‘Ag’, posso adicionar um comando NOT LIKE.
SELECT alias, school_ncaa, name, market
FROM `bigquery-public-data.ncaa_basketball.mbb_teams`
WHERE name LIKE ‘A%’ AND name NOT LIKE ‘Ag%’;
ORDER BY
O comando ORDER BY é usado para classificar valores de uma coluna específica em ordem crescente ou decrescente.
ORDER BY sintaxe
SELECT coluna1, coluna2, ...
FROM nome_da_tabela
ORDER BY column1, column2, ... ASC|DESC;
Vou escrever uma consulta para recuperar dados filtrados por um nome de equipe específico e ordenar os resultados por escola em ordem crescente. Quando eu ordeno os resultados em ordem crescente, a condição ASC é opcional.
SELECT alias, school_ncaa, name, market
FROM `bigquery-public-data.ncaa_basketball.mbb_teams`
WHERE name = ‘Tigres’
ORDER BY school_ncaa;
Como você pode ver, o BigQuery classificou os nomes das escolas em ordem alfabética. Se eu adicionar a condição DESC, ele classificará os nomes das escolas em ordem decrescente.
SELECT alias, school_ncaa, name, market
FROM `bigquery-public-data.ncaa_basketball.mbb_teams`
WHERE name = ‘Tigres’
ORDER BY school_ncaa DESC;
Como conectar o BigQuery ao Planilhas Google
É isso aí! É assim que você pode escrever suas primeiras consultas usando SQL no BigQuery. Se você for um usuário de planilhas, consulte este artigo sobre obtendo dados do BigQuery para o Google Sheets automaticamente.
