首先你的需要个这个软件
这个软件请自行下载
打开后页面如下:(使用Ctrl+s)可以打开下图视图
做好以上准备就可以开始进行正文了!
以下有关数据库的操作
1.查看当前数据库名称:db
2.查看所有数据库名称-列出所有在物理上存在的数据库:show dbs
3.切换数据库 (注:如果数据库不存在,则指向数据库,但不创建,直到插入数据或创建集合时数据库才被创建) :use 数据库名称
例:
use test
默认的数据库为test,如果你没有创建新的数据库,集合将存放在test数据库中
4.数据库删除😦注:删除当前指向的数据库,如果数据库不存在,则什么也不做):db.dropDatabase() 慎用!
以下有关对应数据库中的集合的操作
1.集合创建
db.createCollection(name, options)
name是要创建的集合的名称
options是一个文档,用于指定集合的配置
选项参数是可选的,所以只需要到指定的集合名称。
db.createCollection(“stu”) – 这个创建了名叫“stu”的结合 也可以看作为是一个表
例:限制集合大小
参数capped:默认值为false表示不设置上限,值为true表示设置上限
参数size:当capped值为true时,需要指定此参数,
表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位为KB
db.createCollection(“sub”, { capped : true, size : 10 } )
2.查看当前数据库的集合:show collections
3.删除集合:db.集合名称.drop()
以下有关对应数据库中的集合中的数据的操作
1.插入文档:db.集合名称.insert(document)
例1
db.stu.insert({name:'gj',gender:1})
例2
s1={_id:'20160101',name:'hr'}
s1.gender=0
db.stu.insert(s1)
2.简单查询:db.集合名称.find()
3.更新:
db.集合名称.update(
<query>,
<update>,
{multi: <boolean>}
)
参数query:查询条件,类似sql语句update中where部分
参数update:更新操作符,类似sql语句update中set部分
参数multi:可选,默认是false,表示只更新找到的第一条记录,值为true表示把满足条件的文档全部更新
例3:全文档更新
db.stu.update({name:‘java’},{name:‘python’})
例4:指定属性更新,通过操作符KaTeX parse error: Expected '}', got 'EOF' at end of input: …e({name:'hr'},{set:{name:‘hys’}})
例5:修改多条匹配到的数据
db.stu.update({},{KaTeX parse error: Expected 'EOF', got '}' at position 15: set:{gender:0}}̲,{multi:true}) …的确定数组中一个要被更新的元素的位置
匹配第一个符合查询条件的值的位置。
4.数据的保存:db.集合名称.save(document)
如果文档的_id已经存在则修改,如果文档的_id不存在则添加
例
db.stu.save({_id:'20180102','name':'Tom',gender:1})
db.stu.save({_id:'20180102','name':'John'})
save和insert函数都可以向collection里插入数据,但两者是有两个区别:
一、使用save函数里,如果原来的对象不存在,那他们都可以向collection里插入数据,如果已经存在,save会调用update更新里面的记录,而insert则会忽略操作
二、insert可以一次性插入一个列表,而不用遍历,效率高, save则需要遍历列表,一个个插入。
5.数据的删除:
db.集合名称.remove(
<query>,
{
justOne: <boolean>
}
)
参数query:可选,删除的文档的条件
参数justOne:可选,如果设为true或1,则只删除一条,默认false,表示删除多条
例:只删除匹配到的第一条
db.stu.remove({gender:0},{justOne:true})
例:全部删除
db.stu.remove({})
6.补充一些课外高能技能:
1、一般来说,我们创建集合用db.createCollection(name)
如:db.createCollection("log"),创建一个名字为log的集合,没有任何的大小,数量限制,使用_id作为默认索引;
2、限制集合空间的大小
db.createCollection("log",{size:1024})或db.createCollection("log",{capped:true,size:1024})
创建一个名字为log集合,限制它的空间大小为1M,如果超过1M的大小,则会删除最早的记录;
3、限制集合的最大条数
db.createCollection("log",{max:1024})
创建一个名字为log集合,最大条数为1024条,超过1024再插入数据的话会删除最早的一条记录。
这个不能使用capped:true,否则会报错;
例
创建集合
db.createCollection('subject',{capped:true,size:10})
插入第一条数据库查询
db.subject.insert({title:'linux',count:10})
db.subject.find()
插入第二条数据库查询
db.subject.insert({title:'web',count:15})
db.subject.find()
插入第三条数据库查询
db.subject.insert({title:'sql',count:8})
db.subject.find()
插入第四条数据库查询
db.subject.insert({title:'django',count:12})
db.subject.find()
插入第五条数据库查询
db.subject.insert({title:'python',count:14})
db.subject.find()
以下是对数据进行详细的增删改查
1.数据的基本查询:
方法 find():查询
db.集合名称.find({条件文档})
方法 findOne():查询,只返回第一个
db.集合名称.findOne({条件文档})
方法 pretty():将结果格式化
db.集合名称.find({条件文档}).pretty()
2.数据的比较运算符:
比较运算符
等于,默认是等于判断,没有运算符
小于:$lt
小于或等于:$lte
大于:$gt
大于或等于:$gte
不等于:$ne
例1:查询名称等于'gj'的学生
db.stu.find({name:'gj'})
例2:查询年龄大于或等于18的学生
db.stu.find({age:{$gte:18}})
3.数据的逻辑运算符:
查询时可以有多个条件,多个条件之间需要通过逻辑运算符连接
逻辑与:默认是逻辑与的关系
例:查询年龄大于或等于18,并且性别为1的学生
db.stu.find({age:{$gte:18},gender:1})
逻辑或:使用$or
例:查询年龄大于18,或性别为0的学生
db.stu.find({$or:[{age:{$gt:18}},{gender:1}]})
and和or一起使用
例:查询年龄大于18或性别为0的学生,并且学生的姓名为gj
db.stu.find({$or:[{age:{$gte:18}},{gender:1}],name:'gj'})
4.数据的范围运算符:
使用"$in","$nin" 判断是否在某个范围内
例:查询年龄为18、28的学生
db.stu.find({age:{$in:[18,28]}})
5.数据的自定义的查询:
使用$where后面写一个函数,返回满足条件的数据
例7:查询年龄大于30的学生
db.stu.find({$where:function(){return this.age>20}})
6.数据的Limit与skip:
Limit
方法limit():用于读取指定数量的文档
语法:
db.集合名称.find().limit(NUMBER)
参数NUMBER表示要获取文档的条数
如果没有指定参数则显示集合中的所有文档
例:查询2条学生信息
db.stu.find().limit(2)
skip
方法skip():用于跳过指定数量的文档
语法:
db.集合名称.find().skip(NUMBER)
参数NUMBER表示跳过的记录条数,默认值为0
例:查询从第3条开始的学生信息
db.stu.find().skip(2)
两者同时使用
方法limit()和skip()可以一起使用,不分先后顺序
创建数据集
查询第5至8条数据
db.stu.find().limit(4).skip(5)
或
db.stu.find().skip(5).limit(4)
7.数据的投影:
在查询到的返回结果中,只选择必要的字段,而不是选择一个文档的整个字段
如:一个文档有5个字段,需要显示只有3个,投影其中3个字段即可
语法:
参数为字段与值,值为1表示显示,值为0不显示
db.集合名称.find({},{字段名称:1,...})
对于需要显示的字段,设置为1即可,不设置即为不显示
特殊:对于_id列默认是显示的,如果不显示需要明确设置为0
例1
db.stu.find({},{name:1,gender:1})
例2
db.stu.find({},{_id:0,name:1,gender:1})
8.数据的排序:
在查询到的返回结果中,只选择必要的字段,而不是选择一个文档的整个字段
如:一个文档有5个字段,需要显示只有3个,投影其中3个字段即可
语法:
参数为字段与值,值为1表示显示,值为0不显示
db.集合名称.find({},{字段名称:1,...})
对于需要显示的字段,设置为1即可,不设置即为不显示
特殊:对于_id列默认是显示的,如果不显示需要明确设置为0
例1
db.stu.find({},{name:1,gender:1})
例2
db.stu.find({},{_id:0,name:1,gender:1})
9.数据的统计个数:
count()
用于统计结果集中文档条数
db.集合名称.find({条件}).count()
db.集合名称.count({条件})
例1:统计男生人数
db.stu.find({gender:1}).count()
例2:统计年龄大于20的男生人数
db.stu.count({age:{$gt:20},gender:1})
10.数据的消除重复:
distinct()对数据进行去重
只支持一个field
db.集合名称.distinct('去重字段',{条件})
例1:查找年龄大于18的性别(去重)
db.stu.distinct('gender',{age:{$gt:18}})
以下是高高级的操作 仅供参考
目前还未深度学习 日后学习归来 在与君畅谈!!!
以上代码仅供个人学习参考 请勿商用 感谢!!!