Trabajar con SQL con GitHub Copilot
GitHub Copilot se puede usar para interactuar con todos los tipos de código, esto incluye interactuar con lenguajes de programación populares y proporcionarle la opción de escribir, depurar y optimizar código SQL.
GitHub Copilot puede realizar las siguientes tareas relacionadas con el código SQL:
- Explicación de consultas: use Copilot para explicar consultas SQL complejas para comprender mejor su lógica y estructura.
- Optimización de consultas: pida a Copilot sugerencias para optimizar consultas lentas o ineficaces, como quitar JOIN innecesarios, optimizar SELECT DISTINCT o refactorizar subconsultas.
- Refactorización de consultas: solicite a Copilot que reescriba las consultas para mejorar la legibilidad o el mantenimiento, por ejemplo, reemplazar CROSS JOIN o simplificar las consultas anidadas.
- Generar consultas: Haga que Copilot genere nuevas consultas SQL en función de los requisitos de datos, como las instrucciones SELECT, INSERT, UPDATE o DELETE.
- Validación de datos: use Copilot para ayudar a escribir consultas SQL que validen la integridad de los datos o comprueben si hay condiciones específicas en la base de datos.
- Exploración de esquemas: pida a Copilot que le ayude a escribir consultas que exploren o documente el esquema de la base de datos (por ejemplo, enumerar tablas, columnas o relaciones).
- Generación de pruebas: solicite a Copilot que genere pruebas o aserciones basadas en SQL para comprobar los resultados de la consulta o el estado de la base de datos.
- Depuración de errores: pida a Copilot que ayude a depurar errores de SQL o sugerir correcciones para problemas comunes (por ejemplo, errores de sintaxis, índices que faltan).
- Creación de avisos: Haga que Copilot genere mensajes o plantillas para crear consultas de alto rendimiento desde cero.
GitHub Copilot proporciona mejores resultados cuando las solicitudes son más específicas. Si proporciona mensajes generales, es probable que reciba respuestas generales. Si proporciona más detalles en sus mensajes y formula preguntas más detalladas, es más probable que obtenga respuestas detalladas.
Por ejemplo, puede usar GitHub Copilot para proporcionarle el código SQL para crear una tabla que incluya columnas para nombre, apellidos, fecha de nacimiento, película favorita y nombre de mascota emitiendo el siguiente mensaje:
@workspace Proporcione el código SQL para crear una tabla que incluya columnas para nombre, apellidos, fecha de nacimiento, película favorita y nombre de mascota.
Descripción de una aplicación que incluye SQL
Por ejemplo, si abrió un espacio de código se presentó con una aplicación que incluía código SQL, podría consultar GitHub Copilot con el siguiente mensaje para obtener más información sobre el proyecto de la siguiente manera:
@workspace Explique brevemente la estructura de este proyecto. ¿Qué debo hacer para ejecutarlo?
Descripción del código SQL
Puede usar el símbolo del sistema /explain para comprender código específico. Por ejemplo, un proyecto podría contener un archivo denominado complex.sql, que contiene la consulta que se ejecuta en la aplicación. Para comprender el contenido de complex.sql, puede seleccionarlo en el panel Explorador de GitHub Codespaces y, a continuación, usar el mensaje /explain en el chat.
En lugar de seleccionar todo el archivo, puede seleccionar secciones del código y pedir a GitHub Copilot que proporcione un detalle sobre esas secciones.
Optimización y refactorización de consultas SQL
A veces se le presentan consultas lentas o ineficaces porque hay combinaciones innecesarias, las tablas consultadas no tienen índices ni contienen subconsultas anidadas redundantes. Con GitHub Copilot, puede seleccionar una consulta y solicitar las optimizaciones que puedan mejorar el rendimiento.
Del mismo modo, puede solicitar a Copilot que reescriba las consultas para mejorar la legibilidad o el mantenimiento, pidiendo a Copilot que proporcione comentarios para explicar la funcionalidad de los futuros desarrolladores que pueden necesitar revisar el código.
Un mensaje de ejemplo podría ser:
"Agregue comentarios detallados al archivo complex.sql que explique el propósito y la funcionalidad de cada CTE, cláusula SQL y cálculo. Asegúrese de describir lo que hace cada sección de la consulta, incluida la forma en que se extrae el año, cómo se calcula la media gradual, la lógica detrás de la relación de rendimiento y el significado de cada instrucción CASE. Los comentarios deben facilitar a alguien que no esté familiarizado con el archivo para comprender la lógica y la intención de toda la consulta".
Validar la integridad de los datos
Use Copilot para ayudar a escribir consultas SQL que validen la integridad de los datos o comprueben si hay condiciones específicas en la base de datos. Por ejemplo, podría pedir a GitHub Copilot que realice uno de los cuatro tipos de comprobaciones de integridad:
- Unicidad o comprobaciones duplicadas
- Integridad referencial (infracciones de clave externa)
- Integridad del dominio (valores dentro de los intervalos esperados)
- Comprobaciones de reglas de negocio (infracciones lógicas personalizadas)
Una consulta de ejemplo podría ser:
"Escriba una consulta SQL que compruebe si hay claves externas huérfanas entre las tablas Orders y Customers".
Documentación del esquema de base de datos
Puede pedir a GitHub Copilot que le ayude a escribir consultas que exploren o documente el esquema de la base de datos. Al proporcionar a GitHub Copilot el contexto de la base de datos con la que trabaja, podrá determinar si el código que interactúa con esa base de datos se puede optimizar. Aunque GitHub Copilot no analiza profundamente los planes de ejecución de las consultas, pero comprender el contexto de la base de datos SQL con la que interactúa, puede proporcionar mejores consejos.
Generación de pruebas de SQL
Puede solicitar que GitHub Copilot genere pruebas o aserciones basadas en SQL para comprobar los resultados de la consulta o el estado de la base de datos. Copilot puede sugerir marcos de pruebas adecuados en función del tipo de proyecto. Para configurar el entorno de pruebas, escriba el comando /setupTests en el campo de entrada de chat y siga las instrucciones de GitHub Copilot para configurar el proyecto.
GitHub Copilot puede ayudarle a escribir pruebas para el código de la aplicación mediante la generación de código de prueba que cubre el código base. Esto incluye pruebas unitarias, pruebas de un extremo a otro y pruebas para casos perimetrales.
Depuración de errores de SQL
Puede pedir a GitHub Copilot que ayude a depurar errores de SQL o sugerir correcciones para problemas comunes. Por ejemplo, puede seleccionar un archivo o bloque de código y pedir a GitHub Copilot que busque y corrija los errores de sintaxis.
Al hacer que GitHub Copilot le proporcione un esquema de tabla completo e índices, puede hacer que GitHub Copilot genere consultas representativas en las tablas y sugerir cualquier índice adicional, lo que podría mejorar el rendimiento.
Creación del símbolo del sistema de Copilot en GitHub
Puede usar GitHub Copilot para generar mensajes para crear código que funcione mejor que el código existente. Al interactuar con GitHub Copilot, proporcione tantos detalles en la pregunta como sea posible para aumentar la posibilidad de que la respuesta proporcionada cumpla sus requisitos. Para realizar esta acción:
- Comprender el código. Esta comprensión se puede derivar de la interacción existente con GitHub Copilot.
- Seleccione el código original y abra GitHub Copilot Chat.
- Proporcione tantos detalles como sea posible. Por ejemplo, puede proporcionar el chat de GitHub Copilot con el siguiente símbolo del sistema:
Dados los siguientes requisitos:la base de datos es SQLite y contiene tablas relevantes para las clasificaciones de películas (vea la estructura en complex.sql).La consulta debe agregar y devolver de forma eficaz las películas mejor calificadas por región, minimizando el tiempo de ejecución y evitando operaciones innecesarias (como CAST redundantes, JOIN innecesarios o SELECT DISTINCT si no es necesario).El resultado debe incluir título de película, clasificación media, región y cualquier otro campo relevante.La consulta debe completarse en menos de 1,5 segundos en un conjunto de datos grande. Toda la lógica de negocios y la corrección deben conservarse como en el complex.sql original.Escriba una consulta SQL de alto rendimiento que cumpla estos requisitos y explique las optimizaciones que aplique.