Abfrage-Editor und IntelliSense

Die PostgreSQL-Erweiterung für Visual Studio Code stellt einen Abfrage-Editor mit IntelliSense-Fertigstellungen, tastaturgesteuerter Abfrageausführung, einem Ergebnisraster mit Exportoptionen und integrierten Codeausschnitten bereit. Sie schreiben SQL in einer normalen Editorregisterkarte von VS Code und führen es auf jedem verbundenen PostgreSQL-Server aus, ohne die IDE zu verlassen.

Prerequisites

Öffnen eines Abfrage-Editors

Sie können einen neuen Abfrage-Editor auf verschiedene Arten öffnen:

  • Klicken Sie in der Verbindungsstruktur mit der rechten Maustaste auf einen Datenbankknoten, und wählen Sie "Neue Abfrage" aus.
  • Ausführen PGSQL: New Query aus der Befehlspalette (STRG+UMSCHALT+P).
  • Öffnen oder erstellen Sie eine beliebige Datei mit einer .sql Erweiterung.

Der Abfrage-Editor verwendet den VS Code-Text-Editor mit dem SQL-Sprachmodus. Wenn Sie den Editor mit einem Server verbinden, aktiviert die Erweiterung IntelliSense und aktiviert Abfrageausführungsbefehle.

Verbinden und trennen

So ordnen Sie einen Abfrage-Editor einer Datenbankverbindung zu:

Action Windows / Linux macOS
Verbinden Strg+Shift+C Cmd+Shift+C
Trennen STRG+UMSCHALT+D Cmd+Shift+D

Sie können PGSQL: Connect oder PGSQL: Disconnect auch über die Befehlspalette ausführen.

Ändern des Datenbankkontexts

Die aktive Datenbank für die Abfrageausführung wird in der Statusleiste von VS Code angezeigt. So wechseln Sie zu einer anderen Datenbank:

  1. Wählen Sie den Datenbanknamen in der Statusleiste aus, oder führen Sie PGSQL: Change PostgreSQL Database über die Befehlspalette aus.
  2. Wählen Sie die Zieldatenbank im Auswahlfeld aus.

Der neue Datenbankkontext gilt für alle nachfolgenden Abfrageausführungen in diesem Editor.

Verbindungsstatuslinse

Wenn pgsql.showConnectionStatusLens (Standardeinstellung) ist true , zeigt der Editor oben in der Datei ein Codeobjektiv an, das den aktuellen Verbindungsstatus anzeigt. Wählen Sie das Objektiv aus, um Datenbanken zu verbinden oder zu ändern.

IntelliSense

IntelliSense stellt kontextabhängige Autovervollständigen bereit, während Sie SQL im Abfrage-Editor eingeben. Die Erweiterung analysiert Ihr verbundenes Datenbankschema, um Tabellen, Spalten, Funktionen und Schlüsselwörter vorzuschlagen.

IntelliSense wird während der Eingabe automatisch aktiviert, oder Sie können sie manuell mit STRG+LEERTASTE (Cmd+Leerzeichen unter macOS) auslösen. Die folgenden Vervollständigungstypen sind verfügbar:

Vervollständigungstyp Description
Keyword SQL-Schlüsselwörter wie SELECT, FROMWHERE
Tabelle /Ansicht Tabellen und Ansichten in der aktuellen Datenbank
Column Spalten für Tabellen, auf die in der Abfrage verwiesen wird
Funktion Integrierte und benutzerdefinierte Funktionen
Schema Verfügbare Schemas in der Datenbank
Vorschlag zum Beitritt JOIN Klauseln basierend auf Fremdschlüsselbeziehungen

Wenn Sie nach einem Tabellenverweis eingeben JOIN , schlägt IntelliSense verwandte Tabellen vor und füllt die Verknüpfungsbedingung basierend auf Fremdschlüsselbeziehungen aus.

Konfigurieren von IntelliSense

Aktivieren oder deaktivieren Sie IntelliSense mit der pgsql.intelliSense.enableIntelliSense Einstellung. IntelliSense ist standardmäßig aktiviert.

Aktualisieren des IntelliSense-Caches

Wenn Sie Ihr Datenbankschema ändern (z. B. durch Hinzufügen von Tabellen oder Spalten), und IntelliSense spiegelt diese Änderungen nicht wider, aktualisieren Sie den Cache:

  1. Öffnen Sie die Befehlspalette (STRG+UMSCHALT+P).
  2. Führen Sie PGSQL: Refresh IntelliSense Cache aus.

Verwenden Sie diesen Befehl nach Schemamigrationen, DDL-Änderungen oder Änderungen, die außerhalb der aktuellen Editorsitzung vorgenommen wurden.

Abfragen ausführen

Die Erweiterung bietet mehrere Möglichkeiten zum Ausführen von SQL-Abfragen für Ihre verbundene Datenbank.

Ausführen einer Abfrage

Verwenden Sie Execute PostgreSQL Query , um SQL im Editor auszuführen. Wenn Sie bestimmten Text markieren, wird nur der markierte Text ausgeführt. Wenn nichts ausgewählt ist, wird der gesamte Inhalt des Editors ausgeführt.

Action Windows / Linux macOS
Ausführen von PostgreSQL-Abfrage Strg+Shift+E oder Shift+Enter Cmd+Umschalt+E oder Umschalt+Enter
Aktuelle PostgreSQL-Anweisung ausführen STRG+UMSCHALT+EINGABETASTE STRG+UMSCHALT+EINGABETASTE

Aktuelle PostgreSQL-Anweisung ausführen führt nur die SQL-Anweisung an der aktuellen Cursorposition aus. Verwenden Sie diesen Befehl, wenn Sie mehrere Anweisungen im Editor haben und einen ausführen möchten, ohne ihn auszuwählen.

Abbrechen einer Abfrage

Um eine lang laufende Abfrage zu beenden, führen Sie PGSQL: Cancel PostgreSQL Query in der Befehlspalette aus. Die Statusleiste zeigt den Ausführungsfortschritt an, während eine Abfrage ausgeführt wird.

Bereich "Ergebnisse der PostgreSQL-Abfrage"

Nachdem Sie eine Abfrage ausgeführt haben, werden die Ergebnisse im Bereich "PostgreSQL-Abfrageergebnisse " unterhalb des Editors angezeigt. Der Bereich verfügt je nach Abfragetyp über bis zu drei Registerkarten.

Registerkarte "Ergebnisse"

Auf der Registerkarte "Ergebnisse " wird das Ergebnisraster angezeigt. Wenn eine Abfrage mehrere Resultsets zurückgibt, wird jeder Satz in einem eigenen Raster auf der Registerkarte angezeigt.

Das Ergebnisraster bietet diese Features zum Untersuchen von Daten:

  • Sortieren: Klicken Sie mit der rechten Maustaste auf eine Spaltenüberschrift, und wählen Sie " Aufsteigend sortieren" oder "Absteigend sortieren" aus. Wählen Sie " Sortieren löschen " aus, um die Sortierung zu entfernen.
  • Filter: Klicken Sie mit der rechten Maustaste auf eine Spaltenüberschrift, und wählen Sie "Filter anzeigen " aus, um angezeigte Zeilen einzugrenzen.
  • Ändern der Größe von Spalten: Ziehen Sie Spaltenrahmen, um die Breite anzupassen, oder aktivieren pgsql.resultsGrid.autoSizeColumns Sie (standardmäßig aktiviert) die automatische Größe von Spalten basierend auf sichtbaren Inhalten.
  • Zeilennummerierung: Zeilennummern werden auf der linken Seite des Rasters angezeigt.
  • Suche: Verwenden Sie das Suchfeld in der Ergebnissymbolleiste, um Werte im Raster zu finden.

Verknüpfte Abfragen und breitere Resultsets verwenden dieselbe Rasteroberfläche, sodass Sie verwandte Spalten sortieren, filtern und scannen können, ohne den Editor verlassen zu müssen.

Daten kopieren

Klicken Sie mit der rechten Maustaste in das Ergebnisraster, um auf Kopieroptionen zuzugreifen:

Auswahl Description
Alles markieren Alle Zeilen im Resultset auswählen
Copy Ausgewählte Zellen in die Zwischenablage kopieren
Mit Kopfzeilen kopieren Kopieren ausgewählter Zellen mit Spaltenüberschriften
Kopfzeilen kopieren Nur die Spaltenüberschriften kopieren

Sie können auch diese Tastenkombinationen im Ergebnisbereich verwenden (konfigurierbar über die pgsql.shortcuts Einstellung):

Action Standardtastenkombination
Auswahl kopieren STRG+C
Alle auswählen STRG+A
Ergebnisbereich ein-/ausblenden STRG+ALT+R
Nachrichtenbereich ein-/ausblenden STRG+ALT+Y
Focus-Ergebnistabelle STRG+ALT+G
Vorheriges Ergebnisraster STRG+NACH-OBEN
Nächstes Ergebnisraster STRG+NACH-UNTEN

Tip

pgsql.copyIncludeHeaders auf true festlegen, um Spaltenüberschriften jedes Mal beim Kopieren einzuschließen. Legen Sie pgsql.copyRemoveNewLine auf false fest, um Zeilenumbruchzeichen beim Kopieren von Zellen beizubehalten.

Speichern von Ergebnissen

Exportieren Sie Abfrageergebnisse, indem Sie in der Ergebnissymbolleiste eine Schaltfläche "Speichern" auswählen:

Schaltfläche Format
Als CSV speichern Durch Kommas getrennte Werte (.csv)
Als JSON speichern JavaScript-Objektnotation (.json)
Als Excel speichern Microsoft Excel Arbeitsmappe (.xlsx)

Anpassen des CSV-Exportverhaltens mit den folgenden Einstellungen:

Einstellung Description Vorgabe
pgsql.saveAsCsv.delimiter Spaltentrennzeichen ,
pgsql.saveAsCsv.lineSeparator Zeilentrennzeichen System-Standardeinstellung
pgsql.saveAsCsv.textIdentifier Zeichen für das Einschließen von Textfeldern "
pgsql.saveAsCsv.encoding Dateicodierung utf-8
pgsql.saveAsCsv.includeHeaders Spaltenüberschriften einschließen true

Ergebnisse in einer separaten Registerkarte öffnen

Öffnen Sie bei großen Ergebnismengen die Ergebnisse in einer separaten Editor-Registerkarte, um mehr Platz zu haben. Wählen Sie in der Ergebnis-Symbolleiste „In neuer Registerkarte öffnen“ aus, oder setzen Sie pgsql.openQueryResultsInTabByDefault in Ihren Einstellungen auf true, um Ergebnisse immer in einer separaten Registerkarte zu öffnen.

Nachrichten-Tab

Auf der Registerkarte "Nachrichten " werden Abfrageausführungsinformationen einschließlich Statusmeldungen, Zeilenanzahl und Ausführungszeit angezeigt. Jede Nachricht enthält einen Zeitstempel.

Der Nachrichtenbereich wird standardmäßig zusammen mit dem Ergebnisraster geöffnet. Um dieses Verhalten zu ändern, legen Sie diese pgsql.messagesDefaultOpen Einstellung auf false.

Tip

Setzen Sie pgsql.showBatchTime auf true, um die Ausführungszeit für einzelne Batches anzuzeigen.

Registerkarte "Abfrageplan"

Wenn Sie eine EXPLAIN Abfrage EXPLAIN ANALYZE ausführen, wird neben "Ergebnisse" und "Nachrichten" eine Registerkarte "Abfrageplan" angezeigt. Wählen Sie diese Registerkarte aus, um die integrierte Ausführungsplanschnellansicht zu öffnen, oder wählen Sie die Schaltfläche "Abfrageplan visualisieren " in der Symbolleiste des PostgreSQL-Abfrageergebnissebereichs aus.

Sie können auch Visualize Query Plan (PostgreSQL) aus der Befehlspalette ausführen, um den Plan für die aktuelle Abfrage zu visualisieren.

Ausführliche Informationen zum Visualisierer für Ausführungspläne finden Sie unter Visualisierer für Abfragepläne.

Graph-Ansicht für Apache AGE-Abfragen

Wenn eine Abfrage graphorientierte Ergebnisse aus Apache AGE zurückgibt, erkennt die Erweiterung Funktionsaufrufe cypher() und Apache AGE-Muster (agtype, ag_catalog) und öffnet den Ergebnisbatch in einer Diagrammansicht anstelle des Standardrasters.

  • Ansichten wechseln: Wählen Sie in der Ergebnissymbolleiste "Zu Graph wechseln" aus, um von dem Raster zur Diagrammansicht zu wechseln, oder wechseln Sie zu "Tabelle ", um zum Raster zurückzukehren.
  • Überprüfen von Elementen: Wählen Sie Knoten oder Kanten im Diagramm aus, um ihre Beschriftungen und Eigenschaften im Eigenschaftenbereich anzuzeigen.
  • Navigieren Sie: Verwenden Sie die Schaltflächen der Diagrammsymbolleiste: Zoomen, Verkleineren, Anpassen und Zurücksetzen.
  • Exportieren: Wählen Sie " Als PNG speichern" in der Diagrammsymbolleiste aus, um das Diagramm als Bild zu exportieren.

Note

Wenn die Abfrage keine graphbaren Daten zurückgibt, behält die Erweiterung die Standardrasteransicht bei.

Codeausschnitte

Die Erweiterung enthält integrierte PostgreSQL-Codeausschnitte, mit denen Sie ein Gerüst für allgemeine SQL-Muster erstellen können. Geben Sie ein Codeausschnittpräfix in den Editor ein, und drücken Sie die TAB-TASTE , um den Codeausschnitt zu erweitern. Durchlaufen Sie Platzhalter innerhalb des erweiterten Codeausschnitts, um Werte auszufüllen.

Verfügbare Codeausschnitte

Präfix Description
pgCreateTable Erstellen einer einfachen Tabelle mit einem Primärschlüssel
pgDropDatabase Ablegen einer vorhandenen PostgreSQL-Datenbank
pgDropTable Entfernen einer Tabelle
pgInsertData Einfügen einer Zeile in eine Tabelle
pgSelectAll Einfache SELECT * Abfrage
pgUpdateRows Aktualisieren von Daten in einer Tabelle
pgDeleteRows Löschen von Daten aus einer Tabelle
pgCreateIndex Erstellen eines Indexes für eine angegebene Spalte
pgCreateUser Erstellen einer neuen Rolle oder eines neuen Benutzers
pgGrantPrivileges Berechtigungen für eine Tabelle einem Benutzer gewähren
pgCTE Common Table Expression (CTE)-Beispiel
pgLeftJoin LEFT JOIN Abfragebeispiel
pgExplainAnalyze EXPLAIN ANALYZE Abfrage für Leistungsdetails
pgListTables Alle Tabellen in einem bestimmten Schema auflisten

Tip

Geben Sie pg im Editor ein, und durchsuchen Sie die IntelliSense-Vorschläge, um alle verfügbaren Snippets anzuzeigen.

Abfrageverlauf

Die Abfrageverlaufsansicht im Bereich der PostgreSQL-Aktivitätsleiste erfasst automatisch die von Ihnen ausgeführten Abfragen, sodass Sie sie später erneut aufrufen und wiederverwenden können.

Verwalten des Abfrageverlaufs

Action So geht's:
Öffnen einer Abfrage Wählen Sie einen Eintrag in der Abfrageverlaufsansicht aus, um ihn in einen neuen Editor zu laden.
Ausführen einer Abfrage Klicken Sie mit der rechten Maustaste auf einen Eintrag, und wählen Sie "Abfrage ausführen" aus.
Kopieren einer Abfrage Klicken Sie mit der rechten Maustaste auf einen Eintrag, und wählen Sie "Abfrage kopieren" aus.
Löschen eines Eintrags Klicken Sie mit der rechten Maustaste auf einen Eintrag, und wählen Sie "Löschen" aus.
Alles löschen Wählen Sie in der Ansichtssymbolleiste die Schaltfläche "Alle Abfrageverlauf löschen" aus.
In der Befehlspalette suchen Führen Sie PGSQL: Open Query History in Command Palette aus.

Erfassung des Steuerungsverlaufs

Verwenden Sie die Symbolleiste für die Abfrageverlaufsansicht , um die Erfassung zu starten oder anzuhalten:

  • Abfrageverlaufserfassung starten: Fortsetzen der aufzeichnung ausgeführter Abfragen.
  • Abfrageverlaufserfassung anhalten: Aufzeichnung beenden.

Konfigurieren Sie das Verlaufsverhalten mit diesen Einstellungen:

Einstellung Description Vorgabe
pgsql.enableQueryHistoryFeature Aktivieren Sie die Funktion „Abfrageverlauf“ true
pgsql.enableQueryHistoryCapture Automatische Erfassung ausgeführter Abfragen true
pgsql.queryHistoryLimit Maximale Anzahl gespeicherter Verlaufseinträge 20