Jak używać ChatGPT do pisania zapytań SQL

Pisanie zapytań SQL może być czasochłonne i trudne. Jeśli Twoim zadaniem jest tworzenie rozwiązań dla określonych scenariuszy biznesowych, musisz mieć pewność, że Twoje zapytania są zarówno wydajne, jak i dokładne.

ChatGPT to narzędzie AI, które zostało przeszkolone w zakresie ogromnego zestawu tekstów technicznych, w tym języka SQL. Może odpowiadać na pytania dotyczące składni SQL, generować zapytania SQL lub wyjaśniać dane wyjściowe danego zapytania SQL.

Używając ChatGPT do generowania zapytań SQL, możesz skupić się na zadaniach wyższego poziomu, takich jak projektowanie raportów i przepływów danych. Nie tylko oszczędza to czas, ale także zapewnia jakość i skuteczność analizy danych.

Pod koniec tego artykułu będziesz mieć dobre zrozumienie, jak korzystać z ChatGPT, aby pomóc Ci w pisaniu zapytań SQL.

Spis treści

Zalety używania ChatGPT do zapytań SQL

Jak używać ChatGPT do pisania zapytań SQL

ChatGPT to potężne narzędzie AI, które rozumie język naturalny. Może służyć jako cenne narzędzie zarówno dla początkujących, jak i doświadczonych programistów.

Początkujący mogą uznać składnię języka SQL za złożoną i trudną do zapamiętania. ChatGPT może pomóc, przekształcając żądania języka naturalnego w zapytania SQL. To sprawia, że ​​nauka SQL jest bardziej interaktywna i mniej zniechęcająca, ponieważ możesz zobaczyć tłumaczenie zwykłego języka angielskiego na SQL w czasie rzeczywistym.

Doświadczeni programiści mogą zauważyć, że formułowanie złożonych zapytań SQL obejmujących wiele tabel i warunków może być czasochłonne. ChatGPT może przyspieszyć ten proces, generując szkielety zapytań lub nawet kompletne zapytania na podstawie zadania opisanego w języku naturalnym.

Zmniejsza to również szanse na błędy składniowe. Mówiąc o błędach, ChatGPT może również pomóc w debugowaniu zapytań SQL, dostarczając możliwych rozwiązań lub wyjaśnień. Może również sugerować różne sposoby optymalizacji zapytania w celu uzyskania lepszej wydajności.

Jeśli szukasz bardziej ogólnego wprowadzenia do narzędzia, zapoznaj się z tymi artykułami:

Jeśli chcesz zacząć używać go do zapytań SQL, czytaj dalej.

Jak zacząć korzystać z ChatGPT dla zapytań SQL

Jeśli nie masz jeszcze konta Open AI (jest ono bezpłatne!), wykonaj następujące kroki.

  1. Uruchom przeglądarkę i przejdź do https://chat.openai.com/ .

  2. Kliknij przycisk rejestracji.

  3. Zarejestruj się za pomocą adresu e-mail, konta Microsoft lub konta Google.

  4. Podaj numer telefonu do weryfikacji.

Po zalogowaniu się możesz od razu rozpocząć wysyłanie wiadomości, na które należy odpowiedzieć. Twoja wiadomość jest nazywana monitem ChatGPT .

Ten artykuł zawiera wiele przykładów, dzięki którym zapoznasz się z używaniem tego narzędzia podczas pracy z językiem SQL.

Jak rozpocząć sesje ChatGPT dla zapytań SQL

Różni dostawcy baz danych rozszerzyli standardowy kod SQL o zastrzeżoną składnię.

Na przykład Microsoft ma Transact-SQL (w skrócie T-SQL) do interakcji z instancją Microsoft SQL Server. T-SQL ma składnię, która nie będzie działać na innym typie bazy danych SQL, takim jak MySQL lub PostgreSQL.

PostgreSQL to rozszerzenie typu open source, które ma dodatkowe polecenia i składnię, które nie będą działać na SQL Server ani Oracle.

Oznacza to, że gdy prosisz ChatGTP o dostarczenie zapytania SQL przy użyciu rozszerzonych funkcji systemu bazodanowego, powinieneś rozpocząć sesję czatu od wyjaśnienia, jakiej implementacji SQL używasz.

Możesz rozpocząć sesję od stwierdzenia typu „ Pracuję z Microsoft SQL Server”. i zadaj pytanie w następnym zdaniu.

Aby to uprościć, możesz użyć „ Z SQL Server , jak mam…?” gdy pytasz o pojęcie lub termin.

W dalszej części tego artykułu skupię się na standardowych zapytaniach SQL, które działają we wszystkich głównych systemach zarządzania bazami danych.

Jak sformułować swoje zamiary w ChatGPT

Ważne jest, aby jasno sformułować swoje intencje w ChatGPT.

Zacznij od opisania struktury swoich tabel, aby ChatGPT zrozumiał model danych, z którym pracujesz. Wymień nazwy i relacje tabel, a także kolumny i ich typy danych. Na przykład:

Mam dwie tabele: zamówienia i klienci. Tabela zamówień zawiera kolumny id, id_klienta, produkt i cenę. Tabela klientów zawiera kolumny id, name i email. Identyfikator_klienta w tabeli zamówień jest kluczem obcym odnoszącym się do kolumny identyfikatora w tabeli klientów.

Następnie po prostu wyjaśnij konkretne zapytanie, które chcesz wygenerować, używając języka naturalnego ( tekst podobny do ludzkiego zamiast kodu ).

Bądź jak najbardziej precyzyjny, aby pomóc ChatGPT zrozumieć, czego szukasz. Na przykład:

Napisz zapytanie SQL, które znajdzie całkowity przychód każdego klienta, obliczając sumę cen jego zamówień.

ChatGPT zwraca zapytanie SQL z podziałem na różne części. Spójrz na następujący przykład instrukcji select:

Jak używać ChatGPT do pisania zapytań SQL

Technologia sztucznej inteligencji wygenerowała zapytanie SQL na podstawie podanych przez Ciebie nazw tabel i żądań.

Ale to narzędzie nie kończy się tylko na tym. Zwraca uwagę na kilka dodatkowych rzeczy:

  • Kiedy zamiast tego chcesz użyć LEWEGO DOŁĄCZENIA.

  • Możesz użyć identyfikatora zamiast NAZWY, jeśli nazwy klientów nie są unikalne.

Formułowanie żądań na podstawie wyników zapytania

Aby uzyskać lepsze wyniki zapytań za pomocą ChatGPT, możesz podzielić złożone żądania na mniejsze części, aby utrzymać przepływ konwersacji.

Załóżmy na przykład, że potrzebujesz bardziej złożonego zapytania, które filtruje klientów na podstawie ich miasta.

Możesz kontynuować sesję czatu, podając te nowe informacje.

Mam inną tabelę o nazwie adres_klienta z kolumnami id, id_klienta, ulica, miasto, stan. Identyfikator_klienta jest kluczem obcym do tabeli klientów.

Zmień poprzednie zapytanie SQL, aby filtrować klientów z Chicago.

ChatGPT zwraca zmienione zapytanie z nową klauzulą ​​WHERE.

Jeśli nie masz doświadczenia z SQL, jest to świetny sposób na poszerzenie wiedzy.

Pamiętaj, aby Twoje prośby były zwięzłe i mieściły się w odpowiednim kontekście, aby zapewnić płynną pracę z ChatGPT.

4 najlepsze praktyki dotyczące generowania zapytań

Oto kilka wskazówek, które pomogą upewnić się, że kod SQL tworzony przez ChatGPT jest właściwym rozwiązaniem:

  • Określaj nazwy tabel i kolumn, aby uniknąć niejasności.

  • Jasno określ wszelkie warunki, filtry lub wymagania dotyczące sortowania.

  • Określ żądany format wyjściowy, taki jak kolumny lub agregacje.

  • W razie potrzeby podaj przykłady podobnych złożonych zapytań.

Im dokładniej podasz swój opis, tym lepsze będzie wygenerowane zapytanie.

2 sposoby optymalizacji pod kątem wydajności

Używając ChatGPT do generowania zapytań SQL, należy wziąć pod uwagę aspekt wydajności zapytań. Oto dwa sposoby optymalizacji zapytań SQL pod kątem wydajności:

  • użyj odpowiednich indeksów

  • unikanie zbyt złożonych zapytań SQL

Użyj odpowiednich indeksów

W niektórych rozszerzeniach SQL można określić, że zapytanie powinno używać określonego indeksu, jednak nie jest to uważane za dobrą praktykę. Jeśli schemat bazy danych lub profil danych zmienia się w czasie, może dojść do zapytania, które będzie zmuszone do użycia nieefektywnego indeksu.

Możesz jednak poprosić ChatGPT o poradę dotyczącą optymalnych indeksów dla Twojego zapytania. Oto przykład.

Chcę utworzyć jeden lub więcej indeksów, dzięki którym to zapytanie będzie najbardziej wydajne. Proszę o pomoc.

ChatGPT zarekomenduje indeksy i poda powody wyboru.

Ważne jest, aby programiści SQL nie tworzyli na ślepo wszystkich sugerowanych indeksów. Mogą one nie być odpowiednie dla rzeczywistych danych. Radzę spróbować i przetestować każdy z nich.

Unikaj zbyt złożonych zapytań

Jedną z zalet konstruowania zapytań, jak sugerowaliśmy w poprzedniej sekcji, jest mniejsze prawdopodobieństwo otrzymania długiego, złożonego zapytania, które jest trudne do odczytania i utrzymania.

Jeśli ChatGPT wysyła zapytanie z wieloma trudnymi do wykonania zapytaniami podrzędnymi, możesz poprosić go o udostępnienie alternatywnego skryptu, który używa wielu zapytań i jednej lub więcej tabel tymczasowych.

Załóżmy, że zdecydowałem, że filtrowanie zapytań w „Chicago” jest zbyt skomplikowane (nie jest!). Poinstruowałbym ChatGPT w ten sposób:

Chcę podzielić poprzednie zapytanie na dwa osobne zapytania korzystające z tabeli tymczasowej. Skrypt musi osiągnąć te same wyniki.

Zawsze pomocny ChatGPT prawie przewraca się, by wykonywać twoje rozkazy. To mówi:

Jasne, możemy osiągnąć te same wyniki, najpierw tworząc tymczasową tabelę do przechowywania całkowitego przychodu dla każdego klienta, a następnie wysyłając zapytanie do tej tymczasowej tabeli w celu odfiltrowania klientów z Chicago.

Narzędzie kontynuuje, udostępniając dwie oddzielne sekcje kodu, które dają takie same wyniki jak w poprzednich przykładach.

Jak prezentować dane w ChatGPT

Jak używać ChatGPT do pisania zapytań SQL

Jeśli chcesz rozwiązać problemy z zapytaniami, możesz dostarczyć przykładowe dane do ChatGPT i poprosić o uruchomienie SQL.

Wcześniejsza sekcja pokazała, jak opisywać tabele i relacje. Możesz również dostarczyć instrukcje CREATE TABLE do ChatGPT.

Następnym krokiem jest dostarczenie danych w formie zbiorczej lub tabelarycznej, aby pomóc ChatGPT zrozumieć Twoją bazę danych i zinterpretować wyniki.

Na przykład możesz podać dane w ten sposób:

Oto dane w tych tabelach.

Klienci

1, „Jan Kowalski”, „ [chroniony e-mailem]

2, „Mary Doe”, „ [chroniony e-mailem]

Zamówienia

1, 1, „Bluza”, 14,99

2, 1, „Koszulka”, 5,99

3, 2, „Dżinsy”, 24,99

Adres klienta

1, 1, „Hope Street”, „Chicago”, „Illinois”

2, 2, „Cherry Lane”, „Filadelfia”, „Pensylwania”

Zauważ, że tylko John Smith mieszka w Chicago. Po podaniu danych możesz poprosić ChatGPT o podanie wyniku konkretnego zapytania.

Jeśli poprosiłeś narzędzie o wypróbowanie kilku wariantów sesji, radzę skopiować i wkleić dokładnie to zapytanie, które chcesz „uruchomić”, aby nie było dwuznaczności.

Wpisz to jako monit: „ Podaj wynik tego zapytania:

ChatGPT użyje zapytania do obliczenia całkowitego przychodu z zamówień Johna Smitha. Oto przykład i jest to poprawna odpowiedź!

Jak używać ChatGPT do pisania zapytań SQL

2 wady korzystania z ChatGPT

Dwie główne wady, na które należy zwrócić uwagę, to:

  • niepoprawna składnia

  • nieefektywne zapytania

Niepoprawna składnia

Czasami ChatGPT generuje kod SQL, który się nie kompiluje lub generuje nieprawidłowe wyniki. Jest to bardziej prawdopodobne, gdy poprosisz go o pracę z zastrzeżonymi rozszerzeniami standardowego SQL .

Jeśli opakowujesz wygenerowane zapytania w procedury składowane, pamiętaj o ich przetestowaniu przed dostarczeniem wyników analitykowi danych lub użytkownikom biznesowym.

Jeśli interesuje Cię bardziej wyrafinowany sposób używania zapytań w języku naturalnym dla swoich danych, zapoznaj się z implementacją firmy Microsoft w usłudze Power BI:

Nieefektywne zapytania

Jeśli chcesz mieć pewność, że zapytania SQL są wydajne, sprawdź plan wykonania zapytania.

Jest to sekwencja operacji wykonywanych przez system zarządzania bazą danych. To trochę jak otwieranie maszyny i patrzenie na to, co jest uruchomione.

Problem z ChatGPT polega na tym, że nie widzi, w jaki sposób system zarządzania bazą danych przetwarza zapytanie SQL.

Na przykład, czy najpierw filtruje klientów według stanu, czy wykonuje tę część jako ostatnią? Ta decyzja może mieć duży wpływ na wyniki.

Jeśli zauważysz, że Twoje zapytanie jest powolne w produkcji produktu, będziesz musiał zakasać rękawy i samodzielnie przeanalizować plan wykonania.

Końcowe przemyślenia

Widziałeś rzeczywiste przykłady wykorzystania ChatGPT do pisania i poprawiania typowych zapytań SQL używanych w biznesie.

Należy zauważyć, że chociaż narzędzie AI może zapewnić solidne podstawy i pomóc w generowaniu zapytań SQL, nie zastępuje ono potrzeby solidnego zrozumienia języka SQL.

Jednak przy prawidłowym użyciu ChatGPT może być nieocenionym pomocnikiem dla programistów SQL.