• neo4j-(2)-操作


    https://www.w3cschool.cn/neo4j/neo4j_cql_create_node.html

    1. 标签(Label)

    Neo4j中,一个节点可以有一个以上的标签,从现实世界的角度去看,一个标签可以认为节点的某个类别,比如BOOKMOVIE等等。

    2. 节点(Node)

    节点是指一个实实在在的对象,这个对象可以有好多的标签,表示对象的种类,也可以有好多的属性,描述其特征,节点与节点之间还可以形成多个有方向(或者没有方向)的关系。

    3. 关系(Relationship)

    用来描述节点与节点之间的关系,这也是图数据与与普通数据库最大的区别,正是因为有这些关系的存在,才可以描述那些我们普通行列数据库所很难表示的网状关系,比如我们复杂的人际关系网,所谓的六度理论,就可以很方便的用图数据库进行模拟,比如我们大脑神经元之间的连接方式,都是一张复杂的网。

    有一点需要重点注意,关系可以拥有属性。

    4. 属性(Property)

    描述节点的特性,采用的是Key-Value结构,可以随意设定来描述节点的特征。

    二、查询语法(CQL)

    序号 关键字 关键字作用
    1 create 创建
    2 match 匹配
    3 return 加载
    4 where 过滤检索条件
    5 delete 删除节点和关系
    6 remove 删除节点和关系的属性
    7 order by 排序
    8 set 添加或更新属性

    数据类型:

    S.No. CQL数据类型 用法
    1. boolean 用于表示布尔文字:true,false。
    2. byte 用于表示8位整数。
    3. short 用于表示16位整数。
    4. int 用于表示32位整数。
    5. long 用于表示64位整数。
    6. float I用于表示32位浮点数。
    7. double 用于表示64位浮点数。
    8. char 用于表示16位字符。
    9. String 用于表示字符串。

    1. 创建图

    # 创建两个节点,一个子节点(Mask),一个父节点(Old_mask),他们之间是属于父子关系
    # 其中create表示新建
    # p 表示这个节点的别名
    # PERSON 表示节点p的标签PERSON的属性
    # {} 大括号中间的键值对,表示p这个节点作为PERSON这个标签类别所拥有的属性
    # -[r:SON_OF]-> 表示节点p指向节点f,他们之间的关系是SON_OF,这个关系的别名是r,r可以拥有属于自己的属性
    # return 表示执行这段语句之后,需要返回的对象,return p,r,f 表示返回 节点p,节点f,以及他们之间的关系r
    
    create(p:PERSON {name:"爷爷",age:80,heigh:180,weight:80})-[r:爸爸]->(f:PERSON {name:"爸爸",age:50,heigh:160,weight:60}) return p,r,f
    
    

    2. 查找指定节点、指定属性、指定关系的节点、关系

    # MATCH 匹配命令 
    # return 后面的别名p还可以利用as 设置指定的返回值名称,如 p as userName 
    match (p:PERSON {name:"Mask"})-[r]-(n) return p,r,n
    

    3. 对查找结果进行排序order by,并限制返回条数 limit

    order by关键字与SQL里面是一样的操作,后面跟上需要根据排序的关键字,limit的操作是指定输出前几条

    where关键字类似于SQL里面的where关键字,可以通过运算符== >= ...来过滤一些查询条件

    # 这里利用order by来指定返回按照Person.name来排序
    # limit 表示只返回前3条数据
    match(p:Person) return p order by p.name limit 3
    

    4. 删除节点delete命令

    删除节点的操作也是通过dlete来操作,如果被删除的节点存在Relationship,那么单独删除该节点的操作会不成功,所以如果想删除一个已经存在关系的节点,需要同时将关系进行删除。

    # 删除指定条件的节点
    # 先通过匹配关键字match找到匹配元素,然后通过delete关键字指定删除
    match(p:PERSON {name:"teacher_wange"}) delete p
    
    # 删除节点和节点相关的关系
    match (p:Person {name:"lisi"})-[r]-() delete p,r
    

    5. 删除属性remove命令

    remove命令是用来删除节点或者关系的属性

    6. neo4j的字符串函数

    `upper`,`lower`,`substring`,`replac`四种字符串的操作,其中`upper`与`lower`在将来的版本中会被修改为`toupper`/`tolower
    

    7. 聚合函数AGGREGATION

    常用的聚合函数有COUNTMAXMINAVGSUM等五种。

    8. 关系函数

    序号 函数名 函数功能描述
    1 STARTNODE 查找关系的起始点
    2 ENDNODE 查找关系的终点
    3 ID 查找关系的ID
    4 TYPE 查找关系的类型,也就是我们在图表中看到的名称
    # 先获取关系,然后通过关系函数来获取关系的id、type、起始节点、终止节点等等信息
    
    match ()-[r:SON_OF]-() return startnode(r).name as start_node, endnode(r).name as end_node,id(r) as relationship_id ,type(r) as realtionship_type
    

    例子

    创建爷爷,爸爸,儿子关系

    创建节点
    create(p:PERSON {name:"爷爷",age:80,heigh:180,weight:80}) return p
    create(f:PERSON {name:"爸爸",age:50,heigh:160,weight:60}) return f
    create(f:PERSON {name:"儿子",age:50,heigh:160,weight:60}) return s
    create(p:PERSON {name:"妈妈",age:50,heigh:180,weight:80}) return p
    create(p:PERSON {name:"妹妹",age:10,heigh:180,weight:80}) return p
    
    创建关系
    MATCH (p:PERSON{name:'儿子'}),(f:PERSON{name:'爸爸'})  CREATE (p)-[r:儿子 ]->(f)
    MATCH (p:PERSON{name:'爸爸'}),(f:PERSON{name:'爷爷'})  CREATE (p)-[r:儿子 ]->(f)
    MATCH (p:PERSON{name:'爸爸'}),(f:PERSON{name:'妈妈'})  CREATE (p)-[r:丈夫 ]->(f)
    MATCH (p:PERSON{name:'妹妹'}),(f:PERSON{name:'妈妈'})  CREATE (p)-[r:女儿 ]->(f)
    MATCH (p:PERSON{name:'妹妹'}),(f:PERSON{name:'爸爸'})  CREATE (p)-[r:女儿 ]->(f)
    MATCH (p:PERSON{name:'儿子'}),(f:PERSON{name:'妈妈'})  CREATE (p)-[r:儿子 ]->(f)
    MATCH (p:PERSON{name:'儿子'}),(f:PERSON{name:'爷爷'})  CREATE (p)-[r:孙子 ]->(f)
    MATCH (p:PERSON{name:'妹妹'}),(f:PERSON{name:'爷爷'})  CREATE (p)-[r:孙子 ]->(f)
    
    match(p:PERSON) return p
    
    删除
    match (p:PERSON {name:"妈妈"})-[r]-() delete p,r
    
  • 相关阅读:
    给Firefox添加京东网(360buy)购物搜索
    zt 『职场天地』 [职业经历]我在跨国公司10年的日子
    笔记 UMAI:一种标识媒体资产对象的方法
    笔记 基于流媒体交换网的流媒体网络文件系统(杨景2006)
    笔记软件试用2
    1月20日,奥巴马宣誓就职,CDN的决战战场
    steps2>myAction
    Spring AOP03
    Oracle内置函数02
    steps2>AbstractBaseAction
  • 原文地址:https://www.cnblogs.com/weijiqian/p/14840779.html
Copyright © 2020-2023  润新知