Trabalhar com SQL usando o GitHub Copilot

Concluído

O GitHub Copilot pode ser usado para interagir com todos os tipos de código, isso inclui interagir com linguagens de programação populares e fornecer a opção de escrever, depurar e otimizar código SQL.

O GitHub Copilot pode executar as seguintes tarefas relacionadas ao código SQL:

  • Explicação da consulta: use Copilot para explicar consultas SQL complexas para entender melhor sua lógica e estrutura.
  • Otimização de consulta: peça sugestões ao Copilot para otimizar consultas lentas ou ineficientes, como remover JOINs desnecessários, otimizar SELECT DISTINCT ou refatorar subconsultas.
  • Refatoração de consulta: Solicite ao Copilot que reescreva consultas para melhor legibilidade ou capacidade de manutenção, por exemplo, substituindo CROSS JOINs ou simplificando consultas aninhadas.
  • Gerando consultas: faça com que o Copilot gere novas consultas SQL com base em seus requisitos de dados, como instruções SELECT, INSERT, UPDATE ou DELETE.
  • Validação de dados: use o Copilot para ajudar a escrever consultas SQL que validem a integridade dos dados ou verifiquem se há condições específicas em seu banco de dados.
  • Exploração de esquema: peça ao Copilot para ajudá-lo a escrever consultas que explorem ou documentem seu esquema de banco de dados (por exemplo, listando tabelas, colunas ou relações).
  • Geração de teste: solicite ao Copilot para gerar testes ou declarações baseados em SQL para verificar os resultados da consulta ou o estado do banco de dados.
  • Depuração de erro: peça ao Copilot para ajudar a depurar erros do SQL ou sugerir correções para problemas comuns (por exemplo, erros de sintaxe, índices ausentes).
  • Criação de solicitação: Peça ao Copilot que gere solicitações ou modelos para criar consultas de alto desempenho do zero.

O GitHub Copilot fornece melhores resultados quando seus prompts são mais específicos. Se você fornecer solicitações gerais, provavelmente receberá respostas gerais. Se você fornecer mais detalhes em seus prompts e fizer perguntas mais detalhadas, é mais provável obter respostas detalhadas.

Por exemplo, você pode usar o GitHub Copilot para fornecer o código SQL para criar uma tabela que incluía colunas para nome, sobrenome, data de nascimento, filme favorito e nome do animal de estimação emitindo o seguinte prompt:

@workspace Forneça-me o código SQL para criar uma tabela que incluía colunas para nome, sobrenome, data de nascimento, filme favorito e nome do animal de estimação

Uma captura de tela de um prompt do GitHub Copilot relacionado à criação de uma tabela no SQL.

Entender um aplicativo que inclui o SQL

Por exemplo, se você abriu um codespace com um aplicativo que incluía código SQL, poderá consultar o GitHub Copilot com o seguinte prompt para entender mais sobre o projeto da seguinte maneira:

@workspace Explique brevemente a estrutura deste projeto. O que devo fazer para executá-lo?

Uma captura de tela mostrando a resposta do GitHub Copilot a uma consulta sobre a estrutura do projeto.

Entender o código SQL

Você pode usar o prompt /explain para entender o código específico. Por exemplo, um projeto pode conter um arquivo chamado complex.sql, que contém a consulta que está sendo executada no aplicativo. Para entender o conteúdo de complex.sql, você pode selecioná-lo no painel Explorer dos Codespaces do GitHub e, em seguida, usar o prompt /explain no chat.

Uma captura de tela de um conteúdo gerado por IA da tela do computador pode estar incorreta.

Em vez de selecionar todo o arquivo, você pode selecionar seções do código e pedir ao GitHub Copilot para fornecer um detalhe sobre essas seções.

Otimizar e refatorar consultas SQL

Às vezes, você recebe consultas lentas ou ineficientes porque há JUNÇÕES desnecessárias, as tabelas consultadas não têm índices ou contêm subconsultas aninhadas redundantes. Usando o GitHub Copilot, você pode selecionar uma consulta e solicitar otimizações que possam melhorar o desempenho.

Da mesma forma, você pode solicitar que o Copilot reescreva consultas para melhor legibilidade ou manutenção, solicitando ao Copilot que forneça comentários para explicar a funcionalidade para futuros desenvolvedores que talvez precisem examinar o código.

Um exemplo de prompt pode ser:

"Adicione comentários detalhados ao arquivo complex.sql explicando a finalidade e a funcionalidade de cada CTE, cláusula SQL e cálculo. Descreva o que cada seção da consulta faz, incluindo como o ano é extraído, como a média móvel é calculada, a lógica por trás da taxa de desempenho e o significado de cada instrução CASE. Os comentários devem facilitar que alguém que não esteja familiarizado com o arquivo entenda a lógica e a intenção de toda a consulta."

Validar a integridade dos dados

Use o Copilot para ajudar a escrever consultas SQL que validem a integridade dos dados ou verifiquem se há condições específicas em seu banco de dados. Por exemplo, você pode solicitar que o GitHub Copilot execute um dos quatro tipos de verificações de integridade:

  • Verificações de exclusividade/duplicação
  • Integridade referencial (violações de chave estrangeira)
  • Integridade do domínio (valores dentro dos intervalos esperados)
  • Verificações de regras de negócios (violações de lógica personalizada)

Um exemplo de consulta pode ser:

"Escreva uma consulta SQL que verifica se há chaves estrangeiras órfãs entre tabelas Pedidos e Clientes."

Documentação do esquema de banco de dados

Você pode pedir ao GitHub Copilot para ajudá-lo a escrever consultas que explorem ou documentem seu esquema de banco de dados. Ao dar ao GitHub Copilot o contexto do banco de dados com o qual você está trabalhando, você poderá determinar se o código que interage com esse banco de dados pode ser otimizado. Embora o GitHub Copilot não analise profundamente os planos de execução de consultas, mas entendendo o contexto do banco de dados SQL com o qual você está interagindo, ele pode fornecer melhores conselhos.

Geração de teste do SQL

Você pode solicitar que o GitHub Copilot gere testes ou declarações baseadas em SQL para verificar os resultados da consulta ou o estado do banco de dados. O Copilot pode sugerir estruturas de teste apropriadas com base no tipo de projeto. Para configurar o ambiente de teste, insira o comando /setupTests no campo de entrada de chat e siga as diretrizes do GitHub Copilot para configurar seu projeto.

O GitHub Copilot pode ajudar você a escrever testes para o código do aplicativo gerando um código de teste que abrange sua base de código. Isso inclui testes de unidade, testes de ponta a ponta e testes para casos de borda.

Depurar erros do SQL

Você pode pedir ao GitHub Copilot para ajudar a depurar erros do SQL ou sugerir correções para problemas comuns. Por exemplo, você pode selecionar um arquivo ou bloco de código e pedir ao GitHub Copilot para localizar e corrigir erros de sintaxe.

Ao fazer com que o GitHub Copilot forneça esquemas e índices de tabela completos, você pode fazer com que o GitHub Copilot gere consultas representativas nas tabelas e sugira índices adicionais, o que pode melhorar o desempenho.

Criação de prompt do GitHub Copilot

Você pode usar o GitHub Copilot para gerar prompts para criar um código que tenha um desempenho melhor do que o código existente. Ao interagir com o GitHub Copilot, forneça o máximo de detalhes possível na pergunta para aumentar a chance de que a resposta fornecida atenda aos seus requisitos. Para fazer isso:

  • Tenha uma compreensão do código. Esse entendimento pode ser derivado da interação existente com o GitHub Copilot.
  • Selecione o código original e abra o GitHub Copilot Chat.
  • Informe o máximo de detalhes possível. Por exemplo, você pode fornecer ao chat do GitHub Copilot o seguinte prompt:

Considerando os seguintes requisitos:o banco de dados é SQLite e contém tabelas relevantes para classificações de filme (consulte a estrutura em complex.sql).A consulta deve agregar e retornar os filmes mais bem avaliados por região, minimizando o tempo de execução e evitando operações desnecessárias (como CASTs redundantes, JOINs desnecessários ou SELECT DISTINCT, se não necessário).O resultado deve incluir título do filme, classificação média, região e quaisquer outros campos relevantes.A consulta deve ser concluída em menos de 1,5 segundo em um conjunto de dados grande. Toda a lógica de negócios e a correção devem ser preservadas como no complex.sql original.Escreva uma consulta SQL de alto desempenho que atenda a esses requisitos e explique as otimizações que você aplicar.