Come utilizzare ChatGPT per scrivere query SQL

La scrittura di query SQL può richiedere molto tempo e può essere impegnativa. Se hai il compito di creare soluzioni per scenari aziendali specifici, devi essere sicuro che le tue query siano efficienti e accurate.

ChatGPT è uno strumento di intelligenza artificiale che è stato addestrato su una vasta gamma di testi tecnici, incluso SQL. Può rispondere a domande sulla sintassi SQL, generare query SQL o spiegare l'output di una determinata query SQL.

Utilizzando ChatGPT per la generazione di query SQL, puoi concentrarti su attività di livello superiore come la progettazione di report e flussi di dati. Questo non solo ti fa risparmiare tempo, ma garantisce anche la qualità e l'efficacia della tua analisi dei dati.

Alla fine di questo articolo, avrai una solida conoscenza di come utilizzare ChatGPT per aiutarti a scrivere query SQL.

Sommario

Vantaggi dell'utilizzo di ChatGPT per le query SQL

Come utilizzare ChatGPT per scrivere query SQL

ChatGPT è un potente strumento di intelligenza artificiale che comprende il linguaggio naturale. Può essere uno strumento prezioso sia per i principianti che per gli sviluppatori esperti.

I principianti possono trovare la sintassi di SQL complessa e difficile da ricordare. ChatGPT può aiutare trasformando le richieste in linguaggio naturale in query SQL. Ciò rende l'apprendimento di SQL più interattivo e meno scoraggiante, poiché puoi vedere la traduzione dell'inglese semplice in SQL in tempo reale.

Gli sviluppatori esperti possono scoprire che la formulazione di query SQL complesse che coinvolgono più tabelle e condizioni può richiedere molto tempo. ChatGPT può accelerare il processo generando scheletri di query o persino query complete basate sull'attività descritta in linguaggio naturale.

Ciò riduce anche le possibilità di errori di sintassi. A proposito di errori, ChatGPT può anche aiutare a eseguire il debug delle query SQL fornendo possibili soluzioni o spiegazioni. Può anche suggerire diversi modi per ottimizzare una query per prestazioni migliori.

Se vuoi un'introduzione più generale allo strumento, dai un'occhiata a questi articoli:

Se vuoi iniziare a usarlo per le query SQL, continua a leggere.

Come iniziare con ChatGPT per query SQL

Se non hai già un account Open AI (è gratis!), segui questi passaggi.

  1. Avvia un browser e vai su https://chat.openai.com/ .

  2. Fai clic sul pulsante di registrazione.

  3. Registrati con un indirizzo e-mail, un account Microsoft o un account Google.

  4. Fornire un numero di telefono per la verifica.

Quando accedi, puoi iniziare immediatamente a inviare messaggi a cui rispondere. Il tuo messaggio è noto come prompt ChatGPT .

Questo articolo mostra molti esempi per acquisire familiarità con l'utilizzo dello strumento mentre si lavora con SQL.

Come avviare le tue sessioni ChatGPT per le query SQL

Diversi fornitori di database hanno esteso il codice SQL standard con una sintassi proprietaria.

Ad esempio, Microsoft dispone di Transact-SQL (abbreviato in T-SQL) per l'interazione con un'istanza di Microsoft SQL Server. T-SQL ha una sintassi che non funzionerà su un altro tipo di database SQL, come MySQL o PostgreSQL.

PostgreSQL è un'estensione open source con comandi e sintassi aggiuntivi che non verranno eseguiti su SQL Server o Oracle.

Ciò significa che quando chiedi a ChatGTP di fornire una query SQL utilizzando le funzionalità estese del sistema di database, dovresti iniziare la sessione di chat chiarendo quale implementazione di SQL stai utilizzando.

Puoi iniziare la sessione con un'affermazione come " Sto lavorando con Microsoft SQL Server". e fai la tua domanda nella frase successiva.

Per renderlo più semplice, puoi usare " Con SQL Server , come faccio a...?" quando chiedi informazioni su un concetto o un termine.

Per il resto di questo articolo, mi concentrerò sulle query SQL standard che funzionano su tutti i principali sistemi di gestione dei database.

Come formulare le tue intenzioni su ChatGPT

È importante esprimere chiaramente le tue intenzioni su ChatGPT.

Inizia descrivendo la struttura delle tue tabelle in modo che ChatGPT comprenda il modello di dati con cui stai lavorando. Indica i nomi e le relazioni delle tabelle, nonché le colonne e i relativi tipi di dati. Per esempio:

Ho due tabelle: ordini e clienti. La tabella degli ordini ha le colonne id, customer_id, product e price. La tabella clienti ha colonne id, nome ed email. Il customer_id nella tabella degli ordini è una chiave esterna che fa riferimento alla colonna id nella tabella dei clienti.

Successivamente, spiega semplicemente la query specifica che desideri generare utilizzando il linguaggio naturale ( testo simile a quello umano anziché codice ).

Sii il più preciso possibile per aiutare ChatGPT a capire cosa stai cercando. Per esempio:

Scrivi una query SQL che trovi il fatturato totale di ogni cliente calcolando la somma dei prezzi dei loro ordini.

ChatGPT restituisce una query SQL con una ripartizione delle diverse parti. Dai un'occhiata al seguente esempio di istruzione select:

Come utilizzare ChatGPT per scrivere query SQL

La tecnologia AI ha generato una query SQL basata sui nomi delle tabelle e sulla richiesta che hai fornito.

Ma lo strumento non si ferma solo qui. Indica un paio di cose in più:

  • Quando invece vorresti usare LEFT JOIN.

  • Ti consigliamo di utilizzare l'ID anziché il NOME se i nomi dei clienti non sono univoci.

Formulazione di richieste in base ai risultati della query

Per ottenere risultati di query migliori con ChatGPT, puoi suddividere richieste complesse in blocchi più piccoli per mantenere un flusso di conversazione.

Ad esempio, supponi di volere una query più complessa che filtri i clienti in base alla loro città.

Puoi continuare la sessione di chat fornendo queste nuove informazioni.

Ho un'altra tabella chiamata customer_address con colonne id, customer_id, street, city, state. Il customer_id è una chiave esterna per la tabella del cliente.

Modifica la query SQL precedente per filtrare i clienti di Chicago.

ChatGPT restituisce la query modificata con una nuova clausola WHERE.

Se non hai esperienza con SQL, questo è un ottimo modo per sviluppare le tue conoscenze.

Ricorda di mantenere le tue richieste concise e all'interno del contesto pertinente per garantire un'esperienza fluida lavorando con ChatGPT.

4 best practice per la generazione di query

Ecco alcuni suggerimenti per garantire che il codice SQL prodotto da ChatGPT sia la soluzione corretta:

  • Sii specifico con i nomi di tabelle e colonne per evitare ambiguità.

  • Indicare chiaramente eventuali condizioni, filtri o requisiti di ordinamento.

  • Specificare il formato di output desiderato, ad esempio colonne o aggregazioni.

  • Se necessario, fornire esempi di query complesse simili.

Più preciso sei nella tua descrizione, migliore sarà la query generata.

2 modi per ottimizzare le prestazioni

Quando si utilizza ChatGPT per generare query SQL, è fondamentale considerare l'aspetto delle prestazioni delle query. Ecco due modi per ottimizzare le query SQL per le prestazioni:

  • utilizzare indici appropriati

  • evitando query SQL eccessivamente complesse

Usa indici appropriati

È possibile in alcune estensioni di SQL specificare che la query deve utilizzare un indice specifico, tuttavia ciò non è considerato una buona pratica. Se lo schema del database o il profilo dei dati cambia nel tempo, potresti finire con una query che è costretta a utilizzare un indice inefficiente.

Tuttavia, puoi chiedere consiglio a ChatGPT sugli indici ottimali per la tua query. Ecco un esempio.

Voglio creare uno o più indici che rendano questa query più efficiente. Si prega di aiutare.

ChatGPT consiglierà gli indici e fornirà le ragioni alla base delle scelte.

È importante che gli sviluppatori SQL non creino ciecamente tutti gli indici suggeriti. Potrebbero non essere appropriati per i dati effettivi. Ti consiglio di provare e testare ciascuno di essi.

Evita query eccessivamente complesse

Uno dei vantaggi di costruire le tue query come suggerito nella sezione precedente è che è meno probabile che tu riceva una query lunga e complessa che è difficile da leggere e da mantenere.

Se ChatGPT ti fornisce una query con più sottoquery difficili da seguire, puoi dirgli di fornire uno script alternativo che utilizzi più query e una o più tabelle temporanee.

Supponiamo che io abbia deciso che il filtro delle query su "Chicago" è troppo complesso (non lo è!). Vorrei istruire ChatGPT in questo modo:

Voglio suddividere la query precedente in due query separate che utilizzano una tabella temporanea. Lo script deve ottenere gli stessi risultati.

Il sempre utile ChatGPT cade quasi su se stesso per eseguire i tuoi ordini. Dice:

Certo, possiamo ottenere gli stessi risultati creando prima una tabella temporanea per archiviare le entrate totali per ciascun cliente, quindi interrogando questa tabella temporanea per filtrare i clienti di Chicago.

Lo strumento continua fornendo due sezioni di codice separate che producono gli stessi risultati degli esempi precedenti.

Come presentare i dati a ChatGPT

Come utilizzare ChatGPT per scrivere query SQL

Quando desideri risolvere i problemi delle tue query, puoi fornire dati di esempio a ChatGPT e chiedergli di eseguire l'SQL.

Una sezione precedente ti ha mostrato come descrivere tabelle e relazioni. Puoi anche fornire le istruzioni CREATE TABLE a ChatGPT.

Il passaggio successivo consiste nel fornire i dati in un formato riassuntivo o tabulare per aiutare ChatGPT a comprendere il database e interpretare i risultati.

Ad esempio, puoi fornire i dati in questo modo:

Ecco i dati in queste tabelle.

Clienti

1, “John Smith”, “ [email protected]

2, "Mary Doe", " [email protected] "

Ordini

1, 1, "Felpa con cappuccio", 14,99

2, 1, "Maglietta", 5,99

3, 2, "Jeans", 24,99

Indirizzo_cliente

1, 1, “Hope Street”, “Chicago”, “Illinois”

2, 2, “Cherry Lane”, “Philadelphia”, “Pennsylvania”

Nota che solo John Smith vive a Chicago. Dopo aver fornito i dati, puoi chiedere a ChatGPT di fornire il risultato della query specifica.

Se hai chiesto allo strumento di provare diverse varianti nella sessione, ti consiglio di copiare e incollare la query esatta che vuoi che "esegui" in modo che non ci siano ambiguità.

Inserisci questo come prompt: " Fornisci il risultato di questa query: "

ChatGPT utilizzerà la query per calcolare le entrate totali degli ordini di John Smith. Ecco un esempio, ed è la risposta corretta!

Come utilizzare ChatGPT per scrivere query SQL

2 svantaggi dell'utilizzo di ChatGPT

I due principali svantaggi a cui prestare attenzione sono:

  • sintassi errata

  • interrogazioni inefficienti

Sintassi errata

A volte ChatGPT genererà SQL che non compila o produce risultati errati. Questo è più probabile quando gli hai chiesto di lavorare con estensioni proprietarie a SQL standard .

Se esegui il wrapping delle query generate all'interno di stored procedure, assicurati di testarle prima di consegnare i risultati a un analista di dati o agli utenti aziendali.

Se sei interessato a un modo più curato per utilizzare le query in linguaggio naturale per i tuoi dati, controlla l'implementazione di Microsoft in Power BI:

Query inefficienti

Quando vuoi assicurarti che le tue query SQL siano efficienti, esamini il piano di esecuzione della query.

Questa è la sequenza delle operazioni eseguite dal sistema di gestione del database. È un po' come aprire la macchina e guardare cosa sta correndo.

Il problema con ChatGPT è che non può vedere come il tuo sistema di gestione del database sta elaborando la tua query SQL.

Ad esempio, filtra prima i clienti per stato o esegue quella parte per ultima? Questa decisione potrebbe fare una grande differenza per le prestazioni.

Se osservi che la tua query è lenta nell'output del prodotto, dovrai rimboccarti le maniche ed esaminare tu stesso il piano di esecuzione.

Pensieri finali

Hai visto esempi di vita reale sull'utilizzo di ChatGPT per scrivere e modificare le tipiche query SQL utilizzate nel mondo degli affari.

È importante notare che mentre lo strumento AI può fornire una solida base e assistere nella generazione di query SQL, non sostituisce la necessità di una solida comprensione di SQL.

Tuttavia, se usato correttamente, ChatGPT può essere un prezioso assistente per gli sviluppatori SQL.