如何评价deepseek-V3 VS OpenAI o1 自然语言处理成Sql的能力

news2025/1/11 18:26:44

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年,运行上面的查询语句后,结果可能是:

ProductNameSalesAmountSalesDate
产品A1200000.002023-01-15
产品C1500000.002023-03-10
  • 只有产品A和产品C满足条件(销售额超过100万且是今年的销售记录)。

总结

  1. 创建数据库:CREATE DATABASE SalesDB;
  2. 使用数据库:USE SalesDB;
  3. 创建表:CREATE TABLE Products (...);
  4. 插入数据:INSERT INTO Products (...);
  5. 查询数据:SELECT ... FROM Products WHERE ...;

通过以上步骤,你可以轻松创建一个数据库,并查询出今年销售额超过100万的产品。希望这个教程对你有帮助!如果有任何问题,欢迎随时提问! 😊

OpenAI o1 的回答:

当然!下面我将以一个简单易懂的方式,带你从零开始创建一个数据库,建立相关表格和字段,并最终编写SQL查询语句来显示所有今年销售额超过100万的产品。即使你是完全的数据库新手,也能跟随这个步骤逐步完成。

1. 安装和设置数据库管理系统(DBMS)

首先,你需要一个数据库管理系统(DBMS)来创建和管理你的数据库。常见的DBMS有:

  • MySQL
  • PostgreSQL
  • SQLite
  • Microsoft SQL Server

本教程将以MySQL为例,其他DBMS的操作类似。

1.1 下载和安装MySQL
  1. 访问 MySQL官方网站 下载适合你操作系统的安装包。
  2. 按照安装向导完成安装过程。
  3. 安装完成后,打开MySQL Workbench(图形化界面工具)或使用命令行工具进行操作。

2. 创建数据库

数据库是用来存储和管理数据的容器。在这个例子中,我们将创建一个名为SalesDB的数据库。

2.1 使用命令行创建数据库
CREATE DATABASE SalesDB;
2.2 使用MySQL Workbench创建数据库
  1. 打开MySQL Workbench并连接到你的MySQL服务器。
  2. 在左侧的“Navigator”面板中,右键点击“Schemas”。
  3. 选择“Create Schema…”。
  4. 输入数据库名称SalesDB,然后点击“Apply”完成创建。

3. 使用数据库

在创建好数据库后,你需要告诉MySQL你将要使用哪个数据库。

USE SalesDB;

4. 创建表格和字段

为了记录产品和销售数据,我们需要至少两个表:

  1. Products:存储产品信息。
  2. 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:连接ProductsSales表,通过ProductID关联。
  • WHERE YEAR(s.SaleDate) = 2025:筛选销售日期在2025年的记录。
  • GROUP BY p.ProductID, p.ProductName:按产品分组,汇总每个产品的销售额。
  • HAVING SUM(s.TotalAmount) > 1000000:筛选出销售总额超过100万的产品。

7. 执行查询并查看结果

在MySQL Workbench或命令行工具中运行上述查询,你将得到所有今年(2025年)销售额超过100万的产品列表。

示例输出:

ProductIDProductNameTotalSales
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;

总结

通过以上步骤,你已经成功:

  1. 创建了一个名为SalesDB的数据库
  2. 建立了两个表格Products(产品信息)和Sales(销售记录)。
  3. 插入了示例数据到这两个表中。
  4. 编写并执行了一个SQL查询,以显示今年销售额超过100万的产品。

进一步学习建议

  • 学习SQL基础语法:了解更多SQL语句,如UPDATEDELETEALTER等。
  • 了解数据库设计原则:学习如何设计高效、规范的数据库结构。
  • 实践更多查询:尝试编写不同类型的查询,如多表连接、子查询、窗口函数等。
  • 使用图形化工具:如MySQL Workbench,可以帮助你更直观地管理和查询数据库。

希望这个指南对你有所帮助,祝你在学习SQL和数据库管理的旅程中取得成功!

End:

o1还是全面一点,全面数据资料丰富的o1,但是永远支持开源,为DeepSeek👏鼓掌👏👏,希望有业余时间的小伙伴也可以参与DeepSeek编码,让开源变得更好!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2275040.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ASP.NET Core 实现微服务 - Consul 配置中心

这一次我们继续介绍微服务相关组件配置中心的使用方法。本来打算介绍下携程开源的重型配置中心框架 apollo 但是体系实在是太过于庞大,还是让我爱不起来。因为前面我们已经介绍了使用Consul 做为服务注册发现的组件 ,那么干脆继续使用 Consul 来作为配置…

tdengine数据库使用java连接

1 首先给你的项目添加依赖 <dependency> <groupId>com.taosdata.jdbc</groupId> <artifactId>taos-jdbcdriver</artifactId> <version>3.4.0</version> <!-- 表示依赖不会传递 --> </dependency> 注意&am…

深入学习RabbitMQ的Direct Exchange(直连交换机)

RabbitMQ作为一种高性能的消息中间件&#xff0c;在分布式系统中扮演着重要角色。它提供了多种消息传递模式&#xff0c;其中Direct Exchange&#xff08;直连交换机&#xff09;是最基础且常用的一种。本文将深入介绍Direct Exchange的原理、应用场景、配置方法以及实践案例&a…

51单片机——串口通信(重点)

1、通信 通信的方式可以分为多种&#xff0c;按照数据传送方式可分为串行通信和并行通信&#xff1b; 按照通信的数据同步方式&#xff0c;可分为异步通信和同步通信&#xff1b; 按照数据的传输方向又可分为单工、半双工和全双工通信 1.1 通信速率 衡量通信性能的一个非常…

本地手集博客id“升级”在线抓取——简陋版——(2024年终总结1.1)

我之前每每发布笔记都用csv纯文本记录&#xff0c;一个机缘巧得文章列表api实现在线整理自已的文章阅读量数据。 (笔记模板由python脚本于2025年01月10日 18:48:25创建&#xff0c;本篇笔记适合喜欢钻牛角尖的coder翻阅) 【学习的细节是欢悦的历程】 Python官网&#xff1a;htt…

高等数学学习笔记 ☞ 洛必达法则与泰勒公式

1. 洛必达法则 1. 型与型未定式&#xff08;洛必达法则&#xff09; &#xff08;1&#xff09;型&#xff1a;若函数同时满足以下条件&#xff1a; &#xff08;2&#xff09;型&#xff1a;若函数同时满足以下条件&#xff1a; ①&#xff1a;当时&…

Qt官方下载地址

1. 最新版本 Qt官方最新版本下载地址&#xff1a;https://www.qt.io/download-qt-installer 当前最新版本Qt6.8.* 如下图&#xff1a; 2. 历史版本 如果你要下载历史版本安装工具或者源码编译方式安装&#xff0c;请转至此链接进行下载&#xff1a;https://download.qt.i…

怎么用NodeJS脚本对接TTS播报音响

怎么用NodeJS脚本对接TTS播报音响呢&#xff1f; 本文描述了使用NodeJS脚本调用HTTP接口&#xff0c;对接TTS播报音响&#xff0c;。 可选用产品&#xff1a;可根据实际场景需求&#xff0c;选择对应的规格 序号设备名称厂商1智能语音音柱|10W统软物联2智能语音壁挂音箱|款式…

计算机存储之图解机械硬盘

问&#xff1a;机械硬盘是如何工作的&#xff1f; 答&#xff1a;请看VCR 一、机械硬盘物理结构 1.1、盘片(platter) 视频中银白色的圆盘称为盘片&#xff0c;二进制数据就是存储在盘片上&#xff0c;盘片解剖后如下图所示&#xff1a; 一圈一圈的同心圆称为磁道&#xff08;…

HTML前端从零开始

第一天 HTML部分 什么是HTML HTML&#xff08;Hypertext Markup Language&#xff09;超文本标记语言。HTML是万维网的基石。 超&#xff1a; 超字第一层意义是指最重要的标签&#xff0c;超链接标签 超越文本的意思 HTML的发展历程 HTML1990年出现&#xff0c;web之父…

moviepy 将mp4视频文件提取音频mp3 - python 实现

DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加中。 需要更多数据资源和技术解决方案&#xff0c;知识星球&#xff1a; “DataBall - X 数据球(free)” -------------------------------------------------------------…

【Leetcode-移动零】利用将非零元素移动至数组前解决移动零问题(剪枝优化)

题目描述 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例1 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例2 输入: nums [0] 输出…

浅析大语言模型安全和隐私保护国内外标准和政策

过去两年&#xff0c;大模型技术已经普及并逐步渗透到各行各业&#xff0c;2025年注定是大模型应用井喷式发展的一年&#xff0c;AI在快速发展的同时&#xff0c;其带来的安全风险也逐渐凸显。人工智能系统的安全性和隐私保护已经成为社会关注的重点。 附下载&#xff1a;600多…

第21篇 基于ARM A9处理器用汇编语言实现中断<三>

Q&#xff1a;怎样编写ARM A9处理器汇编语言代码配置按键端口产生中断&#xff1f; A&#xff1a;使用Intel Monitor Program创建中断程序时&#xff0c;Linker Section Presets下拉菜单中需选择Exceptions。主程序在.vectors代码段为ARM处理器设置异常向量表&#xff0c;在…

直流无刷电机控制(FOC):电流模式

目录 概述 1 系统框架结构 1.1 硬件模块介绍 1.2 硬件实物图 1.3 引脚接口定义 2 代码实现 2.1 软件架构 2.2 电流检测函数 3 电流环功能实现 3.1 代码实现 3.2 测试代码实现 4 测试 概述 本文主要介绍基于DengFOC的库函数&#xff0c;实现直流无刷电机控制&#x…

(四)结合代码初步理解帧缓存(Frame Buffer)概念

帧缓存&#xff08;Framebuffer&#xff09;是图形渲染管线中的一个非常重要的概念&#xff0c;它用于存储渲染过程中产生的像素数据&#xff0c;并最终输出到显示器上。简单来说&#xff0c;帧缓存就是计算机图形中的“临时画布”&#xff0c;它储存渲染操作生成的图像数据&am…

Linux离线部署ELK

文章目录 前期准备开始安装安装elastic search安装logstash安装kibana 配置ELK配置ElasticSearch配置logstash配置kibana 启动ELK启动命令启动测试 设置ELK策略创建ILM策略将ILM策略与日志index关联查看索引是否被ILM策略管理 前期准备 ELK包含三部分软件 ElasticSearch用作搜…

LabVIEW数据库管理系统

LabVIEW数据库管理系统&#xff08;DBMS&#xff09;是一种集成了数据库技术与数据采集、控制系统的解决方案。通过LabVIEW的强大图形化编程环境&#xff0c;结合数据库的高效数据存储与管理能力&#xff0c;开发人员可以实现高效的数据交互、存储、查询、更新和报告生成。LabV…

微服务实现高并发 秒杀系统,前后端实现

一、前端实现 前端项目初始化 首先&#xff0c;我们需要创建一个新的 Vue 3 项目。你可以使用 Vue CLI 来快速搭建项目。 安装 Vue CLI&#xff08;如果尚未安装&#xff09; bash npm install -g vue/cli 创建 Vue 项目 bash vue create seckill-frontend cd seckill-f…

Http请求响应——请求

Http概述 Http协议&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;&#xff0c;是一种用于传输网页数据的协议&#xff0c;规定了浏览器和服务器之间进行数据传输的规则&#xff0c;简单说来就是客户端与服务器端数据交互的数据格式。 客户端…