快速入门:使用智能查询生成器(预览版)

在本快速入门中,你将了解查询生成助手如何帮助你使用原始 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 查询来提取 CustomersSalesLT.Customers)及其订单(SalesLT.SalesOrderDetail)和总收入,按数据库中去年的降序收入排序(而不是相对于当前日期)。

复杂关系

使用这些提示生成跨多个相关表的查询。 无论你是在将客户数据与订单详细信息合并,还是在生成收入聚合,GitHub Copilot 都能够利用架构上下文来导航复杂的关系,从而生成准确的合并和条件。

  • 使用表的实际架构 SalesLT.SalesOrderHeader ,生成一个嵌套 SQL 查询,该查询检索订单总数高于过去六个月的平均订单总数。 应根据表中最近的订单日期(而不是当前日期)计算六个月的周期。

  • 使用当前数据库,创建一个 SQLAlchemy 查询来提取客户及其订单和总收入,按降序收入排序。

  • 使用 Prisma 生成连接 SalesLT.CustomerSalesLT.SalesOrderHeaderSalesLT.SalesOrderDetail 的查询,并计算每个客户的总收入。

  • Entity Framework中,编写一个 LINQ 查询,该查询使用 SalesLT 架构按过去一年的销售额返回前 10 个客户。

  • 编写一个 TypeORM 查询,该查询查找在过去六个月中尚未销售的产品。 应根据表中最近的订单日期(而不是当前日期)计算六个月的周期。

  • 编写一个 Django ORM 查询,用于检索去年购买的所有客户,按总支出排序。 相对于表中最近的订单日期(而不是当前日期),需计算“去年”的时间段。

业务见解

这些提示旨在从数据中呈现可作的见解。 从识别流失风险客户到查找未售出的产品,GitHub Copilot 可以帮助构建逻辑,这些逻辑支持根据连接的数据库定制的战略决策和报告。

  • 使用当前数据库生成一个列表,该列表显示客户在过去六个月中的第一个订单,并将数据库中最近的订单日期用作参考点。

  • 使用当前数据库生成一个列表,该列表使用数据库中的最新订单日期作为参考,标识过去 12 个月内尚未销售的产品。

  • 使用数据库中最近的订单日期作为参考,确定在过去 90 天内已下达五个以上的订单但未下单的客户。

  • 根据订单返回或取消,列出返回率最高的前五个产品,相对于最近的订单日期计算。

  • 生成基于OrderDateSalesLT.SalesOrderHeader的过去 12 个月的每月收入趋势,并以最新的订单日期为锚点。

  • 使用 SQLAlchemy 和 Pandas,根据最近的订单日期,创建一个报告,用于识别过去三个季度订单频率下降的客户。

反馈:智能查询生成器

为了帮助我们优化和改进 MSSQL 扩展的 GitHub Copilot,请使用以下 GitHub 问题模板提交反馈: GitHub Copilot 反馈

提交反馈时,请考虑包括:

  • 测试方案 – 告诉我们你关注哪些领域,例如架构创建、查询生成、安全性、本地化。

  • 效果良好 - 描述任何感觉流畅、有用或超出预期的体验。

  • 问题或漏洞 – 包括任何问题、不一致或令人困惑的行为。 屏幕截图或屏幕录制特别有用。

  • 改进建议 - 分享改进可用性、扩大覆盖范围或增强 GitHub Copilot 响应的想法。