mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 01:06:59 +08:00
fix: remove sqlite datasource
This commit is contained in:
@@ -1,81 +0,0 @@
|
||||
template:
|
||||
quot_rule: |
|
||||
<rule>
|
||||
必须对数据库名、表名、字段名、别名外层加双引号(")。
|
||||
<note>
|
||||
1. 点号(.)不能包含在引号内,必须写成 "table"
|
||||
2. 即使标识符不含特殊字符或非关键字,也需强制加双引号
|
||||
</note>
|
||||
</rule>
|
||||
|
||||
limit_rule: |
|
||||
<rule>
|
||||
当需要限制行数时,必须使用标准的LIMIT语法
|
||||
</rule>
|
||||
|
||||
other_rule: |
|
||||
<rule>必须为每个表生成别名(不加AS)</rule>
|
||||
{multi_table_condition}
|
||||
<rule>禁止使用星号(*),必须明确字段名</rule>
|
||||
<rule>中文/特殊字符字段需保留原名并添加英文别名</rule>
|
||||
<rule>函数字段必须加别名</rule>
|
||||
<rule>百分比字段保留两位小数并以%结尾</rule>
|
||||
<rule>避免与数据库关键字冲突</rule>
|
||||
|
||||
basic_example: |
|
||||
<basic-examples>
|
||||
<intro>
|
||||
📌 以下示例严格遵循<Rules>中的 SQLite 规范,展示符合要求的 SQL 写法与典型错误案例。
|
||||
⚠️ 注意:示例中的表名、字段名均为演示虚构,实际使用时需替换为用户提供的真实标识符。
|
||||
🔍 重点观察:
|
||||
1. 双引号包裹所有数据库对象的规范用法
|
||||
2. 中英别名/百分比/函数等特殊字段的处理
|
||||
3. 关键字冲突的规避方式
|
||||
</intro>
|
||||
<example>
|
||||
<input>查询 ORDERS 表的前100条订单(含中文字段和百分比)</input>
|
||||
<output-bad>
|
||||
SELECT * FROM ORDERS LIMIT 100 -- 错误:未加引号、使用星号
|
||||
SELECT "订单ID", "金额" FROM "ORDERS" "t1" LIMIT 100 -- 错误:缺少英文别名
|
||||
SELECT COUNT("订单ID") FROM "ORDERS" "t1" -- 错误:函数未加别名
|
||||
</output-bad>
|
||||
<output-good>
|
||||
SELECT
|
||||
"t1"."订单ID" AS "order_id",
|
||||
"t1"."金额" AS "amount",
|
||||
COUNT("t1"."订单ID") AS "total_orders",
|
||||
ROUND("t1"."折扣率" * 100, 2) || '%' AS "discount_percent"
|
||||
FROM "ORDERS" "t1"
|
||||
LIMIT 100
|
||||
</output-good>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<input>统计用户表 USERS(含关键字字段user)的活跃占比</input>
|
||||
<output-bad>
|
||||
SELECT user, status FROM USERS -- 错误:未处理关键字和引号
|
||||
SELECT "user", ROUND(active_ratio) FROM "USERS" -- 错误:百分比格式错误
|
||||
</output-bad>
|
||||
<output-good>
|
||||
SELECT
|
||||
"u"."user" AS "username",
|
||||
ROUND("u"."active_ratio" * 100, 2) || '%' AS "active_percent"
|
||||
FROM "USERS" "u"
|
||||
WHERE "u"."status" = 1
|
||||
</output-good>
|
||||
</example>
|
||||
</basic-examples>
|
||||
|
||||
example_engine: SQLite 3.x
|
||||
example_answer_1: |
|
||||
{"success":true,"sql":"SELECT \"country_name\", \"continent_name\", \"year\", \"gdp\" FROM \"sample_country_gdp\" ORDER BY \"country_name\", \"year\"","tables":["sample_country_gdp"],"chart-type":"line"}
|
||||
example_answer_1_with_limit: |
|
||||
{"success":true,"sql":"SELECT \"country_name\", \"continent_name\", \"year\", \"gdp\" FROM \"sample_country_gdp\" ORDER BY \"country_name\", \"year\" LIMIT 1000","tables":["sample_country_gdp"],"chart-type":"line"}
|
||||
example_answer_2: |
|
||||
{"success":true,"sql":"SELECT \"country_name\", \"gdp\" FROM \"sample_country_gdp\" WHERE \"year\" = '2024' ORDER BY \"gdp\" DESC","tables":["sample_country_gdp"],"chart-type":"pie"}
|
||||
example_answer_2_with_limit: |
|
||||
{"success":true,"sql":"SELECT \"country_name\", \"gdp\" FROM \"sample_country_gdp\" WHERE \"year\" = '2024' ORDER BY \"gdp\" DESC LIMIT 1000","tables":["sample_country_gdp"],"chart-type":"pie"}
|
||||
example_answer_3: |
|
||||
{"success":true,"sql":"SELECT \"country_name\", \"gdp\" FROM \"sample_country_gdp\" WHERE \"year\" = '2025' AND \"country_name\" = '中国'","tables":["sample_country_gdp"],"chart-type":"table"}
|
||||
example_answer_3_with_limit: |
|
||||
{"success":true,"sql":"SELECT \"country_name\", \"gdp\" FROM \"sample_country_gdp\" WHERE \"year\" = '2025' AND \"country_name\" = '中国' LIMIT 1000","tables":["sample_country_gdp"],"chart-type":"table"}
|
||||
Reference in New Issue
Block a user