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