Trabalhar com SQL usando o GitHub Copilot
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
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?
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.
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.