[关闭]
@EggGump 2018-01-29T16:07:57.000000Z 字数 1306 阅读 1250

neo4j 创建关系,多标签,where,delete,remove,set,match,return,create,merge,union,sorting,limit,skip


  • create创建多标签
    CREATE (m:Movie:Cinema:Film:Picture)
    m:节点名,其他4个都是标签名

  • 单个标签到关系
    CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)
    p1,p2:节点名
    Profile1,Profile2:节点标签名
    r1:关系名
    LIKES:关系标签名

  • where
    MATCH (emp:Employee)
    WHERE emp.name = 'Abc' OR emp.name = 'Xyz'
    RETURN emp
    另一个例子
    MATCH (emp:Employee)
    WHERE emp.name = 'Abc' OR emp.name = 'Xyz'
    RETURN emp

运算符 功能
<> 不等于
AND,OR,NOT
XOR 异或
  • delete
    删除节点 MATCH (e: Employee) DELETE e
    删除节点和关系:
    MATCH
    (cust:CreditCard)-[r]-(c:Customer)
    DELETE cust,c,r
  • remove 用于删除节点和关系的属性
    选择ID:122的book,并移除它的price属性
    MATCH (book { id:122 })
    REMOVE book.price
    RETURN book
    移除标签:这个节点首先是有很多标签的。
    match(m:Movie)
    remove m:Picture
    return m
  • set添加或修改属性
    match(dc:DebitCard) set dc.name = 'fuck' return dc
    没有就添加name属性,有就修改成fuck
  • sorting:排序
    match(emp:employee)
    return emp.empname,emp.empid,emp.empsalary
    order by emp.empid
    降序:
    match(emp:employee)
    return emp.empname,emp.empid,emp.empsalary
    order by emp.empid DESC
  • union语句
    match(emp:employee) return emp.empid as id,emp.empname as name
    union
    match(c:Creditcard) return c.cid as id,c.ctype as name
    合并的数据必须要有相同的列名,相同的数据类型
  • limite 和 skip
    MATCH (emp:Employee)
    RETURN emp
    SKIP 2
    skip语句,跳过前两个
    MATCH (emp:Employee)
    RETURN emp
    LIMIT 2
    limit语句,只显示前两个
  • merge
    CREATE (gp1:GoogleProfile1 {Id: 201401, Name:"Apple"})
    当该语句执行两次时,会向数据库中添加两个一毛一样的记录
    MERGE (gp2:GoogleProfile2{ Id: 201402,Name:"Nokia"})
    当使用MERGE时,它会选检查数据库,如果有一毛一样的,且可用,那么就不添加。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注