在本快速入门中,你将了解查询生成助手如何帮助你使用原始 SQL 或首选 ORM 创建高效、准确和安全查询。 它专为代码优先和数据优先开发人员设计,可更快地生成与连接的数据库架构一致的生产就绪逻辑。
开始吧
确保已连接到数据库,并使用 MSSQL 扩展打开活动编辑器窗口。 通过此连接, @mssql
聊天参与者可以了解数据库环境的上下文,从而提供准确的上下文感知建议。 如果没有数据库连接,聊天参与者将没有架构或数据上下文来提供有意义的响应。
以下示例使用 AdventureWorksLT2022
示例数据库,可以从 Microsoft SQL Server 示例和社区项目 主页下载该数据库。
为了获得最佳结果,请调整表和架构名称以匹配自己的环境。
确保聊天包含 @mssql
前缀。 例如,键入 @mssql
后跟问题或提示。 这可确保聊天参与者了解你请求与 SQL 相关的帮助。
查询生成
GitHub Copilot 直接在 Visual Studio Code 中支持智能查询构造。 从基本SELECT 到复杂的联接、筛选器和聚合,它生成遵循最佳做法并反映当前架构的 SQL 或 ORM 查询,以便你可以专注于应用程序逻辑。
下面是通过聊天参与者可以询问的常见用例和示例:
基于时间的分析
这些提示有助于分析随时间推移的趋势,例如最近的销售活动、按周期排名最高的表现者,或与历史平均值的比较。 GitHub Copilot 可以生成查询来计算相对于数据最近日期的值,从而避免基于当前系统日期的假设。
- 生成一个嵌套查询,用于从
SalesLT.SalesOrderHeader
中获取过去六个月的总订单量高于平均订单量(相对于数据库中最近的订单日期)(而不是相对于当前日期)。 - 编写查询以查找表
SalesLT.SalesOrderHeader
中按总销售额排序的前三名客户,并按年份分组。 - 查找在过去 30 天内下订单的每个客户
SalesLT.Customer
的总收入,相对于最近的订单日期SalesLT.SalesOrderHeader
(而不是当前日期)。 - 创建一个
Sequelize
查询来提取Customers
(SalesLT.Customers
)及其订单(SalesLT.SalesOrderDetail
)和总收入,按数据库中去年的降序收入排序(而不是相对于当前日期)。
复杂关系
使用这些提示生成跨多个相关表的查询。 无论你是在将客户数据与订单详细信息合并,还是在生成收入聚合,GitHub Copilot 都能够利用架构上下文来导航复杂的关系,从而生成准确的合并和条件。
使用表的实际架构
SalesLT.SalesOrderHeader
,生成一个嵌套 SQL 查询,该查询检索订单总数高于过去六个月的平均订单总数。 应根据表中最近的订单日期(而不是当前日期)计算六个月的周期。使用当前数据库,创建一个
SQLAlchemy
查询来提取客户及其订单和总收入,按降序收入排序。使用
Prisma
生成连接SalesLT.Customer
、SalesLT.SalesOrderHeader
和SalesLT.SalesOrderDetail
的查询,并计算每个客户的总收入。在
Entity Framework
中,编写一个LINQ
查询,该查询使用SalesLT
架构按过去一年的销售额返回前 10 个客户。编写一个
TypeORM
查询,该查询查找在过去六个月中尚未销售的产品。 应根据表中最近的订单日期(而不是当前日期)计算六个月的周期。编写一个
Django ORM
查询,用于检索去年购买的所有客户,按总支出排序。 相对于表中最近的订单日期(而不是当前日期),需计算“去年”的时间段。
业务见解
这些提示旨在从数据中呈现可作的见解。 从识别流失风险客户到查找未售出的产品,GitHub Copilot 可以帮助构建逻辑,这些逻辑支持根据连接的数据库定制的战略决策和报告。
使用当前数据库生成一个列表,该列表显示客户在过去六个月中的第一个订单,并将数据库中最近的订单日期用作参考点。
使用当前数据库生成一个列表,该列表使用数据库中的最新订单日期作为参考,标识过去 12 个月内尚未销售的产品。
使用数据库中最近的订单日期作为参考,确定在过去 90 天内已下达五个以上的订单但未下单的客户。
根据订单返回或取消,列出返回率最高的前五个产品,相对于最近的订单日期计算。
生成基于
OrderDate
在SalesLT.SalesOrderHeader
的过去 12 个月的每月收入趋势,并以最新的订单日期为锚点。使用 SQLAlchemy 和 Pandas,根据最近的订单日期,创建一个报告,用于识别过去三个季度订单频率下降的客户。
反馈:智能查询生成器
为了帮助我们优化和改进 MSSQL 扩展的 GitHub Copilot,请使用以下 GitHub 问题模板提交反馈: GitHub Copilot 反馈
提交反馈时,请考虑包括:
测试方案 – 告诉我们你关注哪些领域,例如架构创建、查询生成、安全性、本地化。
效果良好 - 描述任何感觉流畅、有用或超出预期的体验。
问题或漏洞 – 包括任何问题、不一致或令人困惑的行为。 屏幕截图或屏幕录制特别有用。
改进建议 - 分享改进可用性、扩大覆盖范围或增强 GitHub Copilot 响应的想法。