关系数据库与非关系数据库

关系型数据库

特性

1、关系型数据库,是指采用了关系模型来组织数据的数据库;2、关系型数据库的最大特点就是事务的一致性;3、简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
优点
1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;2、使用方便:通用的SQL语言使得操作关系型数据库非常方便;3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率;4、支持SQL,可用于复杂的查询。
缺点
1、为了维护一致性所付出的巨大代价就是其读写性能比较差;2、固定的表结构;3、高并发读写需求;4、海量数据的高效率读写;

非关系型数据库

特性

1、使用键值对存储数据;2、分布式;3、一般不支持ACID特性;4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
优点
1、无需经过sql层的解析,读写性能很高;2、基于键值对,数据没有耦合性,容易扩展;3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,而关系型数据库则只支持基础类型。
缺点
1、不提供sql支持,学习和使用成本较高;2、无事务处理,附加功能和报表等支持也不好。

MongoDB

MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象,字段值可以包含其他文档,数组及文档数组。

MongoDB相关命令行

help查看命令提示
help
db.help()
db.test.help()
db.test.find().help()

查询数据库
show dbs

显示当前DB状态
db.stats()

查看当前DB版本
db.version()

查看当前DB的链接机器地址
db.getMongo()

删除数据库
db.dropDatabase()

查询当前所使用的数据库
db.getName()

创建集合
db.createCollection("")

得到指定名称的聚集集合
db.getCollection("")
db.getCollectionNames()

显示当前db所有集合的状态
db.printCollectionStats()

insert与save区别
MongoDB 使用 insert() 或 save() 方法向集合中插入文档 save会替换相同id
db.collection.insertOne({}) // 向指定集合中插入一条文档数据 db.collection.insertMany([{},{}]) // 向指定集合中插入多条文档数据

查询数据
db.blog.find()
db.blog.find().pretty()
db.users.find({},{}).pretty() // 查询所有的数据,显示所有的字段
db.users.find({age: {KaTeX parse error: Expected 'EOF', got '}' at position 7: gt: 24}̲ }, {_id:0}).pr…lt: 24} }, {_id:0}).pretty()
db.users.find({age: { $gte: 18, $lte: 20}}, {_id:0}).pretty()

查询数据并且计数
.count()
db.users.find({}, {_id: 0}).count() // 3
db.users.find({age: { $gte: 18, $lte: 20}}, {_id:0}).count() // 1

删除数据
db.blog.deleteOne({})
db.blog.deleteMany({})

修改数据
db.col.updateOne({key: value}, {KaTeX parse error: Expected 'EOF', got '}' at position 18: …t: {key: value}}̲) db.col.update…set: {key: value}})
db.col.updateOne({key: value}, { $inc: {key: num}}) 修改某一条数据的某一个字段key的自增num

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值