Escrever Consultas SQL
O tipo mais comum de separador interior é o Separador de consulta, que contém os seguintes elementos. Os atalhos de teclado indicados abaixo são os predefinidos no Windows/Linux; no macOS, os atalhos próprios do OmniDB usam Ctrl em vez de Alt. Todos podem ser alterados em Definições > Atalhos de teclado.

- 1) Cabeçalho do Separador: Pode ver o nome do separador e, ao passar o rato, um ícone para o fechar. Enquanto uma consulta está em execução no separador, verá um indicador giratório; se terminar enquanto estiver a trabalhar noutro separador, é mostrado um visto. Ao clicar com o botão direito no separador e escolher Mudar nome do separador, pode mudar-lhe o nome.
- 2) Adicionar Separador: Pode adicionar rapidamente outro separador interior (Separador de consulta ou Separador de consola) clicando no ícone de mais.
- 3) Editor SQL: Editor SQL completo com realce de sintaxe SQL, dobragem de
código, localizar e substituir (
Ctrl-FeCtrl-H), uma linha de régua vertical (a sua coluna é definida em Definições > Formatação) e um componente de autocompletar, explicado a seguir. Clicar com o botão direito no editor oferece Copiar, Guardar como snippet e Utilizar snippet (consulte Snippets). Consulte Atalhos de Teclado do Editor para a lista completa de atalhos do editor (seleção, multicursor, navegação, dobragem de código, etc.). - 4) Executar: O texto contido no Editor SQL será executado na base de dados
atualmente ativa quando clicar neste botão (ou premir
Alt-Q). Se houver algum texto selecionado no Editor SQL, é executado apenas o texto selecionado. O editor pode conter várias instruções separadas por ponto e vírgula; são executadas uma após a outra e a grelha mostra o resultado da última. Depois de o comando estar em execução, é mostrado um botão vermelho Cancelar, que lhe permite cancelar a execução (ou primaAlt-C). - 5) Executar instrução no cursor: Executa apenas a instrução em que o cursor se
encontra, sem ter de a selecionar primeiro. Com o cursor imediatamente a seguir a um
;, é executada a instrução seguinte. - 6) Indentar SQL: Este botão formata de forma legível qualquer código SQL escrito no
editor SQL (atalho
Alt-S), seguindo o estilo escolhido em Definições > Formatação (indentação, estilo das vírgulas, maiúsculas/minúsculas das palavras-chave). - 7) Histórico de comandos: Todos os comandos executados na ligação atual são armazenados no histórico de comandos, ao qual pode aceder clicando neste botão. Pode filtrá-lo por intervalo de datas e por texto para encontrar o comando SQL de que precisa.
- 8) Explain (apenas PostgreSQL): Executa a sua consulta SQL com
EXPLAINà frente (atalhoAlt-W). Os resultados serão mostrados em forma textual e gráfica no separador Explain (consulte Visualizar Planos de Consulta para mais detalhes). - 9) Explain Analyze (apenas PostgreSQL): O mesmo que o botão Explain, mas executa a
consulta SQL com
EXPLAIN (ANALYZE, BUFFERS), que efetivamente executa a consulta (atalhoAlt-E). - 10) Autocommit (apenas PostgreSQL): Quando ativado, todas as consultas executadas são submetidas (commit) na base de dados. Quando desativado, o OmniDB inicia uma transação e, após a execução de uma consulta, a interface mostra botões que permitem ao utilizador efetuar Confirmar (Commit) ou Reverter (Rollback). O utilizador também pode manter a transação aberta e executar outros comandos.
- 11) Estado do Backend (apenas PostgreSQL): Quando abre um novo Separador de consulta, o estado é Não ligado, porque o OmniDB ainda não iniciou um backend PostgreSQL. Quando executa a primeira consulta, o OmniDB inicia um novo backend e mantém-no associado ao Separador de consulta (cada Separador de consulta tem o seu próprio backend). O estado do backend (Inativo, Em execução, Inativo em transação, etc.) será mostrado neste campo. Quando fecha o Separador de consulta, o OmniDB termina o backend.
- 12) Tipo de Ficheiro de Exportação: CSV, TSV, XLSX, JSON, XML ou Markdown.
- 13) Exportar dados: Ao clicar neste botão, o OmniDB executa a consulta atual e exporta o resultado completo para um ficheiro do tipo escolhido. Na aplicação de ambiente de trabalho, abre-se um diálogo nativo Guardar como para que possa escolher diretamente onde o guardar, e o OmniDB confirma com Ficheiro exportado para: …. Ao executar como OmniDB Server baseado no browser, o ficheiro é primeiro escrito na pasta temporária do servidor, e a área de resultados mostra então O ficheiro está pronto. com um link Guardar que o transfere através do browser. A codificação CSV/TSV e o delimitador CSV são definidos em Definições > Exportar.
- 14) Resultados de Dados: Se a consulta for um
SELECT, mostra uma grelha com os resultados; a primeira coluna fica fixa enquanto se desloca na horizontal, e passar o rato sobre um cabeçalho de coluna mostra o seu nome completo. Se a consulta for DML ou DDL, mostra a mensagem devolvida pelo SGBD. Quando há mais linhas do que o primeiro lote, Obter mais carrega o lote seguinte e Obter tudo o resto. Clique com o botão direito numa célula para Copiar ou Ver conteúdo; os valores JSON e XML são mostrados com realce de sintaxe. - 15) Mensagens (apenas PostgreSQL): Quaisquer mensagens (como as geradas pelo
comando
RAISE NOTICE) serão mostradas aqui. - 16) Explain View (apenas PostgreSQL): Mostra um componente completo para ver o plano de execução do PostgreSQL em forma textual ou gráfica.
O divisor entre o editor (com a sua barra de ferramentas) e os resultados pode ser arrastado para dar mais espaço a um ou a outro.
Confirmação de segurança para instruções destrutivas
Antes de executar uma instrução que comece por DROP ou TRUNCATE, ou um
UPDATE/DELETE sem cláusula WHERE, o Separador de consulta pede
confirmação (Esta instrução é destrutiva e não pode ser desfeita. Executar mesmo assim?, ou
Esta instrução não tem cláusula WHERE e vai afetar TODAS as linhas. Executar mesmo assim?). É uma
rede de segurança contra enganos involuntários, não um sistema de permissões — analisa apenas o início
do texto (depois dos comentários).
Depois de executados, os separadores também são guardados na base de dados de utilizador do OmniDB (título e conteúdo), pelo que da próxima vez que abrir o OmniDB, verá todos abertos novamente. Além disso, todos os comandos que executar num Separador de consulta são guardados no histórico de comandos dessa ligação.
Autocompletar SQL
O editor SQL tem uma funcionalidade que ajuda muito ao criar novas consultas: conclusão
automática de código SQL. Abra as sugestões com Ctrl-Space
(Option-Space no macOS). Com esta funcionalidade é possível autocompletar colunas
contidas numa tabela referenciada por um alias: escreva o alias, o carácter . e
depois abra o autocompletar:

Se o utilizador não iniciar o autocompletar com o cursor próximo de um alias de tabela, o componente mostrará várias categorias de dados. Ao escrever na caixa de filtro, os elementos em todas as categorias serão filtrados:

O componente de autocompletar também é capaz de identificar alguma informação contextual.
Por exemplo, se escrever o nome de um esquema e depois o carácter ., poderá filtrar
entre objetos contidos apenas nesse esquema:

Depois de :: (uma conversão de tipo do PostgreSQL), são oferecidos apenas tipos de dados. Escolher uma
palavra-chave acrescenta também aquilo que sempre se lhe segue (por exemplo, um espaço depois de SELECT, ou o
parêntese de abertura depois de COALESCE). As categorias oferecidas (palavras-chave,
bases de dados, roles, tablespaces, esquemas, extensões, tabelas, vistas, colunas, funções, índices) são
definidas em Definições > Preenchimento automático.
Tenha em atenção que, para SGBD diferentes do PostgreSQL, o componente de autocompletar só funciona para colunas de tabelas.