Tabela SQL
Collection: SQLCommunity Edition+Introdução
Escrever uma consulta SQL para formar uma tabela SQL não cria uma tabela física no banco de dados. Em vez disso, lê os resultados da consulta, permitindo usá-los em tabelas, detalhes, gráficos e workflows. Cenários aplicáveis: consolidação de dados e relatórios estatísticos.
As tabelas SQL aceitam apenas instruções SELECT ou instruções WITH ... SELECT. Elas permitem apenas consultar e exibir dados; não permitem criar, editar ou excluir dados.
Criar uma tabela SQL
- Clique no menu de fontes de dados, em funções do sistema, para acessar a página inicial das fontes de dados.
- Selecione a fonte de dados Main na lista de fontes de dados e clique na ação «Configure» para acessar o banco de dados principal.
- Na administração do banco de dados principal, clique em «Create collection» e selecione «SQL collection».

Escrever uma consulta SQL
Insira a consulta SQL e clique em «Execute» para executá-la e tentar analisar os campos retornados e as tabelas de dados de origem. Clique em «Execute» apenas para executar a visualização e analisar os campos. Depois de confirmar que a consulta SQL está disponível, clique em «Confirm» para que o formulário possa enviá-la como uma consulta confirmada.

Source collections são as tabelas de dados de origem inferidas com base na consulta SQL. Elas identificam de quais tabelas de dados existentes vêm principalmente os campos dos resultados da consulta e limitam os Field source disponíveis durante o mapeamento dos campos.
Os resultados da inferência servem para auxiliar na configuração rápida. Se a consulta SQL contiver aliases, subconsultas, campos calculados, funções de agregação ou joins complexos, o resultado poderá não ser totalmente preciso ou não ser inferido. Nesse caso, é possível especificar manualmente Source collections.
Mapeamento de campos
O mapeamento de campos é uma configuração que deve ser confirmada após a criação de uma tabela SQL. Os resultados da consulta SQL informam ao NocoBase apenas quais colunas foram retornadas. Para que essas colunas possam ser usadas na interface como campos comuns, também é necessário confirmar Field source ou configurar Field interface e o nome de exibição do campo.
Saiba mais sobre a configuração de campos

Por exemplo, se a consulta SQL retornar customers.name as customer_name e esse valor vier do campo «Nome do cliente» da tabela de clientes, você poderá mapeá-lo para o campo correspondente da tabela de clientes. Assim, o NocoBase poderá reutilizar o título e a configuração da interface do campo original.
Se o campo vier de um resultado calculado, como count(*) as total ou sum(amount) as amount_total, normalmente não haverá um campo de origem claro. Nesse caso, será necessário selecionar manualmente um Field interface adequado.
Field source depende de Source collections. Somente depois de selecionar a tabela de dados de origem os campos de origem disponíveis nessa tabela aparecerão na tabela de mapeamento de campos.
Quando a inferência de campos contiver Field source, o NocoBase dará prioridade à reutilização do Field interface do campo de origem. Se não for possível inferir o campo de origem, você poderá especificar manualmente Field source. Se o resultado da inferência não corresponder ao significado do negócio, será necessário excluir Field source; depois, você poderá especificar manualmente Field source ou selecionar manualmente Field interface e configurar Field display name.
Identificador exclusivo do registro
É necessário configurar o Record unique key da tabela SQL; caso contrário, não será possível criar blocos na página nem visualizar os registros corretamente. É possível selecionar um campo ou uma combinação de vários campos como identificador exclusivo. Os campos adequados para usar como Record unique key geralmente atendem às seguintes condições:
- Cada linha dos resultados da consulta é exclusiva
- Os valores dos campos são estáveis e não mudam devido à paginação, à ordenação ou a alterações no critério estatístico
- O campo não é nulo
- O campo é sempre retornado nos resultados da consulta
Se os resultados da consulta vierem de uma única tabela, dê prioridade ao retorno da chave primária da tabela original. Se vierem de um join entre várias tabelas ou de uma agregação, mantenha na consulta SQL um ID de negócio estável ou retorne vários campos que, em conjunto, identifiquem o registro.
Não use valores como row_number(), que mudam conforme a ordenação, os filtros ou o intervalo estatístico, como um Record unique key estável de longo prazo. Depois que o identificador exclusivo do registro mudar, os blocos da página, as permissões, os workflows e as APIs externas poderão não conseguir localizar o mesmo registro.
Visualizar os resultados da consulta
Antes de enviar, use Preview para visualizar os resultados da consulta SQL. Durante a visualização, confirme principalmente:
- Se o SQL pode ser executado normalmente
- Se os campos retornados estão completos
- Se o Field interface e o nome de exibição correspondem ao significado do negócio
- Se o Record unique key existe e os dados são exclusivos
- Se os resultados da consulta são adequados para exibição na página

Configurar campos
Depois de criar a tabela SQL, clique em «Configure fields» à direita da tabela SQL na lista de tabelas de dados para acessar a página de configuração de campos. A configuração de campos permite manter os campos da tabela SQL, definir como eles serão exibidos na interface e determinar como os resultados da consulta SQL serão mapeados para o Field interface do NocoBase. Saiba mais sobre a configuração de campos
Alterar o tipo de interface
Depois de criar a tabela SQL, ainda é possível ajustar a configuração da interface dos campos na configuração de campos. Essa página é usada principalmente para alterar o Field interface, modificar o nome de exibição, a descrição e as configurações específicas do campo.

É adequado tratar aqui dos seguintes casos:
- Ao criar a tabela SQL, o Field interface foi definido incorretamente
- O nome de exibição do campo não corresponde aos hábitos do negócio e precisa ser alterado para um nome mais compreensível
- O significado de negócio do campo retornado pela consulta mudou e é necessário confirmar novamente a forma de exibição
- A descrição ou a configuração específica do campo precisa ser ajustada, como as opções suspensas
Sicronizar com o banco de dados
Se a consulta SQL não tiver mudado, mas a estrutura da tabela de dados subjacente ou os campos tiverem sido alterados, acesse «Configure fields» e clique em «Sync from database» para executar o SQL novamente e sincronizar os campos. Consulte «Criar uma tabela SQL» para obter informações sobre o mapeamento de campos.

Editar campos
Clique em «Edit» à direita do campo para editar sua configuração. A edição de campos é adequada para ajustar como eles serão exibidos e usados no NocoBase, por exemplo, para modificar o nome de exibição, a descrição, as regras de validação ou as configurações específicas do campo. Saiba mais sobre a configuração de campos
Editar a configuração de campos não modifica a consulta SQL, o nome do campo da tabela de origem, a definição do campo da tabela de origem nem os índices do banco de dados. Se for necessário ajustar as colunas reais dos resultados da consulta, modifique primeiro a consulta SQL e depois execute novamente a sincronização dos campos.
Excluir campos
Clique em «Delete» à direita do campo para excluir um único campo. A exclusão remove apenas o campo salvo no NocoBase; não exclui a consulta SQL nem a coluna real da tabela de dados de origem. Saiba mais sobre a configuração de campos
A exclusão de campos pode afetar blocos da página, condições de filtro, ordenação, permissões, workflows, APIs e configurações existentes. Antes de excluir, confirme se o campo ainda está sendo usado. Se a consulta SQL ainda retornar essa coluna, o NocoBase poderá identificá-la novamente na próxima execução de «Sync from database».
Editar a tabela SQL
Na lista de tabelas de dados, clique em «Edit» à direita de uma tabela SQL para ajustar os metadados e a configuração de execução da tabela SQL no NocoBase. Os itens de configuração durante a edição são basicamente os mesmos da criação da tabela SQL; apenas Collection name não pode ser modificado.
Se a consulta SQL mudar, clique novamente em «Execute» e confirme o mapeamento dos campos, o Record unique key e os resultados da visualização.

Modificar a consulta SQL pode alterar os nomes dos campos, o mapeamento dos campos ou o Record unique key. Depois da alteração, verifique novamente se os blocos da página, os gráficos, as permissões e os workflows continuam funcionando corretamente.
Excluir a tabela SQL
Na lista de tabelas de dados, clicar em «Delete» à direita da tabela SQL excluirá apenas a configuração e os campos da tabela SQL no NocoBase. A tabela de origem subjacente e os dados nela contidos não serão excluídos. Também é possível selecionar várias tabelas e excluí-las em conjunto. Antes de excluir, verifique se os blocos da página, os gráficos, as permissões, os workflows e as APIs externas ainda usam essa tabela SQL.

