如何评价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,也学…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...