Arbeiten mit SQL mit GitHub Copilot
GitHub Copilot kann verwendet werden, um mit allen Codetypen zu interagieren, dies umfasst die Interaktion mit beliebten Programmiersprachen und bietet Ihnen die Möglichkeit, SQL-Code zu schreiben, zu debuggen und zu optimieren.
GitHub Copilot kann die folgenden Aufgaben im Zusammenhang mit SQL-Code ausführen:
- Abfrageerklärung: Verwenden Sie Copilot, um komplexe SQL-Abfragen zu erläutern, um ihre Logik und Struktur besser zu verstehen.
- Abfrageoptimierung: Fragen Sie Copilot nach Vorschlägen, um langsame oder ineffiziente Abfragen zu optimieren, z. B. unnötige JOINs zu entfernen, SELECT DISTINCT zu optimieren oder Unterabfragen umzugestalten.
- Abfrageumgestaltung: Fordern Sie Copilot an, Abfragen umzuschreiben, um eine bessere Lesbarkeit oder Wartung zu gewährleisten, z. B. das Ersetzen von CROSS JOINs oder das Vereinfachen geschachtelter Abfragen.
- Generieren von Abfragen: Lassen Sie Copilot neue SQL-Abfragen basierend auf Ihren Datenanforderungen generieren, z. B. SELECT, INSERT, UPDATE oder DELETE-Anweisungen.
- Datenüberprüfung: Verwenden Sie Copilot, um SQL-Abfragen zu schreiben, die die Datenintegrität überprüfen oder auf bestimmte Bedingungen in Ihrer Datenbank überprüfen.
- Schemasuche: Bitten Sie Copilot, Abfragen zu schreiben, die Ihr Datenbankschema untersuchen oder dokumentieren (z. B. Listentabellen, Spalten oder Beziehungen).
- Testgenerierung: Fordern Sie Copilot an, SQL-basierte Tests oder Assertionen zu generieren, um Abfrageergebnisse oder Datenbankstatus zu überprüfen.
- Fehlerdebugging: Bitten Sie Copilot, SQL-Fehler zu debuggen oder Korrekturen für häufige Probleme vorzuschlagen (z. B. Syntaxfehler, fehlende Indizes).
- Prompt Creation: Lassen Sie Copilot Aufforderungen oder Vorlagen zum Erstellen leistungsstarker Abfragen von Grund auf generieren.
GitHub Copilot bietet bessere Ergebnisse, wenn Ihre Eingabeaufforderungen spezifischer sind. Wenn Sie allgemeine Eingabeaufforderungen bereitstellen, erhalten Sie wahrscheinlich allgemeine Antworten. Wenn Sie in Ihren Eingabeaufforderungen ausführlichere Informationen bereitstellen und detailliertere Fragen stellen, erhalten Sie eher detaillierte Antworten.
Sie können z. B. GitHub Copilot verwenden, um ihnen den SQL-Code bereitzustellen, um eine Tabelle zu erstellen, die Spalten für Vorname, Nachname, Geburtsdatum, Lieblingsfilm und Pet-Name enthält, indem Sie die folgende Eingabeaufforderung ausgeben:
@workspace Bitte geben Sie mir den SQL-Code an, um eine Tabelle zu erstellen, die Spalten für Vorname, Nachname, Geburtsdatum, Lieblingsfilm und Haustiername enthält.
Grundlegendes zu einer Anwendung, die SQL enthält
Wenn Sie z. B. einen Codespace geöffnet haben, der eine Anwendung mit SQL-Code enthält, können Sie GitHub Copilot mit der folgenden Eingabeaufforderung abfragen, um mehr über das Projekt auf folgende Weise zu verstehen:
@workspace Bitte erläutern Sie kurz die Struktur dieses Projekts. Was soll ich tun, um es auszuführen?
Grundlegendes zu SQL-Code
Sie können die Aufforderung "/explain" verwenden, um bestimmten Code zu verstehen. Ein Projekt kann z. B. eine Datei namens complex.sql enthalten, die die Abfrage enthält, die in der Anwendung ausgeführt wird. Um den Inhalt von complex.sql zu verstehen, können Sie ihn im Explorer-Bereich von GitHub Codespaces auswählen und dann die /explain-Eingabeaufforderung im Chat verwenden.
Anstatt die gesamte Datei auszuwählen, können Sie Abschnitte des Codes auswählen und GitHub Copilot bitten, ein Detail zu diesen Abschnitten bereitzustellen.
Optimieren und Umgestalten von SQL-Abfragen
Manchmal werden Abfragen angezeigt, die langsam oder ineffizient sind, da unnötige JOINS vorhanden sind, tabellen, die abgefragt werden, keine Indizes haben oder redundante geschachtelte Unterabfragen enthalten. Mit GitHub Copilot können Sie eine Abfrage auswählen und nach Optimierungen auffordern, die die Leistung verbessern können.
Ebenso können Sie Copilot auffordern, Abfragen zur besseren Lesbarkeit oder Wartung umzuschreiben, indem Sie Copilot bitten, Kommentare zur Erläuterung der Funktionalität für zukünftige Entwickler bereitzustellen, die möglicherweise den Code überprüfen müssen.
Eine Beispielaufforderung kann folgendes sein:
"Fügen Sie der complex.sql Datei detaillierte Kommentare hinzu, die den Zweck und die Funktionalität jeder CTE-, SQL-Klausel und -Berechnung erläutern. Stellen Sie sicher, dass Sie beschreiben, was jeder Abschnitt der Abfrage ausführt, einschließlich der Extraktion des Jahres, der Berechnung des rollierenden Mittelwerts, der Logik hinter dem Leistungsverhältnis und der Bedeutung jeder CASE-Anweisung. Die Kommentare sollten es für jemanden erleichtern, der mit der Datei nicht vertraut ist, die Logik und Absicht der gesamten Abfrage zu verstehen."
Überprüfen der Integrität von Daten
Verwenden Sie Copilot, um SQL-Abfragen zu schreiben, die die Datenintegrität überprüfen oder auf bestimmte Bedingungen in Ihrer Datenbank überprüfen. Sie können z. B. GitHub Copilot auffordern, einen der vier Arten von Integritätsprüfungen auszuführen:
- Eindeutigkeit/Duplikatprüfungen
- Referentielle Integrität (Verstöße wegen Fremdschlüsseln)
- Domänenintegrität (Werte innerhalb erwarteter Bereiche)
- Geschäftsregelüberprüfungen (benutzerdefinierte Logikfehler)
Eine Beispielabfrage kann sein:
"Schreiben Sie eine SQL-Abfrage, die auf verwaiste Fremdschlüssel zwischen Orders- und Customers-Tabellen überprüft."
Datenbankschemadokumentation
Sie können GitHub Copilot bitten, Ihnen beim Schreiben von Abfragen zu helfen, die Ihr Datenbankschema untersuchen oder dokumentieren. Indem Sie GitHub Copilot den Kontext der Datenbank geben, mit der Sie arbeiten, können Sie bestimmen, ob der Code, der mit dieser Datenbank interagiert, optimiert werden kann. Während GitHub Copilot die Ausführungspläne von Abfragen nicht tief analysiert, versteht es jedoch den Kontext der SQL-Datenbank, mit der Sie interagieren, und kann bessere Ratschläge geben.
SQL-Testgenerierung
Sie können anfordern, dass GitHub Copilot SQL-basierte Tests oder Assertionen generiert, um Abfrageergebnisse oder Datenbankstatus zu überprüfen. Copilot kann geeignete Testframeworks basierend auf Ihrem Projekttyp vorschlagen. Um Ihre Testumgebung zu konfigurieren, geben Sie den Befehl "/setupTests" in das Chateingabefeld ein, und folgen Sie den Anweisungen von GitHub Copilot zum Konfigurieren Ihres Projekts.
GitHub Copilot kann Ihnen beim Schreiben von Tests für Ihren Anwendungscode helfen, indem Sie Testcode generieren, der Ihre Codebasis abdeckt. Dazu gehören Komponententests, End-to-End-Tests und Tests für Edgefälle.
Debuggen von SQL-Fehlern
Sie können GitHub Copilot bitten, SQL-Fehler zu debuggen oder Korrekturen für häufige Probleme vorzuschlagen. Sie können z. B. eine Datei oder einen Codeblock auswählen und GitHub Copilot auffordern, syntaxfehler zu finden und zu korrigieren.
Wenn GitHub Copilot Ihnen vollständige Tabellenschemata und Indizes zur Verfügung stellt, können Sie mit GitHub Copilot repräsentative Abfragen für die Tabellen generieren und zusätzliche Indizes vorschlagen lassen, die die Leistung verbessern könnten.
GitHub Copilot Eingabeaufforderungserstellung
Sie können GitHub Copilot verwenden, um Eingabeaufforderungen zu generieren, um Code zu erstellen, der besser als vorhandener Code funktioniert. Stellen Sie bei der Interaktion mit GitHub Copilot möglichst viele Details in der Frage bereit, um die Chance zu erhöhen, dass die bereitgestellte Antwort Ihren Anforderungen entspricht. Gehen Sie dazu wie folgt vor:
- Sie verfügen über ein Verständnis für den Code. Dieses Verständnis kann aus der vorhandenen Interaktion mit GitHub Copilot abgeleitet werden.
- Wählen Sie den ursprünglichen Code aus, und öffnen Sie GitHub Copilot Chat.
- Geben Sie so viele Details wie möglich an. Sie können z. B. GitHub Copilot-Chat mit der folgenden Eingabeaufforderung bereitstellen:
Angesichts der folgenden Anforderungen:Die Datenbank ist SQLite und enthält Tabellen, die für Filmbewertungen relevant sind (siehe Struktur in complex.sql).Die Abfrage sollte die Filme nach Region effizient aggregieren und zurückgeben, die Ausführungszeit minimieren und unnötige Vorgänge vermeiden (z. B. redundante CASTs, unnötige JOINs oder SELECT DISTINCT, falls nicht erforderlich).Das Ergebnis sollte Filmtitel, durchschnittliche Bewertung, Region und alle anderen relevanten Felder enthalten.Die Abfrage muss in einem großen Dataset in weniger als 1,5 Sekunden abgeschlossen werden. Alle Geschäftslogik und Korrektheit müssen wie im ursprünglichen complex.sql beibehalten werden.Schreiben Sie eine leistungsfähige SQL-Abfrage, die diese Anforderungen erfüllt, und erläutern Sie alle von Ihnen angewendeten Optimierungen.