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

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编码,让开源变得更好!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【UI自动化测试】selenium八种定位方式

🏡个人主页:謬熙,欢迎各位大佬到访❤️❤️❤️~ 👲个人简介:本人编程小白,正在学习互联网求职知识…… 如果您觉得本文对您有帮助的话,记得点赞👍、收藏⭐️、评论💬&am…

百度视频搜索架构演进

导读 随着信息技术的迅猛发展,搜索引擎作为人们获取信息的主要途径,其背后的技术架构也在不断演进。本文详细阐述了近年来视频搜索排序框架的重大变革,特别是在大模型技术需求驱动下,如何从传统的多阶段级联框架逐步演变为更加高…

sequelize-cli 多对多关系处理 及某一单项游戏根据成绩降序排名

一、生成模型 Game(游戏表)GameGrades(游戏成绩表)GameUser(用户表) 1.1 对非中间表 做多对多逻辑处理 Game模型 static associate(models) {// define association heremodels.GameUser.belongsToMany(models.Game, {through: models.GameGrade,fore…

调整Python+Pytest+Allure+Yaml+Pymysql框架中需要执行的用例顺序

当pytest框架中有时时候会因为用例的前后关联关系需要调整用例执行顺序时则可以跟进具体的要求调整pytest.ini配置文件中执行用例文件夹的前后顺序 当如果是需要调整某个文件夹中用例的执行顺序时,则跟进具体的文件调整对应testcases中test_*.py文件中的执行顺序

[云原生之旅] K8s-Portforward的另类用法, 立省两个端口

前言 此方法适用于Pod不需要大量连接的情况: 有多个pod在执行任务, 偶尔需要连接其中一个pod查看进度/日志;对pod执行一个脚本/命令; 不适用于大量连接建立的情况: pod启的数据库服务;pod启的Api服务;pod启的前端服务;pod启的Oss服务; Portforward简介 Portforward就是端…

Transformer 中缩放点积注意力机制探讨:除以根号 dk 理由及其影响

Transformer 中缩放点积注意力机制的探讨 1. 引言 自2017年Transformer模型被提出以来,它迅速成为自然语言处理(NLP)领域的主流架构,并在各种任务中取得了卓越的表现。其核心组件之一是注意力机制,尤其是缩放点积注意…

Qt监控系统远程网络登录/请求设备列表/服务器查看实时流/回放视频/验证码请求

一、前言说明 这几个功能是近期定制的功能,也非常具有代表性,核心就是之前登录和设备信息都是在本地,存放在数据库中,数据库可以是本地或者远程的,现在需要改成通过网络API请求的方式,现在很多的服务器很强…

IDEA配置maven和git并如何使用maven打包和git推送到gitlab

首先找到设置 在里面输入maven然后找到点击 然后点击右边两个选项 路径选择下载的maven目录下的settings文件和新建的repository文件夹 点击apply应用 然后在搜索框里搜git点击进去 此路径为git的exe执行文件所在目录,选好之后点击test测试下方出现git版本号表…

迎接2025Power BI日期表创建指南:模板与最佳实践

故事背景 最近,我们收到了一些关于时间表更新的询问。询问的朋友发现,随着2025年的到来,2024年的日期表已不再适用。这是一个在数据分析领域常见的问题,每年都需要对日期表进行更新。 解决方案 鉴于创建和更新日期表是一项年度…

案例研究:UML用例图中的结账系统

在软件工程和系统分析中,统一建模语言(UML)用例图是一种强有力的工具,用于描述系统与其用户之间的交互。本文将通过一个具体的案例研究,详细解释UML用例图的关键概念,并说明其在设计结账系统中的应用。 用…

国产3D CAD将逐步取代国外软件

在工业软件的关键领域,计算机辅助设计(CAD)软件对于制造业的重要性不言而喻。近年来,国产 CAD 的发展态势迅猛,展现出巨大的潜力与机遇,正逐步改变着 CAD 市场长期由国外软件主导的格局。 国产CAD发展现状 …

Oopsie【hack the box】

Oopsie 解题流程 文件上传 首先开启机器后,我们先使用 nmap -sC -SV来扫描一下IP地址: -sC:使用 Nmap 的默认脚本扫描(通常是 NSE 脚本,Nmap Scripting Engine)。这个选项会自动执行一系列常见的脚本&am…

金山WPS Android面试题及参考答案

说说你所知道的所有集合?并阐述其内部实现。 在 Android 开发(Java 语言基础上)中有多种集合。 首先是 List 集合,主要包括 ArrayList 和 LinkedList。 ArrayList 是基于数组实现的动态数组。它的内部有一个数组来存储元素&#x…

快速导入请求到postman

1.确定请求,右键复制为cURL(bash) 2.postman菜单栏Import-Raw text,粘贴复制的内容保存,请求添加成功

Mybatis原理简介

看到Mybatis的框架图,可以清晰的看到Mybatis的整体核心对象,我更喜欢用自己的图来表达Mybatis的整个的执行流程。如下图所示: 原理详解: MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根…

【redis初阶】初识Redis

目录 一、初识Redis 二、盛赞 Redis 三、Redis 特性 3.1 速度快 ​编辑3.2 基于键值对的数据结构服务器 3.3 丰富的功能 3.4 简单稳定 🐶 3.6 持久化(Persistence) 3.7 主从复制(Replication) 3.8 高可用(H…

【云商城】高性能门户网构建

第3章 高性能门户网构建 网站门户就是首页 1.OpenResty 百万并发站点架构 ​ 1).OpenResty 特性介绍 ​ 2).搭建OpenResty ​ 3).Web站点动静分离方案剖析 2.Lua语法学习 ​ 1).Lua基本语法 3.多级缓存架构实战 ​ 1).多级缓存架构分析 用户请求网站,最开始…

【GESP】C++三级考试大纲知识点梳理, (1)二进制数据编码

GESP C三级官方考试大纲中,共有8条考点,本文针对C(1)号知识点进行总结梳理。 (1)了解二进制数据编码:原码、反码、补码。 全文详见:https://www.coderli.com/gesp-3-exam-syllabus-data-encodin…

B+树的原理及实现

文章目录 B树的原理及实现一、引言二、B树的特性1、结构特点2、节点类型3、阶数 三、B树的Java实现1、节点实现2、B树操作2.1、搜索2.2、插入2.3、删除2.4、遍历 3、B树的Java实现示例 四、总结 B树的原理及实现 一、引言 B树是一种基于B树的树形数据结构,它在数据…

毕业项目推荐:基于yolov8/yolov5/yolo11的动物检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示:功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出(xls格式)功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…