使用 GitHub Copilot 生成、优化和排查 SQL 查询问题
GitHub Copilot 可与 Visual Studio Code 中的 PostgreSQL 扩展配合使用来执行常见的数据库开发任务。 通过处理实际方案,开发人员使用 Copilot Chat 生成 SQL 查询并进行更改架构,然后使用 PostgreSQL 查询编辑器查看和执行结果。
考虑玛吉的旅行方案。 应用程序在 PostgreSQL 中存储属性列表和客户评论。 开发人员使用 Copilot Chat 加快编写 SQL 查询和修改表等任务,同时控制执行的内容。
使用 Copilot Chat 生成 SQL 查询
开发人员通常首先要求 Copilot 帮助编写 SQL 查询。 打开与此数据库的聊天后,他们通过使用 @pgsql 参与者将请求定向到 PostgreSQL 上下文。
例如,开发人员可能会输入以下提示:
@pgsql I need help writing a SQL query to list recent reviews for each property, including the rating and review date
Copilot 使用建议的 SQL 查询进行响应,该查询反映连接的数据库中的表和列。 开发人员会评审生成的 SQL,并在 PostgreSQL 查询编辑器中运行它以验证结果。
此方法可帮助开发人员快速从要求迁移到工作查询,同时在执行前仍查看 SQL。
确认后修改表格
除了查询数据之外,Copilot Chat 还可以帮助进行架构更改。 当提示涉及修改数据库对象时,Copilot 在进行任何更改之前请求显式确认。
例如,Margie Travel 的开发人员可能会输入:
@pgsql convert the listings table to store amenities in a JSONB column
Copilot 使用描述架构更改并请求权限继续的 SQL 语句进行响应。 查看 SQL 后,开发人员确认执行:
@pgsql Yes, please make the JSONB column for me
@pgsql Yes, I confirm
只有在确认后,Copilot 才应用更改。 此工作流可确保对架构的修改是经过刻意计划的,并对其进行评审。
使用 Copilot Chat 解决查询问题
当 SQL 查询生成错误或意外结果时,Copilot Chat 还可以提供帮助。 开发人员直接在聊天中描述问题,并查看建议的指南。
例如,开发人员可能会输入:
@pgsql I'm getting this error: 'ERROR: column orders.total_price must appear in the GROUP BY clause or be used in an aggregate function.'
Copilot 提供指导,并建议进行 SQL 调整。 开发人员审阅建议,更新编辑器中的 SQL 查询,然后重新运行它以确认问题已解决。
查看和验证结果
Copilot 在 Copilot 聊天窗口中生成 SQL 查询和说明。 开发人员在聊天中查看生成的 SQL,然后再运行它。
使用 PostgreSQL 扩展执行 SQL 后,开发人员在 Visual Studio Code 中查看结果,以确认查询的行为是否按预期方式运行。
在 Margie's Travel 中,开发人员使用此审核步骤来验证 Copilot 生成的 SQL 查询是否返回预期数据。
使用 Copilot Chat 进行优化和应用场景分析
Copilot Chat 还可用于帮助处理更高级的方案,例如优化查询、提高性能或支持应用程序开发。 开发人员描述他们尝试解决的问题,Copilot 使用可查看和调整的指南或示例 SQL 做出响应。
Copilot 会响应对 SQL 查询的建议更改,例如调整联接、筛选器或查询结构。 开发人员在 Copilot 聊天窗口中审阅响应,应用相关更改,然后使用 PostgreSQL 扩展运行更新的查询。
例如,在 Margie’s Travel,开发人员可能会向 Copilot Chat 寻求帮助,以改进一个检索房产列表及其客户评论的查询。 开发人员可以描述在按审阅日期和评分进行筛选时查询速度缓慢,或者需要支持显示每个列表的最新评论的应用程序功能。 开发人员还可以要求 copilot 建议索引策略以提高查询性能。 或者请求可能更为复杂,例如,要求 copilot 创建一个连接到数据库的 python 函数,并检索带有评论的列表。 Copilot 能提供的帮助潜力无限!
你学到的知识
你了解了如何在 Visual Studio Code 中使用 PostgreSQL 扩展应用 GitHub Copilot。 你了解了 Copilot Chat 如何用于生成 SQL 查询、使用确认修改数据库架构以及解决查询问题,然后在 PostgreSQL 查询编辑器中查看和执行结果。