作业-5

1、关系型数据库有哪些?非关系型数据库有哪些?两者区别

关系型数据库:
Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL
非关系型数据库:
NoSql、Cloudant、MongoDb、redis、HBase
两种数据库之间的区别:
关系型数据库的特性

  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、无事务处理,附加功能bi和报表等支持也不好;

2-数据库操作指令

1、显示数据库 show dbs
2、进入xxx数据 use xxx
3、查看当前所在的数据库 db 
4、添加数据 db.集合名.insert({k:v})
5、删除数据 db.dropDatabase()
6、删除集合 db.collection.drop()
7、创建集合 db.createCollection(name, options)
8、更新数据 db.col.update({k:v},{$set:{k:v})
9、查找数据库 db.集合名.find()

3-封装数据的增删改查

// 引入MongoDB
const MongoClient = require('mongodb').MongoClient;
// 数据库地址
const url = 'mongodb://localhost:27017';
// 连接数据库(封装处理)
function _connect(callback){
	MongoClient.connect(url,(err,db)=>{
		if(err) throw err;
		// 数据连接上以后执行该函数 db代表链接成功以后的数据
		callback(db)
	})
}

// 插入数据
module.exports.insert = function(dbname,colname,obj,callback){
	_connect(function(db){
		db.db(dbname).collection(colname).insertOne(obj,(err,result)=>{
			if(err) throw err;
			console.log('插入数据成功');
			db.close();
			callback(result)
		})
	})
}
// 查找数据
module.exports.find = function(dbname,colname,callback,obj={},sort={},limit={}){
	_connect((db)=>{
		db.db(dbname).collection(colname).find(obj).sort(sort).limit(limit).toArray((err,result)=>{
			if(err) throw err;
			console.log('查找数据成功');
			db.close();
			callback(result)
		})
	})
}
// 更新数据
module.exports.update = function(dbname,colname,Old,New,callback){
	_connect((db)=>{
		db.db(dbname).collection(colname).updateOne(Old,New,(err,result)=>{
			if(err) throw err;
			console.log('更新数据成功');
			db.close();
			callback(result)
		})
	})
}
// 删除数据
module.exports.delete = function(dbname,colname,obj,callback){
	_connect((db)=>{
		db.db(dbname).collection(colname).deleteOne(obj,(err,result)=>{
			if(err) throw err;
			console.log('删除数据成功');
			db.close();
			callback(result)
		})
	})
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值