前言
在项目开发中,数据库设计是早期的核心工作之一。我们需要考虑业务表结构、关联关系及索引优化,并预想未来核心需求。对于刚入门数据库的学习者而言,熟练掌握 SQL 可能具有一定难度。然而在 AIGC 时代,我们拥有了全新的编程范式。NLP 和大模型作为编程助理,让我们可以快速介入复杂的数据库业务。
我们只需要设计好相应的 Prompt,LLM 就能理解需求并生成 SQL,供我们执行。目前 GitHub 上已有不少 TextToSQL 的 AIGC 项目,值得参考。对于初学者来说,AIGC 是提升学习力的好工具,在学习每一项编程技能时,都可以思考如何利用 AIGC 优化学习路线或工作思路。
AIGC 新的数据库查询范式
上图展示了 AIGC 重构传统数据库查询业务的流程图。数据库查询业务的开始端回归文本表达,这得益于 LLM 的自然语言处理能力。随着大模型能力的提升和 Agent 的产品力增强,未来与数据库交互甚至管理,可能会由非技术人员完成,极大降低了门槛。
流程如下:
- LLM 理解 Question 的数据需求。
- 生成 SQL 语句。
- 通过 LangChain 等开发的 SQL Agent 交给数据库执行。
- 执行结果再由 LLM 进行处理(如输出格式)。
- 用户得到最终结果。
这就是现在非常流行的 Agent 概念,这里是 SQL Agent,重构了原来比较专业、复杂的数据库流程。
SQL Agent
AI 应用的开发,本质上是将之前的业务转成 AI Agent 来实现。使用 SQL Agent,用户既不需要知道数据库的结构,也不需要会写 SQL。我们只需要与 SQL Agent 对话,就可以得到所需的结果。
创建数据表
假设我们要做一个干货店的项目。选用 SQLite,因为它是轻量级的磁盘文件数据库,没有复杂的服务器部署,非常适合初创项目使用。虽然 SQLite 是轻量级的,但它支持大部分 SQL 特性,如事务、触发器和视图等。因此,它非常适合需要保存数据但不需要大型数据库系统的移动应用或 Web 应用。
Python 内置了 sqlite3 模块,可以直接使用。
# 导入 sqlite3 库,python 内置
import sqlite3
# 连接到数据库
conn = sqlite3.connect('DryGood.db')
cursor = conn.cursor()
# 执行 SQL 命令来创建 DryGoods 表
cursor.execute('''
CREATE TABLE DryGoods (
ID INTEGER PRIMARY KEY,
Name TEXT NOT NULL,
Type TEXT NOT NULL,
Source TEXT NOT NULL,
PurchasePrice REAL,
SalePrice REAL
);
''')
# 插入初始化数据
dry_goods = [
('海带', 'DryFood', '辽宁', 5.2, 8.9),
('香菇', 'DryFood', '广东', 26.5, 33.2),
('木耳', 'DryFood', '山东', 34.6, 44.2)
]
for item dry_goods:
cursor.execute(, item)
conn.commit()
conn.close()


