Como usar o ChatGPT para escrever consultas SQL

Escrever consultas SQL pode ser demorado e desafiador. Se você tem a tarefa de criar soluções para cenários de negócios específicos, precisa ter certeza de que suas consultas são eficientes e precisas.

O ChatGPT é uma ferramenta de IA que foi treinada em um grande conjunto de textos técnicos, incluindo SQL. Ele pode responder a perguntas sobre sintaxe SQL, gerar consultas SQL ou explicar a saída de uma determinada consulta SQL.

Ao usar o ChatGPT para geração de consultas SQL, você pode se concentrar em tarefas de nível superior, como criar relatórios e fluxos de dados. Isso não apenas economiza tempo, mas também garante a qualidade e a eficácia de sua análise de dados.

Ao final deste artigo, você terá uma compreensão sólida de como usar o ChatGPT para ajudá-lo a escrever consultas SQL.

Índice

Vantagens de usar o ChatGPT para consultas SQL

Como usar o ChatGPT para escrever consultas SQL

O ChatGPT é uma poderosa ferramenta de IA que entende a linguagem natural. Pode servir como uma ferramenta valiosa para iniciantes e desenvolvedores experientes.

Iniciantes podem achar a sintaxe do SQL complexa e difícil de lembrar. O ChatGPT pode ajudar transformando solicitações de linguagem natural em consultas SQL. Isso torna o aprendizado de SQL mais interativo e menos assustador, pois você pode ver a tradução de inglês simples para SQL em tempo real.

Desenvolvedores experientes podem descobrir que a formulação de consultas SQL complexas envolvendo várias tabelas e condições pode consumir muito tempo. O ChatGPT pode acelerar o processo gerando esqueletos de consulta ou até mesmo consultas completas com base na tarefa descrita em linguagem natural.

Isso também reduz as chances de erros de sintaxe. Falando em erros, o ChatGPT também pode ajudar a depurar consultas SQL, fornecendo possíveis soluções ou explicações. Ele também pode sugerir diferentes maneiras de otimizar uma consulta para obter melhor desempenho.

Se você quiser uma introdução mais geral à ferramenta, confira estes artigos:

Se você deseja começar a usá-lo para consultas SQL, continue lendo.

Como começar a usar o ChatGPT para consultas SQL

Se você ainda não possui uma conta Open AI (é grátis!), siga estas etapas.

  1. Inicie um navegador e vá para https://chat.openai.com/ .

  2. Clique no botão de inscrição.

  3. Inscreva-se com um endereço de e-mail, uma conta da Microsoft ou uma conta do Google.

  4. Forneça um número de telefone para verificação.

Ao entrar, você pode começar imediatamente a enviar mensagens para serem respondidas. Sua mensagem é conhecida como prompt do ChatGPT .

Este artigo mostra muitos exemplos para você se familiarizar com o uso da ferramenta enquanto trabalha com SQL.

Como iniciar suas sessões ChatGPT para consultas SQL

Diferentes fornecedores de banco de dados estenderam o código SQL padrão com sintaxe proprietária.

Por exemplo, a Microsoft possui o Transact-SQL (abreviado como T-SQL) para interagir com uma instância do Microsoft SQL Server. O T-SQL possui uma sintaxe que não será executada em outro tipo de banco de dados SQL, como MySQL ou PostgreSQL.

O PostgreSQL é uma extensão de código aberto que possui comandos e sintaxe extras que não serão executados no SQL Server ou no Oracle.

Isso significa que, ao solicitar ao ChatGTP que forneça uma consulta SQL usando os recursos estendidos do sistema de banco de dados, você deve iniciar sua sessão de bate-papo deixando claro qual implementação do SQL está usando.

Você pode iniciar sua sessão com uma declaração como " Estou trabalhando com o Microsoft SQL Server". e faça sua pergunta na próxima frase.

Para simplificar, você pode usar “ With SQL Server , how do I …?” ao perguntar sobre um conceito ou termo.

No restante deste artigo, focarei nas consultas SQL padrão que funcionam em todos os principais sistemas de gerenciamento de banco de dados.

Como Frasear Suas Intenções para o ChatGPT

É importante expressar claramente suas intenções para o ChatGPT.

Comece descrevendo a estrutura de suas tabelas para que o ChatGPT entenda o modelo de dados com o qual você está trabalhando. Mencione os nomes e relacionamentos das tabelas, bem como as colunas e seus tipos de dados. Por exemplo:

Tenho duas tabelas: pedidos e clientes. A tabela de pedidos possui as colunas id, customer_id, product e price. A tabela de clientes possui as colunas id, nome e email. O customer_id na tabela orders é uma chave estrangeira que faz referência à coluna id na tabela customers.

Em seguida, simplesmente explique a consulta específica que deseja gerar usando linguagem natural ( texto semelhante ao humano em vez de código ).

Seja o mais preciso possível para ajudar o ChatGPT a entender o que você está procurando. Por exemplo:

Escreva uma consulta SQL que encontre a receita total de cada cliente calculando a soma dos preços de seus pedidos.

O ChatGPT retorna uma consulta SQL com um detalhamento das diferentes partes. Dê uma olhada no seguinte exemplo de uma instrução select:

Como usar o ChatGPT para escrever consultas SQL

A tecnologia AI gerou uma consulta SQL com base nos nomes das tabelas e na solicitação que você forneceu.

Mas a ferramenta não para por aí. Ele aponta algumas coisas extras:

  • Quando você deseja usar um LEFT JOIN em vez disso.

  • Você pode usar o ID em vez do NOME se os nomes dos clientes não forem exclusivos.

Formulando solicitações com base nos resultados da consulta

Para obter melhores resultados de consulta com o ChatGPT, você pode dividir solicitações complexas em partes menores para manter um fluxo de conversação.

Por exemplo, suponha que você queira uma consulta mais complexa que filtre clientes com base em sua cidade.

Você pode continuar a sessão de bate-papo fornecendo essas novas informações.

Eu tenho outra tabela chamada customer_address com as colunas id, customer_id, street, city, state. O customer_id é uma chave estrangeira para a tabela de clientes.

Corrija a consulta SQL anterior para filtrar clientes de Chicago.

ChatGPT retorna a consulta corrigida com uma nova cláusula WHERE.

Se você não tem experiência com SQL, esta é uma ótima maneira de aumentar seu conhecimento.

Lembre-se de manter suas solicitações concisas e dentro do contexto relevante para garantir uma experiência tranquila ao trabalhar com o ChatGPT.

4 práticas recomendadas para geração de consultas

Aqui estão algumas dicas para garantir que o Código SQL que o ChatGPT produz seja a solução correta:

  • Seja específico com nomes de tabelas e colunas para evitar ambigüidade.

  • Indique claramente quaisquer condições, filtros ou requisitos de classificação.

  • Especifique o formato de saída desejado, como colunas ou agregações.

  • Se necessário, forneça exemplos de consultas complexas semelhantes.

Quanto mais preciso você for em sua descrição, melhor será a consulta gerada.

2 maneiras de otimizar o desempenho

Ao usar o ChatGPT para gerar consultas SQL, é crucial considerar o aspecto de desempenho das consultas. Aqui estão duas maneiras de otimizar as consultas SQL para desempenho:

  • use índices apropriados

  • evitando consultas SQL excessivamente complexas

Use índices apropriados

É possível em algumas extensões de SQL especificar que a consulta deve usar um índice específico, porém isso não é considerado uma boa prática. Se o esquema do banco de dados ou o perfil de dados mudar com o tempo, você poderá acabar com uma consulta forçada a usar um índice ineficiente.

No entanto, você pode pedir conselhos ao ChatGPT sobre os índices ideais para sua consulta. Aqui está um exemplo.

Desejo criar um ou mais índices que tornem essa consulta mais eficiente. Por favor, ajude.

O ChatGPT recomendará índices e fornecerá os motivos por trás das escolhas.

É importante que os desenvolvedores SQL não criem cegamente todos os índices sugeridos. Eles podem não ser apropriados para os dados reais. Aconselho que você experimente e teste cada um.

Evite consultas muito complexas

Uma das vantagens de construir suas consultas conforme sugerimos na seção anterior é que é menos provável que você obtenha uma consulta longa e complexa, difícil de ler e manter.

Se o ChatGPT fornecer uma consulta com várias subconsultas difíceis de seguir, você poderá solicitar que ele forneça um script alternativo que use várias consultas e uma ou mais tabelas temporárias.

Suponha que eu decidisse que a filtragem de consulta em “Chicago” era muito complexa (não é!). Eu instruiria o ChatGPT assim:

Desejo dividir a consulta anterior em duas consultas separadas que usam uma tabela temporária. O script deve alcançar os mesmos resultados.

O sempre útil ChatGPT quase cai sobre si mesmo para fazer o seu lance. Diz:

Claro, podemos obter os mesmos resultados criando primeiro uma tabela temporária para armazenar a receita total de cada cliente e, em seguida, consultando essa tabela temporária para filtrar os clientes de Chicago.

A ferramenta continua fornecendo duas seções de código separadas que produzem os mesmos resultados dos exemplos anteriores.

Como apresentar dados ao ChatGPT

Como usar o ChatGPT para escrever consultas SQL

Quando quiser solucionar problemas de suas consultas, você pode fornecer dados de amostra ao ChatGPT e solicitar que ele execute o SQL.

Uma seção anterior mostrou como descrever tabelas e relacionamentos. Você também pode fornecer as instruções CREATE TABLE para ChatGPT.

A próxima etapa é fornecer os dados em um formato resumido ou tabular para ajudar o ChatGPT a entender seu banco de dados e interpretar os resultados.

Por exemplo, você pode fornecer os dados assim:

Aqui estão os dados dessas tabelas.

Clientes

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

2, “Mary Doe”, “ [email protegido]

Pedidos

1, 1, “Moletom com capuz”, 14,99

2, 1, “Camiseta”, 5,99

3, 2, “Jeans”, 24,99

Endereço do cliente

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

2, 2, “Cherry Lane”, “Filadélfia”, “Pensilvânia”

Observe que apenas John Smith mora em Chicago. Depois de fornecer os dados, você pode solicitar ao ChatGPT o resultado da consulta específica.

Se você pediu para a ferramenta experimentar diversas variações na sessão, aconselho que copie e cole a consulta exata que deseja que ela “execute” para que não haja ambiguidade.

Digite isso como o prompt: “ Forneça o resultado desta consulta:

O ChatGPT usará a consulta para calcular a receita total dos pedidos de John Smith. Aqui está um exemplo, e é a resposta correta!

Como usar o ChatGPT para escrever consultas SQL

2 Desvantagens de Usar o ChatGPT

As duas principais desvantagens a serem observadas são:

  • sintaxe incorreta

  • consultas ineficientes

Sintaxe incorreta

Às vezes, o ChatGPT gera SQL que não compila ou produz resultados incorretos. Isso é mais provável quando você pediu para trabalhar com extensões proprietárias do SQL padrão .

Se você estiver agrupando as consultas geradas em procedimentos armazenados, certifique-se de testá-los antes de entregar os resultados a um analista de dados ou usuários de negócios.

Se você estiver interessado em uma maneira mais organizada de usar consultas de linguagem natural para seus dados, confira a implementação da Microsoft no Power BI:

Consultas Ineficientes

Quando quiser garantir que suas consultas SQL sejam eficientes, examine o plano de execução da consulta.

Esta é a sequência de operações executadas pelo sistema de gerenciamento de banco de dados. É um pouco como abrir a máquina e olhar o que está rodando.

O problema com o ChatGPT é que ele não consegue ver como seu sistema de gerenciamento de banco de dados está processando sua consulta SQL.

Por exemplo, ele filtra os clientes por estado primeiro ou executa essa parte por último? Essa decisão pode fazer uma grande diferença para o desempenho.

Se você observar que sua consulta está lenta para a saída do produto, precisará arregaçar as mangas e examinar você mesmo o plano de execução.

Pensamentos finais

Você viu exemplos reais de uso do ChatGPT para escrever e corrigir consultas SQL típicas usadas nos negócios.

É importante observar que, embora a ferramenta de IA possa fornecer uma base sólida e auxiliar na geração de consultas SQL, ela não substitui a necessidade de um entendimento robusto de SQL.

No entanto, quando usado corretamente, o ChatGPT pode ser um assistente inestimável para desenvolvedores SQL.