neo4jcypher基本语句
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
neo4jcypher基本语句
create (:患者)-[rl:likes]-> (dept:Dept )
///////////////关系(STARTNODE)
MATCH (video1:YoutubeVideo1)-[movie:ACTION_MOVIES]->(video2:YoutubeVideo2)
RETURN movie (查关系)
MATCH (a)-[movie:ACTION_MOVIES]->(b)
RETURN STARTNODE(movie) (查开始节点)
MATCH (a)-[movie:ACTION_MOVIES]->(b)
RETURN ENDNODE(movie) (查结束节点)
MATCH (a)-[movie:ACTION_MOVIES]->(b)
RETURN ID(movie),TYPE(movie) //查到关系“ACTION_MOVIES”的ID和TYPE
////////////最⼤最⼩总个数
ATCH (e:Employee) RETURN COUNT(*) //节点个数
MATCH (e:Employee)
RETURN MAX(e.sal),MIN(e.sal) //最⼤最⼩
MATCH (e:Employee)
RETURN SUM(e.sal),AVG(e.sal) //总⾦额//平均⾦额
///////////⼤写⼩写截取
MATCH (e:Employee)
RETURN e.id,LOWER(),e.sal,e.deptno //UPPER(⼤写)//SUBSTRING(,0,2)//
//////////关系
CREATE (<node1-details>)-[<relationship-details>]->(<node2-details>)
() - []→() //仅⽀持⽅向的关系
//////(IN指定id为123,124的数据。
(e.id is (not) null ))
MATCH (e:Employee)
WHERE e.id IN [123,124]
RETURN e.id,,e.sal,e.deptno
///////////////////////合并(MERGE)
MERGE 同create⽤法
如果它不存在,它创建新节点。
否则,它不创建新的。
////limit skip
MATCH (emp:Employee)
RETURN emp
LIMIT 2 //取前两条数据
OR
SKIP 2 //跳过前两条数据
/////union(列名需要名称相同, as 别名)
MATCH (cc:CreditCard)
RETURN cc.id as id,cc.number as number, as name,
cc.valid_from as valid_from,cc.valid_to as valid_to
UNION
MATCH (dc:DebitCard)
RETURN dc.id as id,dc.number as number, as name,
dc.valid_from as valid_from,dc.valid_to as valid_to
///////////////////Sorting
MATCH (emp:Employee)
RETURN emp.empid,,emp.salary,emp.deptno
ORDER BY
/////////////////////////////////////////////////////////////////////--44444(delete)
MATCH (e: Employee) DELETE e //Cannot delete node<34>, because it still has relationships.(数据保护)//--
MATCH (cc:CreditCard)-[r]-(c:Customer)RETURN r //查关系
MATCH (cc: CreditCard)-[rel]-(c:Customer)
DELETE cc,c,rel //删除关系
MATCH (cc:CreditCard)-[r]-(c:Customer) RETURN r //删除之后查看
///
match (n)
detach delete n (先分离)
remove,专门⽤来删除属性和标签,⽐delete安全
eg:
match (x:患者{gender:"P"}) remove x.created_time return x
eg:
CREATE (book:Book {id:122,title:"Neo4j Tutorial",pages:340,price:250}) //
MATCH (book { id:122 })
REMOVE book.price
RETURN book
//--
////////////////////////////////////////////////////////////////3 Retrieve(检索)
match (x:患者) where x.gender="⼥" return x
Where跟SQLQ相似,is not null或者=,and、or等逻辑运算符
除了Create和Delete语句,其他所有语句都应该以return结尾,否则报错
//--
Optional Match,其他都⼀样,差别在于没找到Match不返回任何结果,⽽Optional Match返回NULL
eg:
MATCH (dept:Dept) dept是节点名称
Dept是emp节点的标签名称(match,return 都不能单独使⽤)
eg:
MATCH (dept: Dept)
RETURN dept.deptno,dept.dname,dept.location
或者(RETURN dept)
dept是节点名称
这⾥Dept是⼀个节点标签名
deptno是dept节点的属性名称
dname是dept节点的属性名
location是dept节点的属性名
//--
Merge好似if-else语句
有则执⾏on merge
没有则⾛on create
humane:看是否需要merge,找到的话就合并,没找到就新建
//--
Aggregation”。
这种聚合实质上是grouping,就是对结果进⾏统计操作,⼩到count、max、min,⼤到stdev、stdevp,更不⽤说distinct了//--
Cypher语句以Start开始,每⼀条查询语句可以有多个起始点(starting points)
///////////////////////////////////////////////更新操作2222222222 就是set(更新)
match (x:患者) where x.gender="男" set x.age=100 return x
//--
merge (x:患者{gender:"P"})
on match set = "⼩明", x.birthday = "2007/06/02"
on create set x.created_time = timestamp()
//--
MATCH (dc:DebitCard)
SET dc.atm_pin = 3456
RETURN dc
///////////////////////////////////////////////-1(创建,新增)
CREATE命令总是向数据库添加新的节点。
create (?:标签名{属性名1:"属性1值",属性名2:"属性2值"})
create (n:患者{gender:"⼥",age:23})
代表的是创建的本实例//“n:患者”也可以写成“:患者”
eg:
CREATE (dept:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" })
创建⼀个标签,即“Dept”
创建⼀个节点,即“dept”
创建三个属性,即deptno,dname,location
eg:
CREATE (m:Movie:Cinema:Film:Picture)
m是⼀个节点名
Movie, Cinema, Film, Picture是m节点的多个标签名称
//--关系
CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)
p1和profile1是节点名称和节点标签名称“From Node”
p2和Profile2是“To Node”的节点名称和节点标签名称
r1是关系名称
LIKES是⼀个关系标签名称
///////////////////where语句
MATCH (emp:Employee)
WHERE = 'Abc' OR = 'Xyz'
RETURN emp
//where⼦句创建关系
MATCH (cust:Customer),(cc:CreditCard)
WHERE cust.id = "1001" AND cc.id= "5001"
CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc) RETURN r
//--模糊
where Contains ‘⼩’
//=========。