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.name),e.sal,e.deptno //UPPER(大写)//SUBSTRING(e.name,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.name,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,cc.name 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,dc.name as name,
dc.valid_from as valid_from,dc.valid_to as valid_to
///////////////////Sorting
MATCH (emp:Employee)
RETURN emp.empid,emp.name,emp.salary,emp.deptno
ORDER BY emp.name
/////////////////////////////////////////////////////////////////////--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.name = "小明", 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 emp.name = 'Abc' OR emp.name = '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 n.name Contains ‘小’
//=========

 

posted @ 2019-05-23 19:10  A影子放風箏  阅读(367)  评论(1编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css