如何使用 ChatGPT 创建自动化 SQL 语句?
作为一名设计师,您可能已经使用过自然语言处理 (NLP) 及其改变我们与技术交互方式的潜力。 OpenAI 使用的文本到 SQL 工具是从自然语言文本生成 SQL 语句的强大方法。在这篇博文中,我们将介绍七个富有创意且不寻常的示例,展示如何使用 ChatGPT 创建 SQL 语句。
1。修改现有查询语句
下面的示例展示了如何在 Text-to-SQL 中给出现有的复杂 SQL 查询并对其进行修改:从现有 SQL 查询中删除自定义答案
简述:
附加的 SQL 查询并删除 2021 年第一季度发生的所有结果。
SELECT Product_name, SUM(size) AS Total_quantity_sold FROM sales WHERE date INTO '2021-01-01' AND '2021-12-31' GROUP BY Product_name ORDER BY Total_quantity_sold DESC;"
对应翻译(对应的期望也可以翻译成中文):
请修改以下SQL语句,删除第一季度的2021年数据,恢复其他季度的数据
SELECT Product_name, SUM(quantity) AS Total_quantity_sold FROM sales WHERE date the '2021-01-01' AND '2021-12-31' GROUP BY Product_name ORDER BY Total_quantity_sold › statements DESC;” 在此示例中,我们提供了一个现有的 SQL 查询,用于检索 2021 年全年每个结果的总销售额。WHERE 子句。
2。不仅是英语!还提供中文版本
您可以使用任何语言的自然语言输入创建 SQL 查询。以下是使用中文
鼓励话语的示例:
显示过去一个月每个产品类别的销量,以及类别名称和上次销售日期。
生成 SQL 语句:
SELECT categories.category_name, COUNT(*) AS sales_count, MAX(orders.order_date) AS last_sale_date
FROM categories
JOIN products ON categories.category_id = products.category_id
JOIN order_details ON products.product_id = order_details.product_id
JOIN orders ON order_details.order_id = orders.order_id
WHERE orders.order_date BETWEEN DATEADD(MONTH, -1, GETDATE()) AND GETDATE()
GROUP BY categories.category_name
此示例演示了 Text-to-SQL 的功能,能够从任何语言的自然语言输入生成 SQL 查询。即使文本提示是用中文编写的,它仍然可以理解 Text-to-SQL 并将查询转换为有效的 SQL 语句。此查询捕获过去一个月每个产品类别的销售数量,以及类别名称和最后一次销售的日期。该查询连接类别、产品、item_order 和订单表,并使用聚合函数计算每个类别的销售数量和最后销售日期。结果经过筛选,仅包含上个月的订单,并按类别名称分组。
3。向现有 SQL 查询添加过滤器
简短说明
获取附加的 SQL 查询并添加过滤器以显示居住在加利福尼亚州的按总支出排名前 10 位的客户。
“SELECT customer_name, SUM(order_total) AS Total_spent FROM 命令 GROUP BY customer_name ORDER BY Total_spent DESC;”
对应翻译(对应的期望也可以翻译成中文):
请添加额外的 SQL 查询过滤条件,显示居住在加州的前 10 名客户并且总支出最高。
“SELECT customer_name, SUM(total_spent) AS total_spent FROM GROUP BY customer_name ORDER BY total_spent DESC;”
输出 SQL 语句:
SELECT customer_name, SUM(order_total)
AS total_spent FROM orders JOIN customers
ON orders.customer_id = customers.customer_id
WHERE state = 'California'
GROUP BY customer_name
ORDER BY total_spent DESC LIMIT 10;
此示例为每个单独的客户提供现有的 SQL 查询。 。使用 Text-to-SQL,我们可以修改 SQL 语句以添加筛选器,以仅显示居住在加利福尼亚州的前 10 位客户。通过访问订单和客户表并添加过滤器以按州进行过滤,我们只能获取居住在加利福尼亚州的客户,并将结果限制为总支出前 10 名。?提供了数据库模式,并且需要 Text-to-SQL 编写 SQL 语句来检索总金额超过 1,000 的所有订单的客户名称、订单日期、产品名称和数量。订单和产品名称包含这些单词。 “椅子。”使用数据库架构,Text-to-SQL 可以定义客户、订单和订单详细信息表之间的关系,并编写 SQL 语句来连接这些表并检索所需的数据。
5。根据日期数过滤数据
快词
Show me all orders between January 1, 2022 and March 1, 2022.
对应的翻译(对应的期望也可以翻译成中文):
显示term-period从2022年1月1日到3月1日, 2022 年之间的所有订单。
生成的 SQL 语句:
SELECT * FROM orders WHERE order_date BETWEEN '2022-01-01' AND '2022-03-01';
此示例演示如何使用 Text-to-SQL 创建按指定日期过滤数据的 SQL 语句。在此示例中,SQL 语句检索 2022 年 1 月 1 日至 2022 年 3 月 1 日期间下的所有订单。Orders 表包含有关每个订单的信息,包括订单日期、客户名称和产品信息。
6。不只是SELECT - 还可以Update
快字
Update the price of all products in the electronics category by 10%.
的对应翻译(使用中文也可以返回对应的期望):
使用SQL更新产品类别电子产品是电子产品的价格,以及将价格提高 10%。
生成 SQL 语句:
UPDATE products SET price = price * 1.1 WHERE category = 'electronics';
此示例演示如何使用文本转 SQL 创建更新表中数据的 SQL 语句。在此示例中,SQL 语句更新了电子产品类别中所有产品的价格,并将价格百分比增加了 10%。通过在WHERE子句中指定排序,我们可以只选择需要更新的结果。
创建 SQL 查询来检索自定义报告的数据,该报告显示上一季度每个产品类别的总收入,以及订单数量和平均订单价值。
对应的翻译(对应的期望也可以翻译成中文):
创建一条SQL查询语句,检索上一条每个产品类别的总收入、订单数和订单价值。该季度。对于特定报告,数据应按总收入降序排列。
生成 SQL 语句:
SELECT categories.category_name,
SUM(order_details.quantity * order_details.price) AS total_revenue,
COUNT(DISTINCT orders.order_id) AS num_orders,
AVG(orders.order_total) AS avg_order_value
FROM categories
JOIN products ON categories.category_id = products.category_id
JOIN order_details ON products.product_id = order_details.product_id
JOIN orders ON order_details.order_id = orders.order_id
WHERE orders.order_date BETWEEN DATEADD(QUARTER, -1, GETDATE()) AND GETDATE()
GROUP BY categories.category_name
ORDER BY total_revenue DESC;
在此示例中,我们要求 Text-to-SQL 创建 SQL 查询来检索自定义报告的数据,该报告最终显示该季度每个产品类别的总销售额。订单和平均订单价值。此查询连接类别、产品、订单详细信息和订单表,并使用聚合函数计算每个类别的总收入、订单数和平均订单价值。结果经过筛选,仅包含上一季度的订单,并按总收入降序排列。此查询可用于创建自定义报告,帮助公司按产品类别跟踪其销售情况。
8。用它来进行代码评审——了解复杂问题的功能
提示的对应翻译
Explain in natural language what this SQL query does:
SELECT department_name, AVG(salary) AS avg_salary, COUNT(*) AS num_employees
FROM employees
JOIN departments ON employees.department_id = departments.department_id
GROUP BY department_name
HAVING AVG(salary) > 50000 AND COUNT(*) > 10
ORDER BY avg_salary DESC;
(对应的期望也可以用中文重复):
请使用通俗易懂的语言解释以下SQL查询的作用:
SELECT department_name, AVG(salary) AS avg_salary, COUNT(*) AS num_employees
FROM employees
JOIN departments ON employees.department_id = departments.department_id
GROUP BY department_name
HAVING AVG(salary) > 50000 AND COUNT(*) > 10
ORDER BY avg_salary DESC;
执行后的响应
此SQL查询检索员工和部门表中的员工工资和部门名称。它使用 JOIN 子句连接两个表,将相应的员工分配到他们的部门。使用GROUP BY子句按部门分组,计算每个部门的平均工资和员工人数。使用HAVING子句过滤掉平均薪资低于5万、员工数少于10人的部门,最后使用ORDER BY子句对结果按照平均薪资降序排序,更容易找到薪资最高的部门。这个问题可以帮助管理层了解每个部门的平均工资和规模,以便做出更好的管理决策。
Ends
Text-to-SQL 是一个强大的工具,不仅可以将自然语言文本转换为 SQL 语句,还可以修改现有的 SQL 查询。
这就是我们今天要分享的内容。感谢您的阅读。我希望这可以帮助你。创建文章并不容易。如果你喜欢我的文章,别忘了点赞和分享,让有需要的人看到。最后别忘了关注“前端专家”。您的支持将是我分享的最大理由。后续我会继续发布更多内容,敬请期待。
原文:
https://www.eversql.com/7-unusual-uses-of-chat-gpt-for-text-to-sql-and-sql-queries/
作者:奥德·瓦林
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。