如何评价deepseek-V3 VS OpenAI o1 自然语言处理成Sql的能力
DeepSeek-V3 介绍
在目前大模型主流榜单中,DeepSeek-V3 在开源模型中位列榜首,与世界上最先进的闭源模型不分伯仲。
准备工作:
笔者只演示实例o1 VS DeepSeek-V3两个模型,大家可以自行验证结果或者实验更多场景,同时也会简单说一下笔者使用感受!
1、openAI o1模型
PS: o1模型是由ChatGPT Plus/Pro 提供,童鞋可以参考教程:
https://littlemagic8.github.io/2024/12/08/how-to-update-ChatGPTPro-plus/
2、注册DeepSeek账号 官网:https://www.deepseek.com/
为严谨,如下图所示


实际应用案例对比
为了更直观地了解 DeepSeek-V3 和 OpenAI o1 的实际表现,我们通过编程任务进行了对比测试。
***测试任务:*将自然语言查询转换为SQL语句: 显示所有今年销售额超过100万的产品 从新建数据库,新建表,新建字段开始,让萌新小白都能看懂的
DeepSeek-V3 的回答:

好的!下面我将从零开始,一步一步教你如何创建一个数据库、表、字段,并编写SQL语句来查询“今年销售额超过100万的产品”。即使是小白也能轻松看懂!
1. 创建数据库
首先,我们需要创建一个数据库来存储数据。数据库就像一个大仓库,里面可以放很多表格。
CREATE DATABASE SalesDB;
CREATE DATABASE是SQL语句,用于创建数据库。SalesDB是数据库的名字,你可以根据需要改成其他名字。
2. 使用数据库
创建好数据库后,我们需要告诉SQL,接下来要在这个数据库里操作。
USE SalesDB;
USE是SQL语句,用于选择要操作的数据库。
3. 创建表
接下来,我们需要创建一个表来存储产品信息。表就像Excel表格,每一行是一条记录,每一列是一个字段。
CREATE TABLE Products (ProductID INT AUTO_INCREMENT PRIMARY KEY, -- 产品ID,唯一标识ProductName VARCHAR(100) NOT NULL, -- 产品名称SalesAmount DECIMAL(15, 2) NOT NULL, -- 销售额SalesDate DATE NOT NULL -- 销售日期
);
CREATE TABLE是SQL语句,用于创建表。Products是表的名字。ProductID是产品的唯一标识,AUTO_INCREMENT表示自动递增,PRIMARY KEY表示主键(唯一且不能重复)。ProductName是产品名称,VARCHAR(100)表示最多存储100个字符。SalesAmount是销售额,DECIMAL(15, 2)表示最多15位数字,其中2位小数。SalesDate是销售日期,DATE表示日期类型。
4. 插入示例数据
为了测试查询,我们需要往表里插入一些数据。
INSERT INTO Products (ProductName, SalesAmount, SalesDate)
VALUES('产品A', 1200000.00, '2023-01-15'),('产品B', 800000.00, '2023-02-20'),('产品C', 1500000.00, '2023-03-10'),('产品D', 900000.00, '2022-12-05');
INSERT INTO是SQL语句,用于插入数据。- 这里插入了4条记录,分别是产品A、B、C、D的销售信息。
5. 查询今年销售额超过100万的产品
现在,我们需要编写SQL语句来查询“今年销售额超过100万的产品”。
SELECT ProductName, SalesAmount, SalesDate
FROM Products
WHERE SalesAmount > 1000000 AND YEAR(SalesDate) = YEAR(CURDATE());
SELECT是SQL语句,用于查询数据。ProductName, SalesAmount, SalesDate是要显示的字段。FROM Products表示从Products表中查询。WHERE是条件语句:SalesAmount > 1000000表示销售额超过100万。YEAR(SalesDate) = YEAR(CURDATE())表示销售日期是今年的(CURDATE()获取当前日期,YEAR()提取年份)。
6. 运行结果
假设当前年份是2023年,运行上面的查询语句后,结果可能是:
| ProductName | SalesAmount | SalesDate |
|---|---|---|
| 产品A | 1200000.00 | 2023-01-15 |
| 产品C | 1500000.00 | 2023-03-10 |
- 只有产品A和产品C满足条件(销售额超过100万且是今年的销售记录)。
总结
- 创建数据库:
CREATE DATABASE SalesDB; - 使用数据库:
USE SalesDB; - 创建表:
CREATE TABLE Products (...); - 插入数据:
INSERT INTO Products (...); - 查询数据:
SELECT ... FROM Products WHERE ...;
通过以上步骤,你可以轻松创建一个数据库,并查询出今年销售额超过100万的产品。希望这个教程对你有帮助!如果有任何问题,欢迎随时提问! 😊
OpenAI o1 的回答:

当然!下面我将以一个简单易懂的方式,带你从零开始创建一个数据库,建立相关表格和字段,并最终编写SQL查询语句来显示所有今年销售额超过100万的产品。即使你是完全的数据库新手,也能跟随这个步骤逐步完成。
1. 安装和设置数据库管理系统(DBMS)
首先,你需要一个数据库管理系统(DBMS)来创建和管理你的数据库。常见的DBMS有:
- MySQL
- PostgreSQL
- SQLite
- Microsoft SQL Server
本教程将以MySQL为例,其他DBMS的操作类似。
1.1 下载和安装MySQL
- 访问 MySQL官方网站 下载适合你操作系统的安装包。
- 按照安装向导完成安装过程。
- 安装完成后,打开MySQL Workbench(图形化界面工具)或使用命令行工具进行操作。
2. 创建数据库
数据库是用来存储和管理数据的容器。在这个例子中,我们将创建一个名为SalesDB的数据库。
2.1 使用命令行创建数据库
CREATE DATABASE SalesDB;
2.2 使用MySQL Workbench创建数据库
- 打开MySQL Workbench并连接到你的MySQL服务器。
- 在左侧的“Navigator”面板中,右键点击“Schemas”。
- 选择“Create Schema…”。
- 输入数据库名称
SalesDB,然后点击“Apply”完成创建。
3. 使用数据库
在创建好数据库后,你需要告诉MySQL你将要使用哪个数据库。
USE SalesDB;
4. 创建表格和字段
为了记录产品和销售数据,我们需要至少两个表:
- Products:存储产品信息。
- Sales:存储销售记录。
4.1 创建Products表
CREATE TABLE Products (ProductID INT AUTO_INCREMENT PRIMARY KEY, -- 产品ID,自增主键ProductName VARCHAR(100) NOT NULL, -- 产品名称Category VARCHAR(50), -- 产品类别Price DECIMAL(10,2) -- 产品价格
);
解释:
ProductID:每个产品的唯一标识,自动递增。ProductName:产品的名称,不能为空。Category:产品所属的类别。Price:产品的价格,支持两位小数。
4.2 创建Sales表
CREATE TABLE Sales (SaleID INT AUTO_INCREMENT PRIMARY KEY, -- 销售记录ID,自增主键ProductID INT, -- 产品ID,外键关联Products表SaleDate DATE, -- 销售日期Quantity INT, -- 销售数量TotalAmount DECIMAL(10,2), -- 销售总额FOREIGN KEY (ProductID) REFERENCES Products(ProductID) -- 外键约束
);
解释:
SaleID:每条销售记录的唯一标识,自动递增。ProductID:关联到Products表的产品ID。SaleDate:销售发生的日期。Quantity:销售的数量。TotalAmount:销售的总金额。
5. 插入示例数据
为了演示查询,我们需要向表中插入一些示例数据。
5.1 插入Products表数据
INSERT INTO Products (ProductName, Category, Price) VALUES
('智能手机', '电子产品', 5000.00),
('笔记本电脑', '电子产品', 8000.00),
('电动自行车', '交通工具', 15000.00),
('咖啡机', '家电', 1200.00),
('无线耳机', '电子产品', 800.00);
5.2 插入Sales表数据
INSERT INTO Sales (ProductID, SaleDate, Quantity, TotalAmount) VALUES
(1, '2025-01-05', 50, 250000.00),
(2, '2025-02-10', 30, 240000.00),
(3, '2025-03-15', 10, 150000.00),
(4, '2025-04-20', 100, 120000.00),
(5, '2025-05-25', 200, 160000.00),
(1, '2024-12-15', 40, 200000.00),
(2, '2024-11-20', 25, 200000.00);
注意: 这里假设当前年份是2025年,插入了一些2025年和2024年的销售记录。
6. 编写SQL查询语句
现在,我们要编写一个SQL查询,来显示所有今年销售额超过100万的产品。
6.1 确定“今年”
假设当前年份是2025年,我们需要筛选SaleDate在2025年的销售记录。
6.2 汇总销售额
我们需要按产品汇总今年的销售总额,并筛选出超过100万的产品。
6.3 完整的SQL查询
SELECT p.ProductID,p.ProductName,SUM(s.TotalAmount) AS TotalSales
FROM Products p
JOIN Sales s ON p.ProductID = s.ProductID
WHERE YEAR(s.SaleDate) = 2025
GROUP BY p.ProductID, p.ProductName
HAVING SUM(s.TotalAmount) > 1000000;
解释:
- SELECT:选择要显示的列,包括产品ID、产品名称和销售总额。
- FROM Products p JOIN Sales s ON p.ProductID = s.ProductID:连接
Products和Sales表,通过ProductID关联。 - WHERE YEAR(s.SaleDate) = 2025:筛选销售日期在2025年的记录。
- GROUP BY p.ProductID, p.ProductName:按产品分组,汇总每个产品的销售额。
- HAVING SUM(s.TotalAmount) > 1000000:筛选出销售总额超过100万的产品。
7. 执行查询并查看结果
在MySQL Workbench或命令行工具中运行上述查询,你将得到所有今年(2025年)销售额超过100万的产品列表。
示例输出:
| ProductID | ProductName | TotalSales |
|---|---|---|
| 1 | 智能手机 | 250000.00 |
| 2 | 笔记本电脑 | 240000.00 |
| 3 | 电动自行车 | 150000.00 |
| 4 | 咖啡机 | 120000.00 |
| 5 | 无线耳机 | 160000.00 |
注意: 根据插入的数据,上述示例中没有任何产品的销售额超过100万,因此实际结果可能为空。为了达到超过100万的条件,你可以增加更多的销售记录或调整TotalAmount的值。
8. 完整的SQL脚本
以下是从创建数据库到执行查询的完整SQL脚本,供你参考和练习:
-- 1. 创建数据库
CREATE DATABASE SalesDB;-- 2. 使用数据库
USE SalesDB;-- 3. 创建Products表
CREATE TABLE Products (ProductID INT AUTO_INCREMENT PRIMARY KEY,ProductName VARCHAR(100) NOT NULL,Category VARCHAR(50),Price DECIMAL(10,2)
);-- 4. 创建Sales表
CREATE TABLE Sales (SaleID INT AUTO_INCREMENT PRIMARY KEY,ProductID INT,SaleDate DATE,Quantity INT,TotalAmount DECIMAL(10,2),FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);-- 5. 插入Products表数据
INSERT INTO Products (ProductName, Category, Price) VALUES
('智能手机', '电子产品', 5000.00),
('笔记本电脑', '电子产品', 8000.00),
('电动自行车', '交通工具', 15000.00),
('咖啡机', '家电', 1200.00),
('无线耳机', '电子产品', 800.00);-- 6. 插入Sales表数据
INSERT INTO Sales (ProductID, SaleDate, Quantity, TotalAmount) VALUES
(1, '2025-01-05', 50, 250000.00),
(2, '2025-02-10', 30, 240000.00),
(3, '2025-03-15', 10, 150000.00),
(4, '2025-04-20', 100, 120000.00),
(5, '2025-05-25', 200, 160000.00),
(1, '2024-12-15', 40, 200000.00),
(2, '2024-11-20', 25, 200000.00);-- 7. 查询今年销售额超过100万的产品
SELECT p.ProductID,p.ProductName,SUM(s.TotalAmount) AS TotalSales
FROM Products p
JOIN Sales s ON p.ProductID = s.ProductID
WHERE YEAR(s.SaleDate) = 2025
GROUP BY p.ProductID, p.ProductName
HAVING SUM(s.TotalAmount) > 1000000;
总结
通过以上步骤,你已经成功:
- 创建了一个名为
SalesDB的数据库。 - 建立了两个表格:
Products(产品信息)和Sales(销售记录)。 - 插入了示例数据到这两个表中。
- 编写并执行了一个SQL查询,以显示今年销售额超过100万的产品。
进一步学习建议
- 学习SQL基础语法:了解更多SQL语句,如
UPDATE、DELETE、ALTER等。 - 了解数据库设计原则:学习如何设计高效、规范的数据库结构。
- 实践更多查询:尝试编写不同类型的查询,如多表连接、子查询、窗口函数等。
- 使用图形化工具:如MySQL Workbench,可以帮助你更直观地管理和查询数据库。
希望这个指南对你有所帮助,祝你在学习SQL和数据库管理的旅程中取得成功!
End:
o1还是全面一点,全面数据资料丰富的o1,但是永远支持开源,为DeepSeek👏鼓掌👏👏,希望有业余时间的小伙伴也可以参与DeepSeek编码,让开源变得更好!!
相关文章:
如何评价deepseek-V3 VS OpenAI o1 自然语言处理成Sql的能力
DeepSeek-V3 介绍 在目前大模型主流榜单中,DeepSeek-V3 在开源模型中位列榜首,与世界上最先进的闭源模型不分伯仲。 准备工作: 笔者只演示实例o1 VS DeepSeek-V3两个模型,大家可以自行验证结果或者实验更多场景,同时…...
SQL左连接的两种不同情况示例和外连接示例
Oracle;有2个表如下; 执行下图选中的左连接; 左表10条记录,右表3条记录,结果是10条记录; 执行下图的左连接, 老师表为左表,学生表为右表,结果会显示每个老师,…...
【渗透测试术语总结】
Top 渗透测试常用专业术语 相信大家和我一样,搞不清这些专业名词的区别,所以我来整理一下。 1. POC、EXP、Payload与Shellcode POC:全称 Proof of Concept ,中文 概念验证 ,常指一段漏洞证明的代码。 EXP…...
Unity2D初级背包设计后篇 拓展举例与不足分析
Unity2D初级背包设计中篇 MVC分层撰写(万字详解)-CSDN博客、 如果你已经搞懂了中篇,那么对这个背包的拓展将极为简单,我就在这里举个例子吧 目录 1.添加物品描述信息 2.拓展思路与不足分析 1.没有删除只有丢弃功能,所以可以添加垃圾桶 2.格…...
Kafka优势剖析-幂等性和事务
目录 1. 幂等性(Idempotence) 1.1 什么是幂等性? 1.2 幂等性的实现 1.2.1 生产者 ID 和序列号 1.2.2 重复消息检测 1.2.3 幂等性的优势 1.3 幂等性的配置 2. 事务支持(Transactions) 2.1 什么是事务支持&…...
MyBatis深入了解
目录 xml 映射文件中,除了常见的select、insert、update、delete 标签之外,还有哪些标签? Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,方法能重载吗? MyBatis 是如何进行分页的?分页插件的原理是什么? 简述 …...
语音技术与人工智能:智能语音交互的多场景应用探索
引言 近年来,智能语音技术取得了飞速发展,逐渐渗透到日常生活和各行各业中。从语音助手到智能家居控制,再到企业客服和教育辅导,语音交互正以前所未有的速度改变着人机沟通的方式。这一变革背后,人工智能技术无疑是关键…...
Openwrt @ rk3568平台 固件编译实践(二)- ledeWRT版本
目录 ledeWRT介绍固件编译下载代码修改feed源更新并安装编译第三方软件包制作用于eMMC烧写的rootfs基于lede发行版验证烧写rk3568.img, LEDE wrt启动成功refhttps://blog.csdn.net/zc21463071/article/details/106751361介绍rk3568平台下, lede 大神版 openwrt固件的下载、编译…...
Windows下调试Dify相关组件(1)--前端Web
1. 什么是Dify? 官方介绍:Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。 这是个组件式框架,即使是非技…...
对话|企业如何构建更完善的容器供应链安全防护体系
对话|企业如何构建更完善的容器供应链安全防护体系 云布道师 随着云计算和 DevOps 的兴起,容器技术和自动化成为软件开发中的必要手段,软件供应链也进入了自动化及 CI/CD 阶段。然而,容器技术和自动化虽然提升了软件的更新速度&…...
HTML5 缩放动画(Zoom In/Out)详解
HTML5 缩放动画(Zoom In/Out)详解 缩放动画是一种常见的视觉效果,用于使网页元素逐渐放大或缩小,从而吸引用户的注意力。下面将介绍如何使用 CSS 和 JavaScript 实现这种动画效果。 1. 使用 CSS 实现缩放动画 可以通过 CSS 的 …...
C语言——文件IO 【文件IO和标准IO区别,操作文件IO】open,write,read,dup2,access,stat
1.思维导图 2.练习 1:使用C语言编写一个简易的界面,界面如下 1:标准输出流 2:标准错误流 3:文件流 要求:按1的时候,通过printf输出数据,按2的时候,通过p…...
【C++习题】22.随机链表的复制
文章目录 题目:138. 随机链表的复制 - 力扣(LeetCode)代码: 题目:138. 随机链表的复制 - 力扣(LeetCode) 链接🔗:138. 随机链表的复制 - 力扣(LeetCode&…...
备考蓝桥杯:数据结构概念浅谈
目录 1数据结构的概念 什么是数据结构: 为什么要有数据结构 2.数据结构的三个组成要素 1.逻辑结构 2.存储结构 3.数据运算 3。算法好坏的度量(时间复杂度和空间复杂度) 时间复杂度计算 最优和平均和最差时间复杂度 计算时间复杂度例子 空间复…...
【TI毫米波雷达】DCA1000不使用mmWave Studio的数据采集方法,以及自动化实时数据采集
【TI毫米波雷达】DCA1000不使用mmWave Studio的数据采集方法,以及自动化实时数据采集 mmWave Studio提供的功能完全够用了 不用去纠结用DCA1000低延迟、无GUI传数据 速度最快又保证算力无非就是就是Linux板自己写驱动做串口和UDP 做雷达产品应用也不会采用DCA1000的…...
创建型模式3.建造者模式
创建型模式 工厂方法模式(Factory Method Pattern)抽象工厂模式(Abstract Factory Pattern)建造者模式(Builder Pattern)原型模式(Prototype Pattern)单例模式(Singleto…...
【集成学习】Boosting算法详解
文章目录 1. 集成学习概述2. Boosting算法详解3. Gradient Boosting算法详解3.1 基本思想3.2 公式推导 4. Python实现 1. 集成学习概述 集成学习(Ensemble Learning)是一种通过结合多个模型的预测结果来提高整体预测性能的技术。相比于单个模型…...
【Orca】Orca - Graphlet 和 Orbit 计数算法
Orca(ORbit Counting Algorithm)是一种用于对网络中的小图进行计数的有效算法。它计算网络中每个节点的节点和边缘轨道(4 节点和 5 节点小图)。 orca是一个用于图形网络分析的工具,主要用于计算图中的 graphlets&#…...
58. Three.js案例-创建一个带有红蓝配置的半球光源的场景
58. Three.js案例-创建一个带有红蓝配置的半球光源的场景 实现效果 本案例展示了如何使用Three.js创建一个带有红蓝配置的半球光源的场景,并在其中添加一个旋转的球体。通过设置不同的光照参数,可以观察到球体表面材质的变化。 知识点 WebGLRenderer …...
【Git原理和使用】Git 分支管理(创建、切换、合并、删除、bug分支)
一、理解分支 我们可以把分支理解为一个分身,这个分身是与我们的主身是相互独立的,比如我们的主身在这个月学C,而分身在这个月学java,在一个月以后我们让分身与主身融合,这样主身在一个月内既学会了C,也学…...
Vivado里AXI总线到底要不要用SmartConnect?一个工程实例帮你彻底搞懂
Vivado中AXI总线SmartConnect的实战抉择:从工程现象到本质解析 在FPGA开发中,AXI总线的灵活性和复杂性常常让初学者陷入两难——特别是当Vivado工具给出多种连接选项时。SmartConnect这个看似简单的IP核,到底该不该用?为什么有些…...
3分钟完成智能图像分层:Layerdivider一键PSD生成终极指南
3分钟完成智能图像分层:Layerdivider一键PSD生成终极指南 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 你是否曾面对一张精美的插画&#x…...
LVGL按钮(lv_btn)与开关(lv_switch)事件处理全解析:从点击检测到实现‘智能家居面板’
LVGL按钮与开关事件处理实战:构建智能家居控制面板 在嵌入式设备的人机交互界面开发中,LVGL作为轻量级图形库已经成为许多开发者的首选。特别是当我们需要为智能家居系统设计控制面板时,如何高效地处理按钮(lv_btn)和开关(lv_switch)的交互事…...
手把手教你用Google Cloud语音API为Android App加个“耳朵”和“嘴巴”(附免费额度避坑指南)
实战指南:在Android应用中集成Google Cloud语音技术 想象一下,你的Android应用能够听懂用户说话,还能用自然流畅的语音回应——这不再是科幻电影里的场景。借助Google Cloud的语音API,即使是独立开发者也能快速为应用添加专业的语…...
别再被‘模糊’搞晕了!用Python模拟SAR距离模糊与方位模糊的直观对比(附代码)
用Python实战解析SAR成像中的距离模糊与方位模糊现象 当你第一次看到SAR图像上那些神秘的条纹和重影时,是否好奇这些"视觉噪音"从何而来?作为雷达成像领域的经典问题,距离模糊和方位模糊直接影响着图像质量。今天,我们不…...
DH1766电源短路测试避坑指南:为什么你的保险丝熔断时间和想象的不一样?
DH1766电源短路测试中的保险丝熔断现象深度解析 在电子工程实验室中,可编程电源的短路测试是验证电路保护器件性能的常规操作。然而,当使用DH1766这类高精度电源进行测试时,许多工程师都会遇到一个令人困惑的现象:保险丝的实际熔断…...
别再混淆了!一张图看懂SAP特殊采购类40、70、80的核心区别与适用场景
深度解析SAP特殊采购类40/70/80:业务逻辑与实战选型指南 引言 在SAP供应链管理的复杂生态中,特殊采购类(Special Procurement Type)是连接多工厂协同的神经中枢。当企业面临跨工厂物料调配、集中采购或分布式生产等场景时…...
Swift底层多线程:POSIX线程封装与安全并发实践
1. 项目概述:当Swift遇见POSIX线程如果你在Swift里用过DispatchQueue或者Thread,有没有想过它们背后到底是怎么运作的?特别是当你的应用需要处理高并发、低延迟的任务,或者需要在Linux服务器上跑一个Swift后端服务时,仅…...
保姆级教程:STM32CubeMX配置ADC扫描模式,并封装一个灵活的Get_Adc()函数
STM32CubeMX实战:构建可动态配置的ADC多通道扫描系统 在嵌入式开发中,ADC(模数转换器)的灵活配置一直是硬件工程师面临的常见挑战。许多开发者在使用STM32CubeMX配置多通道ADC时,往往止步于基础扫描模式的应用…...
【Java+AI】Java正在悄然“杀死“Python的AI霸权——虚拟线程与GraalVM如何重写企业级AI推理规则
——尘一不染 为什么说Java才是企业AI的未来?一场迟到的技术平反 副标题:当你还在用Python调参时,成熟的企业已经在用Java构建生产级AI推理引擎了 开篇:那些年,我们对Java的误解有多 每次技术大会,只要…...
