非关系型数据库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操作用于删除标签和属性

浙公网安备 33010602011771号