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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

9.4 visualStudio 2022 配置 cuda 和 torch (c++)

一、配置torch 1.Libtorch下载 该内容看了【Libtorch 一】libtorchwin10环境配置_vsixtorch-CSDN博客的博客,作为笔记用。我自己搭建后可以正常运行。 下载地址为windows系统下各种LibTorch下载地址_libtorch 百度云-CSDN博客 下载解压后的目录为: 2.vs…

Mysql--基础篇--多表查询(JOIN,笛卡尔积)

在MySQL中,多表查询(也称为联表查询或JOIN操作)是数据库操作中非常常见的需求。通过多表查询,你可以从多个表中获取相关数据,并根据一定的条件将它们组合在一起。MySQL支持多种类型的JOIN操作,每种JOIN都有…

gesp(C++四级)(11)洛谷:B4005:[GESP202406 四级] 黑白方块

gesp(C四级)(11)洛谷:B4005:[GESP202406 四级] 黑白方块 题目描述 小杨有一个 n n n 行 m m m 列的网格图,其中每个格子要么是白色,要么是黑色。对于网格图中的一个子矩形,小杨认为它是平衡的…

易于上手难于精通---关于游戏性的一点思考

1、小鸟、狙击、一闪,都是通过精准时机来逼迫玩家练习, 而弹道、出招时机等玩意,不是那么容易掌握的,需要反复的观察、反应与行动, 这也正是游戏性的体现, 玩家能感觉到一些朦胧的东西,但又不…

微信小程序——创建滑动颜色条

在微信小程序中,你可以使用 slider 组件来创建一个颜色滑动条。以下是一个简单的示例,展示了如何实现一个颜色滑动条,该滑动条会根据滑动位置改变背景颜色。 步骤一:创建小程序项目 首先,使用微信开发者工具创建一个新…

JVM实战—12.OOM的定位和解决

大纲 1.如何对系统的OOM异常进行监控和报警 2.如何在JVM内存溢出时自动dump内存快照 3.Metaspace区域内存溢出时应如何解决(OutOfMemoryError: Metaspace) 4.JVM栈内存溢出时应如何解决(StackOverflowError) 5.JVM堆内存溢出时应该如何解决(OutOfMemoryError: Java heap s…

Unity自定义编辑器:基于枚举类型动态显示属性

1.参考链接 2.应用 target并设置多选编辑 添加[CanEditMultipleObjects] using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor;[CustomEditor(typeof(LightsState))] [CanEditMultipleObjects] public class TestInspector :…

Qt重写webrtc的demo peerconnection

整个demo为: 可以选择多个编码方式: cmake_minimum_required(VERSION 3.5)project(untitled LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON)set(CMA…

IOS HTTPS代理抓包工具使用教程

打开抓包软件 在设备列表中选择要抓包的 设备,然后选择功能区域中的 HTTPS代理抓包。根据弹出的提示按照配置文件和设置手机代理。如果是本机则会自动配置,只需要按照提醒操作即可。 iOS 抓包准备 通过 USB 将 iOS 设备连接到电脑,设备需解…

《机器学习》——支持向量机(SVM)

文章目录 什么是支持向量机?基本原理数学模型 支持向量机模型模型参数属性信息 支持向量机实例(1)实例步骤读取数据可视化原始数据使用支持向量机训练可视化支持向量机结果完整代码 支持向量机实例(2)实例步骤导入数据…

高级软件工程-复习

高级软件工程复习 坐标国科大,下面是老师说的考试重点。 Ruby编程语言的一些特征需要了解要能读得懂Ruby程序Git的基本命令操作知道Rails的MVC工作机理需要清楚,Model, Controller, View各司什么职责明白BDD的User Story需要会写,SMART要求能…

使用 Maxwell 计算母线的电动势

三相短路事件的动力学 三相短路事件在电气系统中至关重要,因为三相之间的意外连接会导致电流大幅激增。如果管理不当,这些事件可能会造成损坏,因为它们会对电气元件(尤其是母线)产生极大的力和热效应。 短路时&#x…

Github出现复杂问题 无法合并 分支冲突太多 如何复原

目录 问题再现 解决思路 当然我所指的是在 main 分支开一个新的分支 删除本地文件夹 重新克隆 开一个新分支 切换分支 下载远程分支 文件覆盖 合并到主分支 ​​​​​​​问题再现 太复杂了 无法更改 编译器现状 全部崩溃了 无法更改 即使创建一个新的分支也无济于…

Jenkins触发器--在其他项目执行后构建

前言: jenkins中有多种触发器可用,可以方便的控制构建的启动 这里简单介绍下项目后构建的配置方法 1. 解释: Build after other projects are built Set up a trigger so that when some other projects finish building, a new build is…

CI/CD 流水线

CI/CD 流水线 CI 与 CD 的边界CI 持续集成CD(持续交付/持续部署)自动化流程示例: Jenkins 引入到 CI/CD 流程在本地或服务器上安装 Jenkins。配置 Jenkins 环境流程设计CI 阶段:Jenkins 流水线实现CD 阶段:Jenkins 流水…

计算机毕业设计Python机器学习农作物健康识别系统 人工智能 图像识别 机器学习 大数据毕业设计 算法

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

计算机网络之---物理层设备

什么是物理层设备 物理层设备是指负责数据在物理媒介上传输的硬件设备,它们主要处理数据的转换、信号的传输与接收,而不涉及数据的内容或意义。常见的物理层设备包括网卡、集线器、光纤收发器、调制解调器等。 物理层设备有哪些 1、网卡(N…

HTML实战课堂之简单的拜年程序

一、目录:  一、目录: 二、祝福 三:代码讲解 (1)详细解释: 1.HTML部分 2. CSS部分 三、运行效果(随机截图): 四、完整代码: 二、祝福…

【数据库系统概论】数据库恢复技术

目录 11.1 事务的基本概念 事务的定义 事务的开始与结束 事务的ACID特性 破坏ACID特性的因素 11.2 数据库恢复概述 11.3 故障的种类 1. 事务内部的故障 2. 系统故障 3. 介质故障 4. 计算机病毒 11.4 恢复的实现技术 如何建立冗余数据 数据转储 登记日志文件 11…

Ubuntu问题 -- 硬盘存储不够了, 如何挂载一个新的硬盘上去, 图文简单明了, 已操作成功

需求 我现在有一个ubuntu22.04操作系统的服务器, 但是当前硬盘不够用了, 我买了一个1T的SSD固态硬盘, 且已经安装在服务器上了, 我需要将这个硬盘挂载到当前ubuntu的某个目录上 开始 1. 确认新硬盘是否被系统识别 打开终端,输入以下命令查看系统识别到的硬盘&…