SQL 魔法师
将日常语言转换为 SQL 查询。
将此提示复制到我们的开发者 控制台 中,自己尝试一下!
内容 | |
---|---|
System | 将以下自然语言请求转换为有效的 SQL 查询。假设存在具有以下表和列的数据库: Customers: – customer_id (INT, PRIMARY KEY) – first_name (VARCHAR) – last_name (VARCHAR) – email (VARCHAR) – phone (VARCHAR) – address (VARCHAR) – city (VARCHAR) – state (VARCHAR) – zip_code (VARCHAR) Products: – product_id (INT, PRIMARY KEY) – product_name (VARCHAR) – description (TEXT) – category (VARCHAR) – price (DECIMAL) – stock_quantity (INT) Orders: – order_id (INT, PRIMARY KEY) – customer_id (INT, FOREIGN KEY REFERENCES Customers) – order_date (DATE) – total_amount (DECIMAL) – status (VARCHAR) Order_Items: – order_item_id (INT, PRIMARY KEY) – order_id (INT, FOREIGN KEY REFERENCES Orders) – product_id (INT, FOREIGN KEY REFERENCES Products) – quantity (INT) – price (DECIMAL) Reviews: – review_id (INT, PRIMARY KEY) – product_id (INT, FOREIGN KEY REFERENCES Products) – customer_id (INT, FOREIGN KEY REFERENCES Customers) – rating (INT) – comment (TEXT) – review_date (DATE) Employees: – employee_id (INT, PRIMARY KEY) – first_name (VARCHAR) – last_name (VARCHAR) – email (VARCHAR) – phone (VARCHAR) – hire_date (DATE) – job_title (VARCHAR) – department (VARCHAR) – salary (DECIMAL) 根据自然语言请求提供可以检索数据的 SQL 查询。 |
User | 获取已下订单但未提供任何评论的客户列表,以及他们在订单上花费的总金额。 |
示例输出
SELECT c.first_name, c.last_name, SUM(o.total_amount) AS total_spent
FROM Customers c
INNER JOIN Orders o ON c.customer_id = o.customer_id
LEFT JOIN Reviews r ON c.customer_id = r.customer_id
WHERE r.review_id IS NULL
GROUP BY c.customer_id, c.first_name, c.last_name;
API 请求
import anthropic
client = anthropic.Anthropic(
# 默认为 os.environ.get("ANTHROPIC_API_KEY")
api_key="my_api_key",
)
message = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1000,
temperature=0,
system="将以下自然语言请求转换为有效的 SQL 查询。假设存在具有以下表和列的数据库:\n \nCustomers: \n- customer_id (INT, PRIMARY KEY) \n- first_name (VARCHAR) \n- last_name (VARCHAR) \n- email (VARCHAR) \n- phone (VARCHAR) \n- address (VARCHAR) \n- city (VARCHAR) \n- state (VARCHAR) \n- zip_code (VARCHAR) \n \nProducts: \n- product_id (INT, PRIMARY KEY) \n- product_name (VARCHAR) \n- description (TEXT) \n- category (VARCHAR) \n- price (DECIMAL) \n- stock_quantity (INT) \n \nOrders: \n- order_id (INT, PRIMARY KEY) \n- customer_id (INT, FOREIGN KEY REFERENCES Customers) \n- order_date (DATE) \n- total_amount (DECIMAL) \n- status (VARCHAR) \n \nOrder_Items: \n- order_item_id (INT, PRIMARY KEY) \n- order_id (INT, FOREIGN KEY REFERENCES Orders) \n- product_id (INT, FOREIGN KEY REFERENCES Products) \n- quantity (INT) \n- price (DECIMAL) \n \nReviews: \n- review_id (INT, PRIMARY KEY) \n- product_id (INT, FOREIGN KEY REFERENCES Products) \n- customer_id (INT, FOREIGN KEY REFERENCES Customers) \n- rating (INT) \n- comment (TEXT) \n- review_date (DATE) \n \nEmployees: \n- employee_id (INT, PRIMARY KEY) \n- first_name (VARCHAR) \n- last_name (VARCHAR) \n- email (VARCHAR) \n- phone (VARCHAR) \n- hire_date (DATE) \n- job_title (VARCHAR) \n- department (VARCHAR) \n- salary (DECIMAL) \n \n根据自然语言请求提供可以检索数据的 SQL 查询。",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "获取已下订单但未提供任何评论的客户列表,以及他们在订单上花费的总金额。"
}
]
}
]
)
print(message.content)