Editor de consultas e IntelliSense

A extensão PostgreSQL para Visual Studio Code fornece um editor de consultas com completações IntelliSense, execução de consultas orientada por teclado, uma grelha de resultados com opções de exportação e excertos de código incorporados. Escreve-se SQL num separador padrão do editor VS Code e executa-o em qualquer servidor PostgreSQL ligado sem sair do IDE.

Pré-requisitos

Abrir um editor de consultas

Pode abrir um novo editor de consultas de várias formas:

  • Na árvore de Conexões , clique com o botão direito num nó da base de dados e selecione Nova Consulta.
  • Execute PGSQL: New Query a partir da Paleta de Comandos (Ctrl+Shift+P).
  • Abre ou cria qualquer ficheiro com uma .sql extensão.

O editor de consultas utiliza o editor de texto VS Code com o modo de linguagem SQL. Quando liga o editor a um servidor, a extensão ativa o IntelliSense e permite comandos de execução de consultas.

Conectar e desconectar

Para associar um editor de consultas a uma ligação à base de dados:

Ação Windows / Linux macOS
Connect Ctrl+Shift+C Cmd+Shift+C
Desconectar Ctrl+Shift+D Cmd+Shift+D

Também podes executar PGSQL: Connect ou PGSQL: Disconnect na Paleta de Comandos.

Alterar o contexto da base de dados

A base de dados ativa para execução de consultas aparece na barra de estado do VS Code. Para mudar para uma base de dados diferente:

  1. Selecione o nome da base de dados na barra de estado, ou execute PGSQL: Change PostgreSQL Database a partir da Paleta de Comandos.
  2. Selecione a base de dados alvo a partir do selecionador.

O novo contexto da base de dados aplica-se a todas as execuções subsequentes de consulta nesse editor.

Lente de estado de ligação

Quando pgsql.showConnectionStatusLens é true (o padrão), o editor mostra uma lente de código no topo do ficheiro que mostra o estado atual da ligação. Selecione a objetiva para ligar ou alterar bases de dados.

IntelliSense

O IntelliSense fornece autocompletamentos conscientes do contexto enquanto escreve SQL no editor de consultas. A extensão analisa o esquema da sua base de dados ligada para sugerir tabelas, colunas, funções e palavras-chave.

O IntelliSense ativa-se automaticamente enquanto escreve, ou pode acioná-lo manualmente com Ctrl+Space (Cmd+Space no macOS). Os seguintes tipos de conclusão estão disponíveis:

Tipo de acabamento Description
Keyword Palavras-chave SQL como SELECT, FROM, WHERE
Tabela / Vista Tabelas e vistas na base de dados atual
Column Colunas para tabelas referenciadas na consulta
Function Funções incorporadas e definidas pelo utilizador
Schema Esquemas disponíveis na base de dados
Sugestão para aderir JOIN cláusulas baseadas em relações de chave estrangeira

Quando escreve JOIN após uma referência de tabela, o IntelliSense sugere tabelas relacionadas e preenche a condição de junção com base nas relações de chave estrangeira.

Configurar o IntelliSense

Ativa ou desativa o IntelliSense com a pgsql.intelliSense.enableIntelliSense definição. O IntelliSense está ativado por defeito.

Atualizar a cache do IntelliSense

Se alterar o esquema da sua base de dados (por exemplo, adicionando tabelas ou colunas) e o IntelliSense não refletir essas alterações, atualize a cache:

  1. Abra a paleta de comandos (Ctrl+Shift+P).
  2. Execute PGSQL: Refresh IntelliSense Cache.

Use este comando após migrações de esquema, alterações DDL ou alterações feitas fora da sessão atual do editor.

Executar consultas

A extensão oferece múltiplas formas de executar consultas SQL na sua base de dados conectada.

Executar uma consulta

Utilize Execute PostgreSQL Query para executar SQL no editor. Se selecionares um texto específico, só o texto selecionado é executado. Se nada for selecionado, todo o conteúdo do editor é executado.

Ação Windows / Linux macOS
Executar uma consulta PostgreSQL Ctrl+Shift+E ou Shift+Enter Cmd+Shift+E ou Shift+Enter
Executar a Instrução PostgreSQL Atual Ctrl+Shift+Enter Ctrl+Shift+Enter

Executar a Instrução PostgreSQL Atual executa apenas a instrução SQL na posição atual do cursor. Use este comando quando tiver várias instruções no editor e quiser executar uma sem a selecionar.

Cancelar uma consulta

Para parar uma consulta de longa duração, execute PGSQL: Cancel PostgreSQL Query a partir da Paleta de Comandos. A barra de estado mostra o progresso da execução enquanto uma consulta está a correr.

Painel de Resultados de Consultas PostgreSQL

Depois de executar uma consulta, os resultados aparecem no painel de Resultados da Consulta PostgreSQL abaixo do editor. O painel tem até três separadores, dependendo do tipo de consulta.

Resultados

O separador de Resultados mostra a grelha de resultados. Quando uma consulta devolve múltiplos conjuntos de resultados, cada conjunto aparece na sua própria grelha dentro do separador.

A grelha de resultados oferece estas funcionalidades para explorar dados:

  • Ordenar: Clique com o botão direito num cabeçalho de coluna e selecione Ordenar Ascendente ou Ordenar Descendente. Selecione Limpar ordenação para remover a ordenação.
  • Filtro: Clique com o botão direito no cabeçalho de uma coluna e selecione Mostrar Filtro para restringir as linhas apresentadas.
  • Redimensione colunas: Arraste as bordas das colunas para ajustar a largura, ou ativa pgsql.resultsGrid.autoSizeColumns (ativada por defeito) o tamanho automático das colunas com base no conteúdo visível.
  • Numeração das linhas: Os números das filas aparecem no lado esquerdo da grelha.
  • Pesquisar: Use o campo de pesquisa na barra de ferramentas de resultados para encontrar valores na grelha.

Consultas juntas e conjuntos de resultados mais amplos usam a mesma experiência em grelha, por isso podes ordenar, filtrar e analisar colunas relacionadas sem sair do editor.

Copiar dados

Clique com o botão direito na grelha de resultados para aceder às opções de cópia:

Option Description
Selecionar tudo Selecione todas as linhas do conjunto de resultados
Copy Copiar células selecionadas para a prancheta
Cópia com cabeçalhos Copiar as células selecionadas incluindo os cabeçalhos das colunas
Cópias de cabeçalhos Copie apenas os cabeçalhos das colunas

Também pode usar estes atalhos de teclado do painel de resultados (configuráveis através da pgsql.shortcuts definição):

Ação Atalho padrão
Copiar seleção Ctrl+C
Selecionar tudo Ctrl+A
Mostrar/ocultar painel de resultados Ctrl+Alt+R
Alternar o painel de mensagens Ctrl+Alt+Y
Grelha de resultados de foco Ctrl+Alt+G
Grelha de resultados anterior Ctrl+Seta para cima
Próxima grelha de resultados Ctrl+Para baixo

Sugestão

Defina pgsql.copyIncludeHeaders como true para incluir cabeçalhos de coluna sempre que copiar conteúdo. Defina pgsql.copyRemoveNewLine como false para preservar os caracteres de nova linha nas células copiadas.

Guardar resultados

Exportar os resultados da consulta selecionando um botão de guardar na barra de resultados:

Button Format
Guardar como CSV Valores separados por vírgulas (.csv)
Guardar como JSON Notação de Objetos em JavaScript (.json)
Guardar como Excel Microsoft Excel caderno de exercícios (.xlsx)

Personalize o comportamento de exportação de CSV com estas definições:

Configuração Description Predefinição
pgsql.saveAsCsv.delimiter Caractere delimitador de coluna ,
pgsql.saveAsCsv.lineSeparator Separador de linha Predefinição do sistema
pgsql.saveAsCsv.textIdentifier Carácter para anexar campos de texto "
pgsql.saveAsCsv.encoding Codificação de ficheiros utf-8
pgsql.saveAsCsv.includeHeaders Incluir cabeçalhos de coluna true

Abrir resulta numa aba separada

Para conjuntos de resultados grandes, abra os resultados num separador dedicado ao editor para mais espaço. Selecione Abrir num novo separador na barra de ferramentas dos resultados, ou defina pgsql.openQueryResultsInTabByDefault para true para abrir sempre os resultados num separador separado.

Guia Mensagens

O separador Mensagens mostra informações de execução de consultas, incluindo mensagens de estado, contagem de linhas e tempo de execução. Cada mensagem inclui um carimbo temporal.

O painel de mensagens abre-se por defeito juntamente com a grelha de resultados. Para alterar este comportamento, defina pgsql.messagesDefaultOpen para false.

Sugestão

Defina pgsql.showBatchTime para true mostrar o tempo de execução para lotes individuais.

Separador Plano da Consulta

Quando executa uma consulta EXPLAIN ou EXPLAIN ANALYZE, é apresentado um separador Plano de Consulta a par de Resultados e Mensagens. Selecione este separador para abrir o visualizador de plano de execução incorporado, ou selecione o botão Visualizar Plano de Consulta na barra de ferramentas do painel de Resultados de Consultas PostgreSQL.

Também pode executar o Visualize Query Plan (PostgreSQL) a partir da Command Palette para visualizar o plano da consulta atual.

Para informações detalhadas sobre o visualizador de planos de execução, consulte Visualizador de plano de consulta.

Visualização em grafo para consultas do Apache AGE

Quando uma consulta devolve resultados orientados para grafos do Apache AGE, a extensão deteta chamadas à função cypher() e padrões do Apache AGE (agtype, ag_catalog) e abre o lote de resultados numa vista em grafo em vez da grelha padrão.

  • Mudar de vista: Selecione Mudar para Gráfico na barra de resultados para alternar da grelha para a vista do gráfico, ou Mudar para Tabela para voltar à grelha.
  • Inspecionar elementos: Selecione nós ou arestas no grafo para visualizar as suas etiquetas e propriedades no painel de Propriedades .
  • Navegar: Usar os botões da barra de ferramentas de gráficos: Zoom In, Zoom Out, Zoom para Ajustar e Reiniciar.
  • Exportar: Selecione Guardar como PNG na barra de ferramentas do gráfico para exportar o gráfico como imagem.

Note

Se a consulta não devolver dados gráficos, a extensão mantém a vista padrão em grelha.

Trechos de código

A extensão inclui fragmentos de código PostgreSQL integrados que ajudam a estruturar padrões SQL comuns. Escreva um prefixo de fragmento no editor e prima Tab para expandir o fragmento. Passe pelos marcadores de posição dentro do fragmento expandido para preencher os valores.

Fragmentos disponíveis

Prefixo Description
pgCreateTable Crie uma tabela básica com uma chave primária
pgDropDatabase Abandone uma base de dados PostgreSQL existente
pgDropTable Remover uma tabela
pgInsertData Inserir uma linha numa tabela
pgSelectAll Consulta simples SELECT *
pgUpdateRows Atualizar dados numa tabela
pgDeleteRows Eliminar dados de uma tabela
pgCreateIndex Crie um índice numa coluna especificada
pgCreateUser Criar um novo papel ou utilizador
pgGrantPrivileges Conceder privilégios numa tabela a um utilizador
pgCTE Exemplo de uma expressão de tabela comum (CTE)
pgLeftJoin LEFT JOIN Exemplo de consulta
pgExplainAnalyze EXPLAIN ANALYZE consulta para detalhes de desempenho
pgListTables Liste todas as tabelas num esquema específico

Sugestão

Digite pg no editor e navegue pelas sugestões do IntelliSense para ver todos os fragmentos de código disponíveis.

Histórico de consultas

A vista de Histórico de Consultas no painel da Barra de Atividades do PostgreSQL captura automaticamente as consultas que executa, para que possa revisitá-las e reutilizá-las mais tarde.

Gerir o histórico de consultas

Ação Como fazer
Abrir uma consulta Selecione uma entrada na vista de Histórico de Consultas para a carregar num novo editor
Executar uma consulta Clique com o botão direito numa entrada e selecione Executar Consulta
Copiar uma consulta Clique com o botão direito numa entrada e selecione Copiar Consulta
Eliminar uma entrada Clique com o botão direito numa entrada e selecione Eliminar
Apagar tudo Selecione o botão Apagar Todo o Histórico de Consultas na barra de ferramentas de visualização
Navegar na Paleta de Comandos Executar PGSQL: Open Query History in Command Palette

Captura do histórico dos controlos

Use a barra de ferramentas de visualização do Histórico de Consultas para iniciar ou pausar a captura:

  • Iniciar Captura do Histórico de Consultas: Retomar o registo das consultas executadas.
  • Pausar Captura do Histórico de Consultas: Parar a gravação.

Configure o comportamento do histórico com estas definições:

Configuração Description Predefinição
pgsql.enableQueryHistoryFeature Ativar a funcionalidade Histórico de Consultas true
pgsql.enableQueryHistoryCapture Captura automática das consultas executadas true
pgsql.queryHistoryLimit Número máximo de entradas de história armazenadas 20