数据库:按照数据结构来组织,存储和管理数据的仓库,
是一个长期存储在计算机内的,有组织的,可共享的,统一管理的大量数据的集合,
可视为电子化的文件柜,用户可以对文件中的数据进行增加,删除,修改,查找等操作
数据库分类:关系型数据库(RDBM):mySql,orcle,db2,SQLserve,表格形式
非关系型数据库:noSQL,键值对数据库,mongDB
关系型数据库和非关系型数据库区别:
1-数据存储方式不同
2-关系型数据库表格形式
3-非关系型数据存储在文档,键值对的结构
数据库服务器存放数据库database,
数据库放多个集合collection,
集合里放文档document
mongodb:是数据库的服务,服务里面可以有多个数据库,用来存放数据的集合
安装:
配置环境变量path:C:\软件\mongodb\mongodb-win32-x86_64-windows-4.4.1\bin
安装包bin打开后黑屏终端cmd:
C:\软件\mongodb\mongodb-win32-x86_64-windows-4.4.1\bin>mongod
或者
C:\软件\mongodb\mongodb-win32-x86_64-windows-4.4.1\bin>mongod --dbpath=C:\mongodb\data --port=27017
黑屏终端cmd启动数据库命令(希尔模式):mongo
启动数据库命令:mongo
数据库命令:
查询所有的数据库:show dbs 或者 show databases
创建并进入数据库:use 数据库名字 (use text1)
查看当前数据库:db
删库 db.dropDatabase()
集合:
新建集合:db.createCollection('集合名')
db.集合名称
查看集合:show collections 或者 show tables
删除集合:db.集合名.drop()
文档:
插入:db.集合名.insert({})
db.集合名.insertOne({})
db.集合名.insertMany([{},{}])
删除:db.集合名.remove({}) 全删除
db.集合名.remove({},true) 删除符合条件的第一个
db.集合名.deleteOne({})
db.集合名.deleteMany({})
修改(编辑):db.集合名.update({筛选条件},{$set:{修改内容}},{multi:true})
db.集合名.update({筛选条件},{$unset:{删除内容}}) 删除
db.集合名.updateOne() 更新一条数据
db.集合名.updateMany() 更新多条数据
db.集合名.replaceOne() 替换第一条数据
查询:db.集合名.find({name:"a"})
db.集合名.find({name:"a"}).count 符合条件的数量
db.集合名.findOne({})
db.集合名.find()[0]
投影:对显示字段的控制,显示的用1,不显示的用0
db.集合名.find({},{job:0})
db.集合名.find({},{name:1})
emp.find({ sal: { $gte: 1250 } }, { ename: 1, _id: 0 })
排序:sort(),-1为降序,1为升序
emp.find().sort({ sal: 1, empno: -1 })
操作符:方法,链式调用
$gt 大于
$gte 大于等于
$lt 小于
$lte 小于等于
$eq 全等
$ne 不等于
$or 或者
工资 >= 2500 或者 <= 1000
emp.find({ $or: [{sal: { $gte: 2500 }}, { sal: { $lte: 1000 } }] })
$inc 自增
为所有工资低于1000的员工增加工资400元
emp.update({ sal: { $lte: 1000 } }, { $inc: { sal: 400 } })
分页功能:
limit(n) 取出n条数据
skip(m) 跳过第m条以前的数据,从m+1开始取
var page = 0;limit = 10;
如:第4页的数据 30-40
skip = (page-1)*limit 跳过的数据limit
db.user.find().skip(skip).limit(limit)
查询集合中前10条数据
numbers.find().limit(10)
查询集合中第11-20条数据
numbers.find().skip(10).limit(10)
查询第21-30条数据
numbers.find().skip(20).limit(10)
向number中插入20000条数据
1- var arr = [];
for(var i = 1; i <= 20000; i++) {
arr.push( { num: i } )
}
db.user.insert(arr)
2- for(var i=1 ; i<=20000 ; i++){
db.user.insert({num:i});
}
文档关系:
一对一:一个字段对应一个对象
db.wifeAndHusband.insert([
{
name:"黄蓉",
husband:{
name:"郭靖"
}
}
}
一对多:一个字段对应一个数组
多对一
多对多