Buscar
tee / insights
LEARNING / SQLHOME
DATA → QUERY → RESULT

Mapa de sintaxe SQL

Encontre SQL por tarefa: consultas, agregação, COPY INTO, atualizações, definições de objetos e permissões. Compare sintaxe, requisitos e efeitos no Snowflake e no BigQuery.

Dialeto SQL

Cobertura e referências oficiais

Inclui 23 grupos de consultas e 22 tópicos de operações. São exemplos representativos, não todas as opções ou todos os comandos do produto.

Operações conferidas: 2026-10-06

Cobertura e referências oficiais
ÁreaSintaxe e recursosCoberturaReferências oficiais
Consultas e análiseSELECT / JOIN / GROUP BY / WINDOWExemplos representativosSnowflake · BigQuery
Carga e exportaçãoCOPY INTO / LOAD DATA / EXPORT DATAExemplos representativosSnowflake · BigQuery
Manipulação de dadosINSERT / UPDATE / DELETE / MERGE / TRUNCATEExemplos representativosSnowflake · BigQuery
Definição de objetosTABLE / VIEW / SCHEMA / FUNCTION / PROCEDUREExemplos representativosSnowflake · BigQuery
Transações, acesso e scriptsTRANSACTION / GRANT / REVOKE / DECLARE / INFORMATION_SCHEMAExemplos representativosSnowflake · BigQuery
Automação e pipelinesPIPE / STREAM / TASK / DYNAMIC TABLE / scheduled queriesSomente referência oficialSnowflake · BigQuery
Tabelas externas e especiaisEXTERNAL TABLE / ICEBERG / SNAPSHOT / CLONE / MATERIALIZED VIEWSomente referência oficialSnowflake · BigQuery
Contas e computaçãoACCOUNT / USER / ROLE / WAREHOUSE / IAM / reservationsSomente referência oficialSnowflake · BigQuery
Segurança e compartilhamentoPOLICY / MASKING / ROW ACCESS / sharing / connectionsSomente referência oficialSnowflake · BigQuery
Aprendizado de máquina e extensõesML / Cortex / search indexes / vector indexes / applicationsSomente referência oficialSnowflake · BigQuery

Visão geral

Abrange consultas e operações comuns. A tabela distingue exemplos de áreas com apenas referências.

Preparar entrada

Escolher a origem

FROM indica a tabela ou resultado a processar.

Nomear / aninhar

WITH e uma subconsulta em FROM podem representar o mesmo resultado intermediário.

Unir na horizontal: quais linhas ficam?

Correspondências / toda a esquerda / ambos os lados / todas as combinações.

Condição da junção / filtro posterior

Em LEFT JOIN, mudar a posição da condição altera as linhas mantidas.

Valores aninhados em linhas

Expandir elementos de um valor composto em mais linhas.

Filtrar linhas

Quando filtrar?

WHERE antes de agregar; HAVING depois; QUALIFY após as janelas.

Agregar linhas

N linhas → 1 valor

Escolha o que contar ou qual resumo calcular.

Ordenar dentro da agregação / calcular percentis

WITHIN GROUP ordena os valores agregados; BigQuery usa ORDER BY dentro da função.

Escolher valores para a agregação

Controle duplicatas, NULL, linhas de valor máximo e limites de entrada dentro da função.

Unidade de agregação / deduplicação

GROUP BY define grupos; DISTINCT remove duplicatas das linhas selecionadas.

Analisar sem reduzir linhas

Reduzir / anexar a cada linha

Agregação: N linhas→uma por grupo. Janela: N linhas→N linhas.

Classificação: como tratar empates?

Sequência única / empates com lacunas / empates sem lacunas.

Ignorar NULL / ordenar linhas NULL

IGNORE / RESPECT NULLS define os valores vistos pela função; NULLS FIRST / LAST define a posição das linhas.

Avançado: posição / faixa de valores

ROWS usa posições; RANGE usa valores de ordenação.

Criar valores

Comparar / combinar condições

Comparações retornam TRUE, FALSE ou NULL; a lógica combina os resultados.

Detectar / preencher ausências

Igualdade com NULL é desconhecida. Use IS NULL.

Ramificação geral / atalho binário

CASE aceita várias condições; IF / IFF abrevia duas saídas.

Conversão normal / segura

Valor não convertível: CAST gera erro; a versão segura retorna NULL.

Remover sinal / arredondar

ABS retorna magnitude; ROUND arredonda para a precisão indicada.

Transformar / extrair / concatenar

Quatro operações na mesma string.

Atual / somar / diferença / truncar

A operação é compartilhada; a ordem dos argumentos e a sintaxe da unidade mudam.

Valor aninhado / string SQL

Ambos podem mostrar 7, mas os tipos diferem.

Combinar conjuntos

Unir na vertical: e as duplicatas?

Os mesmos A e B: manter / remover duplicatas / comuns / só a esquerda.

Avançado: alinhar pelo nome

Alinhar nomes mesmo com posições diferentes.

Preparar resultado

Preparar o resultado

Deduplicar → ordenar → pular linhas iniciais → pegar até o limite.

Importar e exportar arquivos

Carregar arquivos em uma tabelaCOPY INTO <table>Carrega as linhas do arquivo. Confira o resultado da carga e as linhas de destino.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Prepare orders vazia e um CSV com cabeçalho id,amount. Envie ao stage interno csv_stage do Snowflake ou ao Cloud Storage com localização compatível para BigQuery. Substitua YOUR_BUCKET.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
COPY INTO tbi_lab.orders
FROM @tbi_lab.csv_stage/orders.csv
FILE_FORMAT = (TYPE = CSV SKIP_HEADER = 1)
ON_ERROR = 'ABORT_STATEMENT';

Alteração esperada

Carrega as linhas do arquivo. Confira o resultado da carga e as linhas de destino.

Como verificar

Como verificar
SELECT id, amount FROM tbi_lab.orders ORDER BY id;

ON_ERROR controla falhas; ABORT_STATEMENT interrompe a instrução. O histórico pode ignorar arquivos já carregados. FORCE=TRUE pode duplicar dados.

Fontes oficiais · Snowflake 1

# load-files
Exportar uma tabela para arquivosCOPY INTO <location>Grava o resultado em arquivos CSV. Confira o destino.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Prepare orders com duas linhas e um destino gravável: csv_stage no Snowflake ou Cloud Storage substituindo YOUR_BUCKET no BigQuery.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
COPY INTO @tbi_lab.csv_stage/export_run/
FROM (SELECT id, amount FROM tbi_lab.orders)
FILE_FORMAT = (TYPE = CSV)
HEADER = TRUE;

Alteração esperada

Grava o resultado em arquivos CSV. Confira o destino.

Como verificar

Como verificar
LIST @tbi_lab.csv_stage/export_run/;

Use um novo destino a cada execução. A saída pode ter vários arquivos. Confira a quantidade e o conteúdo.

Fontes oficiais · Snowflake 1

# unload-files
Preparar stage e formato de arquivoCREATE STAGE · CREATE FILE FORMAT · PUT · LISTCria um stage interno vazio e um formato CSV no Snowflake.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Prepare tbi_lab e as permissões de criação e leitura necessárias.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
CREATE FILE FORMAT tbi_lab.csv_format
  TYPE = CSV SKIP_HEADER = 1;
CREATE STAGE tbi_lab.csv_stage
  FILE_FORMAT = (FORMAT_NAME = 'tbi_lab.csv_format');

Alteração esperada

Cria um stage interno vazio e um formato CSV no Snowflake.

Como verificar

Como verificar
LIST @tbi_lab.csv_stage;

Criar o stage não envia arquivos. Envie orders.csv pelo Snowsight ou por um cliente compatível com PUT. PUT usa stages internos.

Fontes oficiais · Snowflake 1 · Snowflake 2 · Snowflake 3

# stage-format
Validar arquivos antes da cargaVALIDATION_MODE · RETURN_ERRORS · ON_ERROR · COPY INTONo Snowflake, retorna erros do arquivo sem inserir linhas.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Prepare orders vazia e um CSV com cabeçalho id,amount. Envie ao stage interno csv_stage do Snowflake ou ao Cloud Storage com localização compatível para BigQuery. Substitua YOUR_BUCKET.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
COPY INTO tbi_lab.orders
FROM @tbi_lab.csv_stage/orders.csv
FILE_FORMAT = (TYPE = CSV SKIP_HEADER = 1)
VALIDATION_MODE = 'RETURN_ERRORS';

Alteração esperada

No Snowflake, retorna erros do arquivo sem inserir linhas.

Como verificar

Como verificar
SELECT id, amount FROM tbi_lab.orders ORDER BY id;

VALIDATION_MODE valida sem carregar. Não aceita SELECT de transformação. Corrija os erros antes de executar COPY normal.

Fontes oficiais · Snowflake 1

# validate-load

Alterar linhas armazenadas

Inserir linhasINSERT INTO · INSERT SELECTAdiciona id=3, amount=300.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Comece com tbi_lab.orders(id, amount) contendo (1,100) e (2,200). Restaure esse estado antes de cada exemplo; eles não são passos sequenciais.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
INSERT INTO tbi_lab.orders (id, amount)
VALUES (3, 300);

Alteração esperada

Adiciona id=3, amount=300.

Como verificar

Como verificar
SELECT id, amount FROM tbi_lab.orders ORDER BY id;

Fontes oficiais · Snowflake 1

# insert-rows
Atualizar linhas correspondentesUPDATE · SET · WHEREAltera amount para 150 em id=1.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Comece com tbi_lab.orders(id, amount) contendo (1,100) e (2,200). Restaure esse estado antes de cada exemplo; eles não são passos sequenciais.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
UPDATE tbi_lab.orders SET amount = 150 WHERE id = 1;

Alteração esperada

Altera amount para 150 em id=1.

Como verificar

Como verificar
SELECT id, amount FROM tbi_lab.orders ORDER BY id;

Confira as linhas com SELECT e o mesmo WHERE. O BigQuery exige WHERE para UPDATE e DELETE.

Fontes oficiais · Snowflake 1

# update-rows
Excluir linhas correspondentesDELETE FROM · WHERERemove a linha id=2.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Comece com tbi_lab.orders(id, amount) contendo (1,100) e (2,200). Restaure esse estado antes de cada exemplo; eles não são passos sequenciais.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
DELETE FROM tbi_lab.orders WHERE id = 2;

Alteração esperada

Remove a linha id=2.

Como verificar

Como verificar
SELECT id, amount FROM tbi_lab.orders ORDER BY id;

Confira as linhas com SELECT e o mesmo WHERE. O BigQuery exige WHERE para UPDATE e DELETE.

Fontes oficiais · Snowflake 1

# delete-rows
Atualizar correspondências e inserir novas linhasMERGE INTO · WHEN MATCHED · WHEN NOT MATCHEDAtualiza id=1 para 150 e insere id=3 com 300.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Comece com tbi_lab.orders(id, amount) contendo (1,100) e (2,200). Restaure esse estado antes de cada exemplo; eles não são passos sequenciais.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
MERGE INTO tbi_lab.orders AS t
USING (SELECT 1 AS id, 150 AS amount
       UNION ALL SELECT 3, 300) AS s
ON t.id = s.id
WHEN MATCHED THEN UPDATE SET amount = s.amount
WHEN NOT MATCHED THEN INSERT (id, amount)
  VALUES (s.id, s.amount);

Alteração esperada

Atualiza id=1 para 150 e insere id=3 com 300.

Como verificar

Como verificar
SELECT id, amount FROM tbi_lab.orders ORDER BY id;

Evite várias linhas de origem para uma chave de destino atualizada. O comportamento depende do produto e da ação.

Fontes oficiais · Snowflake 1

# merge-rows
Esvaziar a tabela e manter a estruturaTRUNCATE TABLEDeixa zero linhas e mantém as definições das colunas.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Comece com tbi_lab.orders(id, amount) contendo (1,100) e (2,200). Restaure esse estado antes de cada exemplo; eles não são passos sequenciais.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
TRUNCATE TABLE tbi_lab.orders;

Alteração esperada

Deixa zero linhas e mantém as definições das colunas.

Como verificar

Como verificar
SELECT COUNT(*) AS rows_left FROM tbi_lab.orders;

Afeta todas as linhas; não permite filtro WHERE.

Fontes oficiais · Snowflake 1

# truncate-table

Definir tabelas, visões e rotinas

Criar uma tabela com tipos de colunaCREATE TABLE · TEMPORARY TABLECria uma tabela vazia com id e amount.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Prepare tbi_lab e confirme que o nome do novo objeto está livre.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
CREATE TABLE tbi_lab.orders (id INTEGER, amount NUMBER(12,2));

Alteração esperada

Cria uma tabela vazia com id e amount.

Como verificar

Como verificar
DESCRIBE TABLE tbi_lab.orders;

Os exemplos não usam OR REPLACE para sobrescrever dados existentes.

Fontes oficiais · Snowflake 1

# create-table
Salvar uma consulta como tabelaCREATE TABLE AS SELECT · CTASSalva as linhas com amount >= 200 em uma nova tabela.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Comece com tbi_lab.orders(id, amount) contendo (1,100) e (2,200). Restaure esse estado antes de cada exemplo; eles não são passos sequenciais.

Prepare tbi_lab e confirme que o nome do novo objeto está livre.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
CREATE TABLE tbi_lab.large_orders AS
SELECT id, amount FROM tbi_lab.orders WHERE amount >= 200;

Alteração esperada

Salva as linhas com amount >= 200 em uma nova tabela.

Como verificar

Como verificar
SELECT * FROM tbi_lab.large_orders ORDER BY id;

Os exemplos não usam OR REPLACE para sobrescrever dados existentes.

Fontes oficiais · Snowflake 1

# create-as-select
Salvar uma consulta como visãoCREATE VIEW · ALTER VIEW · DROP VIEWSalva a definição da consulta. Uma visão comum não mantém cópia das linhas de resultado.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Comece com tbi_lab.orders(id, amount) contendo (1,100) e (2,200). Restaure esse estado antes de cada exemplo; eles não são passos sequenciais.

Prepare tbi_lab e confirme que o nome do novo objeto está livre.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
CREATE VIEW tbi_lab.large_orders_view AS
SELECT id, amount FROM tbi_lab.orders WHERE amount >= 200;

Alteração esperada

Salva a definição da consulta. Uma visão comum não mantém cópia das linhas de resultado.

Como verificar

Como verificar
SELECT * FROM tbi_lab.large_orders_view ORDER BY id;

ALTER VIEW e DROP VIEW alteram ou removem a definição. Confira dependências das tabelas de origem.

Fontes oficiais · Snowflake 1

# create-view
Adicionar uma colunaALTER TABLE · ADD COLUMN · DROP COLUMN · RENAMEAdiciona note; nas linhas existentes, o valor é NULL.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Comece com tbi_lab.orders(id, amount) contendo (1,100) e (2,200). Restaure esse estado antes de cada exemplo; eles não são passos sequenciais.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
ALTER TABLE tbi_lab.orders ADD COLUMN note VARCHAR;

Alteração esperada

Adiciona note; nas linhas existentes, o valor é NULL.

Como verificar

Como verificar
DESCRIBE TABLE tbi_lab.orders;

O exemplo adiciona uma coluna. Excluir colunas ou mudar tipos exige outra verificação de dados e dependências.

Fontes oficiais · Snowflake 1

# alter-table
Excluir uma tabelaDROP TABLE · IF EXISTSRemove a definição e os dados da tabela.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Comece com tbi_lab.orders(id, amount) contendo (1,100) e (2,200). Restaure esse estado antes de cada exemplo; eles não são passos sequenciais.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
DROP TABLE tbi_lab.orders;

Alteração esperada

Remove a definição e os dados da tabela.

Como verificar

Como verificar
SHOW TABLES LIKE 'ORDERS' IN SCHEMA tbi_lab;

A recuperação depende da retenção do produto. Não presuma que será possível recuperar.

Fontes oficiais · Snowflake 1

# drop-table
Criar esquema ou conjunto de dadosCREATE SCHEMA · USE DATABASE · USE SCHEMACria tbi_lab para armazenar objetos.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
CREATE SCHEMA tbi_lab;
USE SCHEMA tbi_lab;

Alteração esperada

Cria tbi_lab para armazenar objetos.

Como verificar

Como verificar
SELECT CURRENT_DATABASE(), CURRENT_SCHEMA();

Cria um esquema no banco atual. USE SCHEMA muda o namespace padrão.

Fontes oficiais · Snowflake 1 · Snowflake 2

# namespace
Criar uma função SQLCREATE FUNCTION · UDFCria uma função que soma um ao argumento.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Prepare tbi_lab e confirme que o nome do novo objeto está livre.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
CREATE FUNCTION tbi_lab.add_one(x INTEGER)
RETURNS INTEGER LANGUAGE SQL
AS $$ x + 1 $$;

Alteração esperada

Cria uma função que soma um ao argumento.

Como verificar

Como verificar
SELECT tbi_lab.add_one(2) AS result;

Fontes oficiais · Snowflake 1

# user-function
Salvar um procedimentoCREATE PROCEDURE · CALLCria um procedimento que retorna 3 quando chamado.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Prepare tbi_lab e confirme que o nome do novo objeto está livre.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
CREATE PROCEDURE tbi_lab.answer()
RETURNS INTEGER LANGUAGE SQL
AS $$
BEGIN
  RETURN 3;
END;
$$;

Alteração esperada

Cria um procedimento que retorna 3 quando chamado.

Como verificar

Como verificar
CALL tbi_lab.answer();

Fontes oficiais · Snowflake 1

# procedure

Gerenciar execução, acesso e metadados

Confirmar ou desfazer alteraçõesBEGIN TRANSACTION · COMMIT · ROLLBACKO exemplo desfaz a alteração: id=1 mantém amount=100.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Comece com tbi_lab.orders(id, amount) contendo (1,100) e (2,200). Restaure esse estado antes de cada exemplo; eles não são passos sequenciais.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
BEGIN TRANSACTION;
UPDATE tbi_lab.orders SET amount = 150 WHERE id = 1;
ROLLBACK;

Alteração esperada

O exemplo desfaz a alteração: id=1 mantém amount=100.

Como verificar

Como verificar
SELECT id, amount FROM tbi_lab.orders ORDER BY id;

COMMIT confirma; ROLLBACK desfaz. DDL no Snowflake confirma implicitamente a transação ativa; não o inclua no exemplo.

Fontes oficiais · Snowflake 1

# transaction
Conceder acesso de leituraGRANT · TO ROLEConcede ao destinatário permissão para ler a tabela.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Exige orders e autoridade para mudar permissões. Prepare o papel tbi_reader do Snowflake ou confira o grupo destinatário do BigQuery.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
GRANT SELECT ON TABLE tbi_lab.orders TO ROLE tbi_reader;

Alteração esperada

Concede ao destinatário permissão para ler a tabela.

Como verificar

Como verificar
SHOW GRANTS ON TABLE tbi_lab.orders;

SELECT na tabela pode não bastar. Confira USAGE de banco e esquema, além do acesso ao warehouse.

Fontes oficiais · Snowflake 1

# permissions-grant
Revogar uma concessão diretaREVOKE · FROM ROLERemove a concessão direta; outros caminhos de acesso podem permanecer.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Exige orders e autoridade para mudar permissões. Prepare o papel tbi_reader do Snowflake ou confira o grupo destinatário do BigQuery.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
REVOKE SELECT ON TABLE tbi_lab.orders FROM ROLE tbi_reader;

Alteração esperada

Remove a concessão direta; outros caminhos de acesso podem permanecer.

Como verificar

Como verificar
SHOW GRANTS ON TABLE tbi_lab.orders;

REVOKE não retira acesso herdado de outros papéis ou recursos superiores. Confira o acesso efetivo.

Fontes oficiais · Snowflake 1

# permissions-revoke
Consultar tabelas e colunasSHOW TABLES · DESCRIBE TABLE · INFORMATION_SCHEMARetorna metadados de tabelas e colunas acessíveis.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Prepare tbi_lab e as permissões de criação e leitura necessárias.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
SHOW TABLES IN SCHEMA tbi_lab;

Alteração esperada

Retorna metadados de tabelas e colunas acessíveis.

Como verificar

Como verificar
DESCRIBE TABLE tbi_lab.orders;

Fontes oficiais · Snowflake 1 · Snowflake 2

# inspect-objects
Usar variáveis e várias instruçõesDECLARE · BEGIN · END · EXECUTE IMMEDIATEAltera a variável de 2 para 3 e retorna 3.

Snowflake · SQL para o produto selecionado. Esta página não o executa. Conferido com a documentação oficial; não executado em uma conta de nuvem.

Antes de executar

Pressupõe um banco selecionado no Snowflake e um projeto selecionado no BigQuery. tbi_lab é um esquema ou conjunto de dados de prática.

Use um ambiente de prática autorizado. Confira nomes, destinos e destinatários. Execução e armazenamento na nuvem podem gerar cobranças.

Exemplo independente
EXECUTE IMMEDIATE $$
DECLARE n INTEGER DEFAULT 2;
BEGIN
  RETURN n + 1;
END;
$$;

Alteração esperada

Altera a variável de 2 para 3 e retorna 3.

Como verificar

Compare a alteração esperada com o resultado, as permissões ou os arquivos do ambiente.

BEGIN…END é um bloco procedural, diferente de BEGIN TRANSACTION.

Fontes oficiais · Snowflake 1 · Snowflake 2

# script

Experimente: por que JOIN aumenta as linhas

Quando um cliente tem três pedidos, ele aparece três vezes no resultado da junção. Mude a quantidade de pedidos e o SQL para conferir as combinações.

Ver dados de entrada

Execute uma instrução somente de leitura que comece com SELECT ou WITH. Tabelas: customers e orders. São exibidas até 200 linhas.

Escolha um exemplo ou edite o SQL e execute.

Leia este SQL em palavras

Primeiro, FROM lê a tabela de clientes customers e AS c dá a ela o apelido c dentro desta consulta.

Depois, INNER JOIN combina a tabela de pedidos orders. AS o dá a ela o apelido o. ON c.id = o.customer_id mantém apenas pares em que o identificador do cliente c.id é igual ao identificador do cliente no pedido o.customer_id. Vários pedidos do mesmo cliente geram várias linhas.

SELECT retorna o identificador do cliente c.id, o nome c.name e o identificador do pedido o.id. AS order_id nomeia a coluna de saída de o.id como order_id.

Por fim, ORDER BY c.id, o.id ordena pelo identificador do cliente em ordem crescente e, dentro de cada cliente, pelo identificador do pedido em ordem crescente.

O ponto . em c.id conecta o apelido da tabela ao nome da coluna; a vírgula , separa colunas ou expressões; o ponto e vírgula ; encerra a instrução SQL.

Confira o que aprendeu
Qual expressão retorna zero pedidos para Cara após LEFT JOIN?

Este editor executa SQLite, independentemente do seletor Snowflake / BigQuery. Usa dados fictícios e executa SQL no navegador. A entrada não é salva nem enviada. O mecanismo é carregado de uma CDN externa na primeira execução.

Comparar tipos de JOIN · Referência oficial do SQLite sobre SELECT e JOIN