数据库database
数据库包括关系型数据库和非关系型数据库;
1.关系型数据库:Access mySql SqlServer oracle db2等
由行和列组成表,然后由表组成数据库,各个表之间由关联
2.非关系型数据库:MongoDB,Redis,HBase,CouchDB等。
由文档组成集合,集合组成非关系型数据库
4月10号 MongoDB是什么
1.MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
2.它的特点:高性能、易部署、易使用,存储数据非常方便
3.mongodb存储的数据是bson数据
bson 是 json 的超集,比如 json 中没法储存二进制类型,而 bson 拓展了类型,提供了二进制支持。mongodb 中存储的一条条记录都可以用 bson 来表示。所以你也可以认为,mongodb 是个存 bson 数据的数据库。 BSON可以做为网络数据交换的一种存储形式,这个有点类似于Google的Protocol Buffer,但是BSON是一种schema-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很高
BSON有三个特点:轻量性、可遍历性、高效性。
mongdb的特性
面向集合存储,易存储对象类型的数据。
模式自由。
支持动态查询。
支持完全索引,包含内部对象。
支持查询。
支持复制和故障恢复。
使用高效的二进制数据存储,包括大型对象(如视频等)。
自动处理碎片,以支持云计算层次的扩展性
支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。
文件存储格式为BSON(一种JSON的扩展)
非关系型数据库的优势:
- 性能
NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常的高
- 可扩展性
同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。
关系型数据库的优势:
- 复杂查询
可以用SQL语句方便的在多个表之间做非常复杂的数据查询。
- 事务支持
使得对于安全性能很高的数据访问要求得以实现。
总结
数据库功能是用来存储数据的。
数据库分为关系系数据库和非关系型数据库(nosql)
关系型数据库是由表和表之间的关系组成的,nosql是由集合组成的,集合下面是很多的文????
非关系型数据库文件存储格式为BSON(一种JSON的扩展)。
MongoDB操作命令
1. MongoDB连接地址: mongodb://127.0.0.1:27017
针对数据库的操作
-
use 数据库名字,切换数据库
举例:
创建: 我们的数据库中没有 你要切换的数据库, 那么即为创建
切换: 数据库已经存在, 我们从一个数据库切换到另一个数据库 -
show dbs
将我们本地的所有数据库列出来 -
db/db.getName()
查看当前使用的数据库 -
MongoDB
数据库 -》 集合 -》 文档
针对数据库(database)的操作 -
help //列出所有的命令
-
use db_name //切换数据库
-
db||db.getName() //查看当前的数据库
-
db.states() //显示当前数据库的状态
-
db.dropDatabase() //删除数据库
-
show dbs //显示当前所有的数据库
-
db.versions() //查看当前mongodb的版本
-
db.getMongo() //查看当前mongodb的链接地址
9.针对集合(collections)的操作
(1)创建一个集合
db.createCollection(“集合名字”, {size: 20, capped: true, max: 100});
db.集合名字.isCapped(); //判断集合是否为定容量
(2)得到指定名称的集合
db.getCollection(“集合名字”);
(3)得到当前db的所有集合
db.getCollectionNames();
(4)显示当前db所有集合的状态
db.printCollectionStats()
(5)删除集合
db.集合名.drop();
针对文档(docuemnt)的操作
1. 添加
1. db.coll_name.save({}) 推荐
2. db.coll_name.insertOne({})
3. db.coll_name.insert({})
2. 查询
db.集合名字.find()//查询所有文档
db.coll_name.find(arg1,arg2) 所有的
参数解释:
arg1 表示的是匹配条件
arg2 表示将来输出的内容匹配 0 表示不要, 1表示要
举例:
db.movies.find({year:‘1993’},{_id:0,title:1})
升序
举例:db.movies.find({year:‘1993’},{_id:0,title:1}).sort({year:1})
降序
举例:db.movies.find({year:‘1993’},{_id:0,title:1}).sort({year:-1})
截取 某条以前 limit//要截取多少条
db.movies.find({year:‘1993’},{_id:0,title:1}).limit(5)
截取 某条以后 skip//从多少条开始截取
db.movies.find({year:‘1993’},{_id:0,title:1}).skip(5)
KaTeX parse error: Expected '}', got 'EOF' at end of input: …teachers.find({or:[{age:10},{age:40}]})
findOne() 第一条数据
db.teachers.findOne()
count() 计数
举例: db.movies.find({year: {$gt:“1993”}},{_id:0,title:1,year:1}).count() //16
优先级:
sort>skip>limit
3. 删除
db.coll_name.remove({})
4. 修改
db.coll_name.update(arg1,arg2,arg3,arg4)
参数解释:
1. arg1: 匹配条件
2. arg2: 修改的具体内容
3. arg3: false / true 匹配几条 false 一条 true 多条
4. arg4: false / true 修改几条 false 一条 true 多条
$set 直接设置
举例:db.teachers.update({age:120},{$set: {age: 80}},false,true)
$inc 在当前基础上增加多少
举例:db.teachers.update({age:120},{$inc: {age: 80}},false,true)