# MongoDB 安装启动,Compass 图形界面,命令行交互
TIP
从本节开始正式学习 MongoDB 数据库相关概念、安装、使用 及 项目中的实践等
- 关于数据库
- MongoDB 的环境安装 与 启动
- 使用 MongoDB Compass 图形界面
- MongoDB 命令行交互
- 数据库操作应用场景
# 一、关于数据库
TIP
- 存储数据,要用专业的数据库软件
- 数据库是一个独立的系统,与服务端语言无关
- 数据库有很多,本次我们选择 MongoDB
# 1、专业的数据库软件
TIP
- 数据库(DataBase)是按照数据结构来组织、存储和管理数据的 应用程序
- 数据库是一个非常复杂的软件,而非随便几行代码就能搞定的
- 提供高效的存储和查询操作(还有条件、排序等)
- 能满足各个业务场景的复杂操作
# 2、数据库是一个独立的系统
TIP
- 因为复杂,所以独立
- 独立安装在操作系统上
- 和 任何 web server 的语言、框架,都可连接
注:
- 定义前端请求的 url 规则 —— 路由
- 用 Request 获取数据,用 Response 返回数据
- 读取和存储数据 —— 数据库
从上图中可以看到,数据库是独立于 NodeJS 存在的,与任何业务逻辑 和 语言都没有关系,它们是相互独立的。
如果业务非常复杂,需要建很多 web server
注:
- 上图中,web server 1、web server 2、web server 3 都可连接两个数据库,它们之间是相互独立连接的
- 对数据库来说,用一个 web server 连接后,还可以用第 2 个 web server 连接
我们大部分简单的项目都是一个 web server 连接 一个 数据库,或多个 web server 连接一个数据库。但我们在认知上要知道它是可以做到上图中的连接方式。
# 3、数据库管理数据的特点 与 作用
TIP
相对于纯文件管理数据,数据库管理数据有如下特点
- 速度更快
- 扩展性更强
- 安全性更强
数据库的主要作用:管理数据,对数据进行 增、删、改、查
# 4、为什么选择 MongoDB
TIP
- 常见的数据库有 MongoDB、MySQL、SQLserver、oracle
- 分类:非关系型数据库(MongoDB ... ),关系型数据库(MySQL、SQLserver、oracle)
- MongoDB 易学易用,适合初学者学习,关系型数据库学习成本会更高
- 但并不代表 MongoDB 就简单,在实际项目开发中应用也非常的广泛,性能也非常好
- 关系型数据库(如:MySQL)需要学习 SQL 语言,NoSQL 数据库则无需用 SQL 语句查询,易易学易用
- MongoDB 的操作语法 与 JavaScript 类似,容易上手,学习成本低
# 5、MongoDB 是什么
TIP
MongoDB 是一个基于分布式文件存储的数据库
由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。它是 NoSQL 数据库的一种,介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富、最像关系数据库的。
MongoDB 的逻辑结构是一种层次结构,其支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。
MongoDB 最大的特点
它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。
总的来说,MongoDB 非常适合于存储对象形式的数据,如 JSON 或 BSON 格式的数据,以及需要高性能、可扩展性和灵活查询的应用场景。
# 6、MongoDB 的核心概念
TIP
- 数据库(database):数据库是一个数据仓库,数据库服务下可以创建很多数据库,数据库中可以存放很多集合
- 集合(collection):集合类似于 JS 中的数组,在集合中可以存放很多文档
- 文档(document):文档是数据库中的最小单位,类似于 JS 中的对象
以下是一个 JSON 文件
{
"category": [
{ "id": 1, "name": "Web 前端" },
{ "id": 2, "name": "Java 架构" },
{ "id": 3, "name": "Python 实战" },
{ "id": 4, "name": "Node 后端" },
{ "id": 5, "name": "GO 语言" },
{ "id": 6, "name": "云原生" },
{ "id": 7, "name": "前端架构" }
],
"users": [
{ "id": 1, "name": "ibc", "age": 18 },
{ "id": 2, "name": "allen", "age": 28 },
{ "id": 3, "name": "david", "age": 30 }
]
}
注:
可通过 JSON 文件来理解 MongoDB 中的概念
- 一个 JSON 文件好比是一个 数据库 ,一个 MongoDB 服务下可以有 N 个 数据库
- JSON 文件中的 一级属性的数组值 好比是 集合
- 数组中的对象好比是 文档
- 对象中的属性有时也称之为 字段
一般情况
- 一个项目使用一个数据库
- 一个集合会存储同一种类型的数据
# 二、安装 与 启动 MongoDB
TIP
MongoDB 数据库下载地址:https://www.mongodb.com/try/download/community (opens new window)
推荐选择 zip 类型,通用性更强
# 1、MongoDB 配置步骤
TIP
- ①、将压缩包放到
C:\Program Files
下,然后解压缩 - ②、创建
C:\data\db
目录,MongoDB 会将数据默认保存在这个文件夹内 - ③、以 MongoDB 中的 bin 目录作为工作目录,启动命令行
- ④、运行命令
mongod
直接在命令行中运行 mongod
,实际上就是在运行 该目录中的 mongod.exe
文件(即:MongoDB 的服务端程序)
看到运行日志中出现 Waiting for connections
,端口号为 27017,表明 MongoDB 服务已启动成功
注:
为了方便后续在系统的任意目录中都可随时启动 MongoDB 数据库服务,推荐配置好环境变量
将 MongoDB 服务的 bin 目录 C:\Program Files\mongodb-win32-x86_64-windows-7.0.5\bin
配置在环境变量的 path 中
# 2、连接 MongoDB 服务端
注:
从 MongoDB 6.0 版本开始,MongoDB Shell (mongo.exe
) 不再自动包含在 MongoDB 的二进制发行版中,需要用户单独下载和安装。
下载 MongoDB Shell 客户端,地址:https://www.mongodb.com/try/download/shell (opens new window)
# 2.1、MongoDB Shell 客户端 - 配置步骤
TIP
- 将压缩包放到
C:\Program Files
下,然后解压缩 - 以 MongoDB Shell 的
bin
目录作为工作目录,启动命令行 - 运行命令
mongosh
启动 MongoDB Shell 客户端 连接本机的 MongoDB 服务
注:
为了方便后续在系统的任意目录中都可随时启动并连接 MongoDB 数据库服务,推荐配置好环境变量
将 MongoDB Shell 客户端的 bin 目录 C:\Program Files\mongosh-2.1.5-win32-x64\bin
配置在环境变量的 path 中
一定不要选中 MongoDB 服务端黑窗口的内容,选中后服务会停止,可以按 “回车” 取消选中,服务即恢复
# 2.2、日常启动连接 MongoDB 服务
TIP
日常本地启动连接 MongoDB 服务,只需要 cmd
任意目录打开黑窗口
- cmd 打开黑窗口 ① ,输入
mongod
命令,启动 MongoDB 数据库服务(注:使用期间不能关闭此窗口) - cmd 打开黑窗口 ②,输入
mongosh
命令,启动 MongoDB Shell 客户端连接,即可直接使用 命令行的方式对 MongoDB 进行 增、删、查、改 的操作
平时若使用 命令行交互,需要打开两个黑窗口;若使用 图形界面操作,只需要打开并 保持黑窗口 ① 一直打开即可
# 三、使用 Compass 图形界面
TIP
Compass 是一种用于查询、优化和分析 MongoDB 数据的免费交互式工具。获取关键见解,拖放以构建管道等。
# 1、下载安装 Compass
TIP
Compass 下载地址:https://www.mongodb.com/try/download/compass (opens new window)
直接下一步安装即可,安装成功后,会打开 Compass 的 GUI 界面
启动 MongoDB 服务,并使用 MongoDB Compass 客户端连接 MongoDB 数据库服务端
- cmd 打开黑窗口 ,输入
mongod
命令,启动 MongoDB 数据库服务(注:使用期间不能关闭此窗口) - 点击 Compass 客户端 GUI 界面中的 “Connect” 按钮,连接 MongoDB 数据库服务端
# 2、使用 Compass 创建数据库
TIP
- 创建一个数据库(database)
- 创建集合(collection)
- 文档(document)的增删查改
# 2.1、数据分层管理
TIP
根据前面分析过的评论系统项目的数据库为例,观察 MongoDB 数据的分层管理
注:
- 最外层:安装好的 MongoDB 数据库(数据库是一个独立的系统、与业务 和 web server 无关,目的就是用来存储 和 管理数据)
- 数据库中可以存储多个项目的数据,不同项目数据之间会分开管理(即:数据分层管理)
- 如:评论系统项目:用户数据、留言数据 ...... ,其他项目
- 项目数据层级:每个项目的数据也是单独管理,如:评论系统项目(分别存储不同类型的数据,用户数据、留言数据 ..... 等)
# 2.2、创建数据库
TIP
在 MongoDB 中,admin
、config
和 local
是默认的数据库,它们在 MongoDB 安装后自动创建(一般情况,不要去动它们)。每个数据库都有其特定的用途:
admin 数据库:
- 这是一个特殊的数据库,用于存储系统级的信息,如用户、角色和权限等。
- 当启用 MongoDB 的认证功能时,需要在
admin
数据库中创建用户,以便进行身份验证和授权。 - 一些特定的服务器命令,如列出所有数据库或关闭服务器,只能从
admin
数据库运行。
config 数据库:
- 当 MongoDB 用于分片设置时,
config
数据库用于存储分片集群的基础信息。 - 分片是 MongoDB 中将数据分布到多个服务器上的过程,而
config
数据库则存储了与分片相关的配置信息。
local 数据库:
local
数据库主要用于存储与副本集相关的元数据。- 副本集是 MongoDB 中用于实现数据冗余和高可用性的机制,而
local
数据库则存储了与副本集配置和操作相关的信息。 - 值得注意的是,
local
数据库中的数据不会被复制到副本集中的其他节点上,因为它是特定于每个 MongoDB 实例的。
在 MongoDB 中,可以创建多个自定义数据库来存储应用程序的数据,但这些自定义数据库与 admin
、config
和 local
这样的系统数据库是分开的,并且具有不同的用途和特性。
在 Compass 中,点击 “+” 创建项目的数据库 comment-system
- 创建数据库:输入数据库名称
comment-system
- 创建集合:输入集合名称
users
- 点击
Create Database
按钮完成创建
注:
按照数据分层管理,comment-ststem
为第二层(评论系统数据库);users
为第三层(评论系统数据集合)
# 2.3、创建集合
TIP
在 comment-ststem
数据库中再次创建 留言信息集合 comments
输入集合名称,创建新的集合
创建完成后,即可看到左侧列表中的集合列表(comments
和 users
集合)
# 3、新增文档
TIP
在 Compass 中,新增 users 文档(document)数据,点击 insert document
在输入框中输入文档数据(JSON 类型),点击 insert
按钮
文档数据
{
"username": "icoding",
"password": "123",
"age": 18,
"city": "beijing"
}
插入文档数据完成,可查看
注:
我们并没有手写 _id
这个字段,系统会自动生成一个随机且不重复的字符串(id)。_id
字段具有以下主要特性:
唯一性:每个文档的
_id
值必须是唯一的,这是 MongoDB 保证数据唯一性的基础。在集合中,每个文档都有一个唯一的_id
值,以确保集合中的每个文档都能被唯一标识。自动索引:
_id
字段会自动被索引,这有助于快速查询和检索文档。自动生成:当插入一个新的文档时,如果
_id
字段为空,MongoDB 会自动为其生成一个唯一的_id
值。这个值是一个 12 位的 BSON 类型,其中包括一个时间戳和一个自增序列号。这个 BSON 类型被称为ObjectId
,是 MongoDB 的 BSON 类型之一。不可更改性:
_id
类型的值一旦生成,就无法更改。如果需要更改_id
值,需要先删除原有文档,再插入一个新的文档。组成与含义:
ObjectId
由以下部分组成:- 一个 4 字节的值,表示自 Unix 时代以来的秒数;
- 一个 3 字节的机器标识符,用于确保不同主机生成的
ObjectId
是唯一的; - 一个 2 字节的进程 ID,用于确保同一机器上并发的多个进程产生的
ObjectId
是唯一的; - 一个 3 字节的计数器,以随机值开头,用于确保同一机器上同一进程同一秒产生的
ObjectId
是唯一的;
再次插入文档数据
{
"username": "allen",
"password": "123",
"age": 20,
"city": "shanghai"
}
成功创建了 2 个用户文档数据
# 4、删除一条数据(文档)
TIP
鼠标滑到其中的一个文档上,即会显示删除按钮,直接点击删除即可。(删除集合 与 数据库类似,谨慎操作 !)
# 5、更新数据
点击需要修改的数据,修改完成后 -> 点击 UPDATE
按钮
# 6、查询数据
根据条件查询数据,在 Compass 的文本框中输入查询条件,点击 Find
按钮
// 单查询条件
{city: 'beijing'}
// 多条件查询
{city: 'beijing', username: 'icoding'}
# 7、排序
从小到大排序,如:根据 age 从小到大排序
注:
{age: 1}
按从小到大排序
从大到小排序,如:根据 age 从大到小排序
注:
{age: -1}
按 age 从大到小排序
# 四、MongoDB 命令行交互
TIP
命令行交互一般是学习数据库的第一步,不过这些命令在实际开发中会用的比较少,了解即可
# 1、MongoDB Shell 客户端
TIP
使用 cmd 黑窗口,通过 MongoDB Shell 客户端连接 MongoDB 服务端
在黑窗口中输入 mongosh
命令,启动 MongoDB Shell 客户端 连接 MongoDB 服务端,即可直接使用 命令行的方式对 MongoDB 进行 增、删、查、改 的操作
# 2、Compass 命令行客户端
TIP
使用 MongoDB Compass GUI 图形界面中的 命令行客户端,直接输入命令即可对数据库进行相关操作(推荐使用)
注:
在使用任何客户端连接 MongoDB 数据库服务时,都要保证 MongoDB 数据库服务端是开启状态。(本地数据库服务启动的黑窗口不能关闭)
# 3、数据库命令
显示所有的数据库
show dbs
切换到指定的数据库,如果数据库不存在会自动创建数据库
# 语法
use 数据库名
# 如果数据库不存在会自动创建数据库
use icoding
# 再次显示所有的数据库(此时,不会显示新创建的数据库 icoding,原因是:该数据库内还没有集合)
show dbs
# 在 icoding 数据库中创建一个集合
db.createCollection('users')
# 再次显示所有数据库(此时,即可显示刚刚创建的 icoding 数据库了)
show dbs
显示当前所在的数据库
db
删除当前数据库
# 语法
use 库名
# 删除当前数据库
db.dropDatabase()
# 4、集合命令
创建集合
db.createCollection('集合名称')
先创建一个数据库,在创建一个集合
# 如果数据库不存在会自动创建数据库
use icoding
# 创建集合
db.createCollection('users')
db.createCollection('product')
显示当前数据库中的所有集合
show collections
删除某个集合
# 语法
db.集合名.drop()
# 删除商品集合
db.product.drop()
重命名集合
// 语法
db.集合名.renameCollection("newName");
// 重命名用户集合
db.user.renameCollection("user");
# 5、文档命令
插入单个文档
使用
insertOne
方法插入单个文档
// 语法
db.集合名.insertOne(文档对象);
// 插入一条用户文档数据
db.user.insertOne({ username: "allen", age: 18 });
插入多个文档
使用
insertMany
方法插入多个文档
// 语法
db.collection.insertMany(arrayOfDocuments);
// 插入多个用户文档
db.user.insertMany([
{ username: "ibc", age: 30 },
{ username: "david", age: 35 },
]);
使用简写的insert
方法
它会根据传入的参数类型自动选择
insertOne
或insertMany
// 语法
db.collection.insert(documentOrArrayOfDocuments);
// 插入单个文档
db.user.insert({ username: "David", age: 40 });
// 插入多个文档
db.user.insert([
{ username: "Eve", age: 28 },
{ username: "Frank", age: 50 },
]);
注:
当你执行这些命令时,MongoDB 会在指定的集合中插入数据。如果集合不存在,MongoDB 会自动创建它。
请注意,从 MongoDB 4.2 版本开始,
insert
方法已被弃用,并推荐使用insertOne
和insertMany
方法
# 6、查询文档
TIP
在 MongoDB 中,查询文档主要使用find
和findOne
命令。以下是这些命令的简要说明和示例:
# 6.1、find 命令
TIP
find
命令用于查询集合中的文档,并返回结果为游标的文档集合
// 语法
db.collection.find(query, projection);
注:
query
:一个可选的查询对象,用于筛选文档。如果省略,将返回集合中的所有文档。projection
:一个可选的投影对象,用于指定返回的字段。如果省略,将返回匹配文档的所有字段。
// 查询集合中所有文档
db.user.find();
// 查询年龄为 18 的用户
db.user.find({ age: 18 });
// 查询年龄大于 18 的用户,并只返回 _id 和 username 字段
db.user.find({ age: { $gt: 18 } }, { _id: 1, username: 1 });
# 6.2、findOne 命令
TIP
findOne
命令用于查询集合中的第一个匹配文档
// 语法
db.collection.findOne(query, projection);
query
:一个可选的查询对象,用于筛选文档。projection
:一个可选的投影对象,用于指定返回的字段。
// 查询年龄为 18 的第一个用户
db.user.findOne({ age: 18 });
// 查询第一个用户,并只返回 _id 和 username 字段
db.user.findOne({}, { _id: 1, username: 1 });
# 6.3、条件操作符
TIP
MongoDB 提供了丰富的条件操作符来构建查询,例如:
操作符 | 描述 |
---|---|
$eq | 等于 |
$gt | 大于 |
$gte | 大于等于 |
$lt | 小于 |
$lte | 小于等于 |
$ne | 不等于 |
$in | 在指定数组中 |
$nin | 不在指定数组中 |
$exists | 字段是否存在 |
...... | ...... |
# 6.4、查询选项
TIP
你还可以使用查询选项来修改查询的行为,例如:
sort()
:对结果进行排序。limit()
:限制返回的文档数量。skip()
:跳过指定数量的文档。
// 查询年龄大于15的用户,按年龄降序排序,取前5个
db.user
.find({ age: { $gt: 15 } })
.sort({ age: -1 })
.limit(5);
// 查询年龄大于15的用户,跳过前10个,然后取5个
db.user
.find({ age: { $gt: 15 } })
.skip(10)
.limit(5);
可以根据具体需求组合使用它们来执行复杂的查询操作。
# 6.5、分页查询
TIP
在 MongoDB 中,要实现分页查询,通常会使用find
方法结合skip
和limit
方法。skip
方法用于跳过指定数量的文档,而limit
方法用于限制返回的文档数量。
需求:如果你有一个users
集合,并且你想要按照createdAt
字段降序排序,查询第 2 页的数据,每页显示 10 个文档
db.user.find().sort({ createdAt: -1 }).skip(10).limit(10);
这条命令会跳过前 10 个文档(即第 1 页的数据),然后返回接下来的 10 个文档(即第 2 页的数据)
分页查询的示例
// 假设每页显示10个文档,我们要查询第2页的数据
const pageSize = 10; // 每页文档数量
const pageNumber = 2; // 当前页码
// 计算需要跳过的文档数量
const skipCount = (pageNumber - 1) * pageSize;
// 执行分页查询
db.collection.find(query).sort(sortCriteria).skip(skipCount).limit(pageSize);
注:
query
用于筛选文档的查询条件sortCriteria
是想要按照哪个字段进行排序的条件(例如,{ createdAt: -1 }
表示按照createdAt
字段降序排序)
# 7、更新文档
TIP
在 MongoDB 中,更新文档通常使用updateOne
、updateMany
、replaceOne
或findOneAndUpdate
命令
# 7.1、updateOne 命令
updateOne
命令用于更新集合中匹配到的第一个文档。
// 更新第一个用户名为 “allen” 的,将 年龄 改为 20
db.user.updateOne({ username: "allen" }, { $set: { age: 20 } });
# 7.2、updateMany 命令
updateMany
命令用于更新集合中所有匹配到的文档。
// 更新所有年龄为 20 的用户的名字为 "John"
db.user.updateMany({ age: 20 }, { $set: { username: "ibc" } });
# 7.3、replaceOne 命令
replaceOne
命令用于替换集合中匹配到的第一个文档。
// 替换第一个年龄为 20 的用户的信息
db.user.replaceOne(
{ age: 20 },
{ age: 25, username: "allen", address: "北京市海淀区" }
);
# 7.4、findOneAndUpdate 命令
findOneAndUpdate
命令用于查找并更新集合中匹配到的第一个文档,并返回更新前的文档。
// 找到年龄为 20 的第一个用户,增加其年龄 1 ,并返回更新前的文档
db.user.findOneAndUpdate(
{ age: 20 },
{ $inc: { age: 1 } },
{ returnDocument: "before" }
);
# 8、删除文档
TIP
在 MongoDB 中,删除文档主要使用remove
、deleteOne
和deleteMany
方法
# 8.1、remove 命令
TIP
remove
方法用于从集合中删除文档。在 MongoDB 3.2 及更高版本中,remove
方法已被弃用,取而代之的是deleteOne
和deleteMany
方法。
但如果你使用的是较旧的 MongoDB 版本,仍然可以使用
remove
方法。
// 删除年龄为25的第一个用户(仅适用于旧版本的 MongoDB)
// justOne:如果为true或1,则只删除一个匹配的文档
db.user.remove({ age: 25 }, { justOne: true });
// 删除所有年龄为25的用户(仅适用于旧版本的 MongoDB)
db.user.remove({ age: 25 });
# 8.2、deleteOne 命令
deleteOne
方法用于删除与指定查询条件匹配的第一个文档
// 删除年龄为25的第一个用户
db.user.deleteOne({ age: 25 });
# 8.3、deleteMany 命令
deleteMany
方法用于删除与指定查询条件匹配的所有文档
// 删除所有年龄为25的用户
db.user.deleteMany({ age: 25 });
注:
在使用以上删除方法时,要确保已经连接到了 MongoDB 数据库,并且您有足够的权限来执行删除操作。
同时,也要谨慎处理删除操作,以避免意外地删除重要数据。在执行删除操作之前,通常建议首先使用find
命令来确认将要被删除的文档。
# 五、数据库操作应用场景
TIP
数据库的应用场景主要根据使用的数据库类型而异。以下是一些常见的数据库类型及其应用场景。
每种数据库都有其特定的优势和使用场景,选择哪种数据库取决于应用的需求、数据的性质以及性能、可扩展性和维护性的要求。
# 1、关系型数据库(RDBMS)
TIP
- 企业应用:如 ERP(企业资源规划)、CRM(客户关系管理)系统,它们需要处理大量的结构化数据,并确保数据的一致性和完整性。
- 电子商务:在线商店需要关系型数据库来管理商品、订单、用户信息等。
- 金融系统:银行、保险和投资公司等需要关系型数据库来处理复杂的金融交易和报告。
常见的关系型数据库包括 MySQL、Oracle、Microsoft SQL Server、PostgreSQL 等。
# 2、非关系型数据库(NoSQL)
TIP
- 大数据处理:如 Hadoop 和 Cassandra,它们用于处理和分析大规模的非结构化数据。
- 实时应用:如消息队列(如 Kafka)和键值存储(如 Redis),它们提供快速的读写能力和实时响应。
- 社交网络:需要处理大量的用户生成内容和高并发请求,如 Facebook 和 Twitter 使用 NoSQL 数据库。
常见的非关系型数据库包括 MongoDB、Cassandra、Redis、Couchbase 等。
# 3、图数据库
TIP
- 社交网络分析:图数据库如 Neo4j 特别适合表示和分析复杂的关系数据,如社交网络中的用户、朋友和兴趣。
- 推荐系统:基于图的算法可以用于构建推荐系统,如电影、音乐或商品的推荐。
# 4、列式数据库
TIP
- 大数据分析:如 Apache HBase 和 Google 的 Bigtable,它们特别适合于存储和分析大量的结构化数据,尤其是那些具有许多列的数据。
- 实时分析:列式数据库支持高效的聚合操作,使得它们适合进行实时数据分析。
# 5、内存数据库
TIP
- 高性能应用:如 Redis 和 Memcached,它们将所有数据存储在内存中,从而提供极快的读写性能。
- 缓存:内存数据库常用于作为后端存储的缓存层,加速数据访问。
# 6、时序数据库
TIP
- 物联网(IoT):时序数据库如 InfluxDB 和 TimescaleDB 特别适合于处理时间序列数据,如传感器读数、设备日志等。
- 金融交易:它们也常用于记录和分析金融市场的交易数据。
# 7、增删查改的常见应用场景
新增
提交表单信息:用户注册,发布商品、视频、评论、微博、弹幕、朋友圈 ......
删除
删除操作:删除用户信息、商品、视频、文章、评论、微博、弹幕、朋友圈 ......
更新
修改操作:修改用户信息、商品信息、文章内容 ......
查询
查询操作:文章列表、商品列表、微博列表 ......
大厂最新技术学习分享群
微信扫一扫进群,获取资料
X