• Cypher 入门笔记


    CQL

    • CQL代表Cypher查询语言,Neo4j具有CQL作为查询语言。

    Neo4j CQL命令/条款

    常用的Neo4j CQL命令/条款如下:

    S.No. CQL命令/条 用法
    1 CREATE 创建 创建节点,关系和属性
    2 MATCH 匹配 检索有关节点,关系和属性数据
    3 RETURN 返回 返回查询结果
    4 WHERE 哪里 提供条件过滤检索数据
    5 DELETE 删除 删除节点和关系
    6 REMOVE 移除 删除节点和关系的属性
    7 ORDER BY 以…排序 排序检索数据
    8 SET 组 添加或更新标签

    Neo4j CQL 函数

    以下是常用的Neo4j CQL函数:

    S.No. 定制列表功能 用法
    1 String 字符串 它们用于使用String字面量。
    2 Aggregation 聚合 它们用于对CQL查询结果执行一些聚合操作。
    3 Relationship 关系 他们用于获取关系的细节,如startnode,endnode等

    CREATE + MATCH

    ## 创建节点
    CREATE (n1:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" })
    RETURN n1
    
    ## 查询
    # 查询Employee标签下 id=123,name="Lokesh"的节点
    MATCH (p:Employee {id:123,name:"Lokesh"}) 
    RETURN p    ## 可以用p.id, p.name来限制返回条件
    
    ## 创建没有属性的关系与现有节点
    MATCH (e:Customer),(cc:CreditCard) 
    CREATE (e)-[r:DO_SHOPPING_WITH ]->(cc) 
    RETURN r
    
    ## 创建与现有节点的属性的关系
    MATCH (cust:Customer),(cc:CreditCard) 
    CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc) 
    RETURN r
    
    ## 创建新节点无属性关系
    CREATE (fb1:FaceBookProfile1)-[like:LIKES]->(fb2:FaceBookProfile2) 
    RETURN like
    
    ## 创建新节点有属性关系
    CREATE (video1:YoutubeVideo1{title:"Action Movie1",updated_by:"Abc",uploaded_date:"10/10/2010"})
    -[movie:ACTION_MOVIES{rating:1}]->
    (video2:YoutubeVideo2{title:"Action Movie2",updated_by:"Xyz",uploaded_date:"12/12/2012"})
     RETURN movie
     
     ## 创建单/多个标签到节点
    CREATE (m1:Movie)
    CREATE (m1:Movie:Cinema:Film:Picture)
    

    DELETE

    • 删除节点
    • 删除节点及相关节点和关系。
    # 删除所有节点和关系
    match (n) detach delete n
    
    ## 删除指定节点与关系
    MATCH (cc: CreditCard)-[rel]-(c:Customer) 
    DELETE cc,c,rel
    
    

    REMOVE

    • 删除属性or标签
    ## 删除某一属性
    MATCH (book { id:122 })
    REMOVE book.price
    RETURN book
    
    ## 删除某一标签
    MATCH (m:Movie) 
    REMOVE m:Picture
    
    

    SET

    • 向现有节点或关系添加新属性
    MATCH (book:Book)
    SET book.title = 'superstar'
    RETURN book
    

    ORDER BY

    • 对MATCH查询返回的结果进行排序,默认情况下,它按升序对行进行排序。 如果我们要按降序对它们进行排序,我们需要使用DESC子句。
    MATCH (emp:Employee)
    RETURN emp.empid,emp.name,emp.salary,emp.deptno
    ORDER BY emp.name
    

    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
    

    其他未整理但CQL相关

    • 字符串函数
    • 关系函数
    • AGGREGATION聚合
    • 索引
    • 约束
    • JAVA API
    • Spring DATA Neo4j (ORM)

    本文首发于:https://www.wujunchao.top/?p=370

    一半是现实,一半是梦想~ 一念花开,一念花落~
  • 相关阅读:
    第12组 Alpha事后诸葛亮
    第12组 Alpha冲刺(6/6)
    第12组 Alpha冲刺(5/6)
    2019 SDN上机第4次作业
    2019 SDN阅读作业
    第12组 Alpha冲刺(4/6)
    第12组 Alpha冲刺(3/6)
    第12组 Alpha冲刺(2/6)
    2019 SDN上机第3次作业
    第10组 Alpha冲刺(4/6)
  • 原文地址:https://www.cnblogs.com/wujunchao/p/15740053.html
Copyright © 2020-2023  润新知