Pular para o conteúdo principal

Consultas SQL

Num conector de banco de dados SQL, uma entidade pode ler de uma consulta em vez de uma tabela. Use quando os dados que o portal precisa estão espalhados em mais de uma tabela, ou quando você quer escolher as colunas e as linhas com precisão.

Entidade lida por uma consulta SQL

No workspace Aurora Imóveis, a entidade Contrato junta duas tabelas do banco da locação — os contratos e os imóveis — numa consulta só:

SELECT c.id, c.codigo, i.descricao AS imovel, i.endereco, c.inicio, c.fim,
c.valor_aluguel, c.status, c.cpf_inquilino
FROM contratos c
JOIN imoveis i ON i.id = c.imovel_id
WHERE c.excluido_em IS NULL

Cada coluna do resultado vira um campo: imovel e endereco vêm da tabela de imóveis, o resto vem do contrato. O WHERE deixa de fora os contratos excluídos.

Criar uma entidade por SQL​

  1. Em Dados › Entidades, clique em Nova entidade.
  2. Em Conexão, escolha o conector de banco de dados e abra a aba SQL.
  3. Escreva a consulta. O editor completa nomes de tabelas e colunas com Ctrl/Cmd + Space.
  4. Clique em Buscar dados (ou Ctrl/Cmd + Enter). A plataforma roda a consulta, traz uma amostra e monta um campo para cada coluna.
  5. Revise a entidade como qualquer outra: nome, chave, campos, Identificador, Título e ID do Titular. No Contrato, o identificador é id, o título é codigo e o titular é cpf_inquilino, comparado como CPF/CNPJ.
  6. Clique em Criar entidade com N campos.

A consulta fica registrada na Visão geral da entidade, em Consulta SQL.

Regras da consulta​

  • Só leitura: a consulta precisa começar com SELECT ou WITH.
  • Uma consulta por vez: sem ; no meio.
  • Rápida: uma consulta que demora mais de 15 segundos é interrompida. Prefira colunas com índice no JOIN e no WHERE.

Além disso, a sessão no banco é aberta em modo de leitura quando o banco permite. Mesmo assim, conecte com um usuário que só tem permissão de leitura.

Dicas​

  • Traga o titular em uma coluna. É por ela que cada registro fica com o seu cliente — no Contrato, cpf_inquilino. Sem titular, nenhum usuário do portal vê os registros.
  • Traga um identificador único. Uma coluna que não se repete (como c.id) deixa a sincronização reconhecer cada registro de uma vez para outra.
  • Dê nomes claros às colunas com AS (i.descricao AS imovel): o nome da coluna vira a chave do campo.
  • Filtre no WHERE, e não depois: o que a consulta não traz não ocupa espaço nem tempo de sincronização.

Como a sincronização funciona​

Uma entidade por SQL sincroniza na agenda do conector (ou só quando você pedir, no modo Manual). Cada sincronização roda a consulta inteira: os registros novos entram, os alterados são atualizados e os que a consulta não traz mais saem da entidade. Em Leitura do sync, você escolhe quantas linhas a sincronização lê de cada vez (o padrão é 500).

O modo Quando o usuário acessa não vale para consultas SQL. Veja Sincronização das entidades.