当前位置: 首页 > 图灵资讯 > 技术篇> Neo4J图数据库基础

Neo4J图数据库基础

来源:图灵教育
时间:2023-04-24 10:23:37

CQL语法1、create命令创建一个无属性的节点

create (<node-name>:<lable-name>)
创建具有属性的节点

create (<node-name>:<lable-name>{<property1-name>:<property1-value>,……})

2、match命令
1.无条件查询match (node-name:lable-name) return node-name //注意需要与return一起使用2.有条件查询match (node-name:lable-name) where node-name.property='ceshi'return node-name3.Match查询所有节点 (n) return n4.查询所有节点的标签match (n) return distinct labels(n)
3、return命令

return 与match或create+match一起使用

4、关系基础

Neo4j图数据库遵循属性图模型来存储和管理数据

根据属性图模型,关系应该是定向的。否则,Neo4j将抛出错误的信息。

neo4j基于方向性,分为单向关系和双向关系

现有节点创建没有属性的关系
MATCH (<node1-label-name>:<nodel-name>),(<node2-label-name>:<node2-name>)CREATE  (<node1-label-name>)-[<relationship-label-name>:<relationship-name>{<define-properties-list>}]->(<node2-label-name>)RETURN <relationship-label-name>
现有节点创建具有属性的关系
MATCH (cust:Customer),(cc:CreditCard) CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc) RETURN r
创建新节点没有属性的关系
CREATE     (<node1-label-name>:<node1-name>)-   [<relationship-label-name>:<relationship-name>]->   (<node1-label-name>:<node1-name>)RETURN <relationship-label-name>
创建具有属性关系的新节点
CREATE  (<node1-label-name>:<node1-name>{<define-properties-list>})-[<relationship-label-name>:<relationship-name>{<define-properties-list>}]->(<node1-label-name>:<node1-name>{<define-properties-list>})RETURN <relationship-label-name>
create创建单个标签的节点
CREATE (<node-name>:<label-name>)
多个标签到节点
CREATE (<node-name>:<label-name1>:<label-name2>...:<label-namen>)
单个标签到关系
CREATE (<node1-name>:<label1-name>)-[<relationship-name>:<relationship-label-name>]->(<node2-name>:<label2-name>)
where子句布尔运算符
比较运算符
用where子句创建关系
MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>) WHERE <condition>CREATE (<node1-label-name>)-[<relationship-label-name>:<relationship-name>       {<relationship-properties>}]->(<node2-label-name>)
删除Delete
  • 删除节点
  • 删除节点、相关节点和关系
删除没有关系的节点
MATCH (e: Employee) DELETE e
删除带关系的节点
MATCH (cc: CreditCard)-[rel]-(c:Customer) DELETE cc,c,rel
删除remove
  • 删除节点或关系的标签
  • 删除节点或关系的属性
  • delete和remove不能单独使用,而应与match一起使用
删除节点的标签
方法1match (m) <节点名称>where m.name=“电影或图片” <添加相应的条件筛选>remove m:Movie <删除与节点相关的标签名称>return m <返回节点数据>方法2match(m:Movie) <其中一个是多标签>remove m:Picture <删除Picture标签>
删除节点的属性
方法1match (a)where a.name=“电影与图片”remove a.namereturn A方法2match (m:Movie)remove m.namereturn m
set句向现有节点添加属性
match (m:Picture) set m.name=“只含图片” return m
添加属性到现有节点之间的关系
match (s1)-[f:FRIEND]->(s2)where s1.name="张三" and s2.name="李四"set f.relation=“他们是朋友”return s1,S2或MATCH (:Person {name: 'Alice'})-[f:FOLLOWS]->(:Person {name: 'Bob'})SET f.status = 'active'RETURN f
order by排序

默认升序,desc用于降序

MATCH (emp:Employee)RETURN emp.empid,emp.name,emp.salary,emp.deptnoORDER BY emp.name DESC
union合并

像sql一样,union和union all

注:由于两个查询有不同的节点名称,为了避免错误,需要使用as给每个字段起一个统一的别名,或使用相同的节点名称(此处不会报告错误)

MATCH (cc:CreditCard)RETURN cc.id as id,cc.number as number,cc.name as name,   cc.valid_from as valid_from,cc.valid_to as valid_toUNIONMATCH (dc:DebitCard)RETURN dc.id as id,dc.number as number,dc.name as name,   dc.valid_from as valid_from,dc.valid_to as valid_to
limit和skip
MATCH (emp:Employee) RETURN emplimit 2MATCH (emp:Employee) RETURN empSKIP 2
合并merge

merge=create+match

如果图中没有,则新建节点/关系并返回结果,否则不会新建

MERGE (gp2:GogleProfile{ Id: 201402,Name:"Nokia"})
null和in
null、in关键字符合sql用法 null 或者 is not nullin搭配wheren 进行筛选
ID属性
id是neo4j中节点或关系的默认内部属性。这意味着,当我们创建一个新的节点或关系时,Neo4j数据库服务器将为内部分配一个数字,这将自动增加。
caption标题
在Neo4j数据中,我们在Neo4j MATCHTA浏览器执行 + 在查看UI视图中的数据时,RETURN命令使用其ID属性显示节点和/或关系结果。 它被称为“CAPTIONid属性。
方向关系

在neo4j中,两个节点之前的关系是方向性的。它是单向的或双向的。

因为Neo4j遵循属性图数据模型,所以应该支持方向关系。如果没有方向创建关系

CQL函数字符串函数
1.upper 它用于将所有字母更改为大写字母。MATCH (e:Employee) RETURN e.id,UPPER(e.name),e.sal,e.deptno2.lower 它用于将所有字母更改为小写字母。MATCH (e:Employee) RETURN e.id,LOWER(e.name),e.sal,e.deptno3.subtring 一是索引的开始,二是从Startinded返回到Endindex的子字符串MATCH (e:Employee) RETURN e.id,SUBSTRING(e.name,0,2),e.sal,e.deptno4.replace 用于替换字符串的子字符串。MATCH (p:Person)WHERE p.name CONTAINS 'John'SET p.name = REPLACE(p.name, 'John', 'Jonathan')RETURN p
聚合函数(AGGREGATION)
COUNT、MAX、MIN、SUM、AVG
关系函数

了解关系的细节,如开始节点和结束节点

startnode:MATCH用于知道关系的开始节点 (a)-[movie:ACTION_MOVIES]->(b) RETURN STARTNODE(movie)endnode:MATCH用于知道关系的结束节点 (a)-[movie:ACTION_MOVIES]->(b) RETURN ENDNODE(movie)id:它用于知道关系的idtype:它用于typeMATCH,以了解字符串所表示的关系 (a)-[movie:ACTION_MOVIES]->(b) RETURN ID(movie),TYPE(movie)
管理员数据库备份和恢复索引
创建索引语法createte创建索引语法 index on:Customer (name)删除索引语法dropp index on:Customer(name)
unique约束
创建唯一的约束语法createteate constraint on (cc:CreditCard)Assert cc.number is unique
drop unique
drop constraint on (cc:CreditCard)Assert cc.number is unique