非关系型数据库Redis/MongoDB

关系性数据库有以下缺点

存储在硬盘上,读写慢

需保持ACID,难以扩展

 (ACID:原子性;一致性;隔离性;持久性)

非关系数据库

Not only SQL

都是以key:value形式存在

可以用在分布式系统

有CAP特性:一致性,可用性,分隔容忍(不能三个特性一起用)

缺点:非标准化语言,有限的查询功能

 

 

- Redis

免费开源数据库

 

- MongoDB

非关系型数据库nosql

文件存储:类Json格式

有机会对字段建立索引,实现关系数据库

 

下载:官网

mongoDB操作:

运行mongoDB服务器

mongod -dbpath xxx

连接MongoDB:

mongo

查看当前数据库

show dbs

切换数据库(如果没有会自动创建)

use demo1

插入数据:

db,demo1.insert("name":"xiaohong")

切换到数据库demo1

use demo1

删除数据库

db.dropDatabase()

 

集合:

集合相当于一张表,集合可以有多个文档。

创建集合

db.createCollection('collection1')

 查看已经创建的集合

show collections

删除集合

db.collection1.drop()

 

插入和查看文档

文档是mongodb最基本单元

 

db.collectDemo.insert({"name":"xiaohong"})

查看插入的内容

db.collectionDemo.find().pretty()

声明变量,插入文档

doc=({....})

db.collectionDemo.insert(document)

 

修改和删除文档

替换是对于整条数据进行替换;

db.collection.update({‘title':'MongoDB'},{'title':'mongoDB123'})

修改多个文档

如果不加set则会整条记录被替换

db.collection.update({'name':'hello'},

{$set:{'name':'hello123'}},{multi:true})

删除多个文档

db.col.remove({'name':'hello123'})

删除一个文档

db.col.remove({'name':'hello'},1)

 

修改操作符

$inc

{$inc:{field:value}}

作用:对于一个数字字段的某个field增加value

例如将年龄增加5

$set

{$set:{field:value}}

将文档中某个字段field的值设为value

$unset

{$unset:{field:1}}

删除某个字段field

$push

{$push:{field:value}}

把value追加到field里面

例如 :给chenzhou添加别名michael

$rename

对字段重命名

 

- Neo4j

noSQL的图形数据库

非关系型数据库

使用CQL语言,类似SQL

命令行输入:neo4j console打开数据库

localhost:7474打开浏览器,输入命令进行操作

*创建节点:create()

*添加属性:

match(book{title:'book1'})      -- 匹配值  

set book.name="xiaohong" --改变值

return book --返回值

*查询:

MATCH(a:people)

return a

*创建关系

*删除节点和关系

detele操作用于删除节点和关联关系

remove操作用于删除标签和属性

 

posted @ 2022-04-19 11:36  lms21  阅读(56)  评论(0)    收藏  举报