Neo4j常用命令

常用命令

create

  1. 创建没有属性的节点

    create (nodeName:labelName)

    sql 复制代码
    create (user:User)
  2. 创建带属性的节点

    create (nodeName:labelName {propName:propValue})

    sql 复制代码
    create (user:User {name: '张三', age: 20})
  3. 在没有属性的节点之间创建关系

    见关系部分

  4. 使用属性创建节点之间的关系

    见关系部分

  5. 为节点或关系创建单个或多个标签

    create (nodeName:labelName1:labelName2)

    sql 复制代码
    create (user:User1:User2:User3)

match & return

复制代码
mathch和return都不能单独使用,return必须搭配match使用,match必须搭配return、update、delete使用
  1. 检索节点的某些属性

    sql 复制代码
    match (u:User) return u.name, u.age
  2. 检索节点的所有属性

    sql 复制代码
    match (u:User) return u
  3. 按属性查询

    sql 复制代码
    # 查询id值为1007的User节点
    match (u:User {id:1007}) return u
  4. 检索节点和关联关系的某些属性

  5. 检索节点和关联关系的所有属性

  6. 查询多个节点的关系

  7. 查询多个节点的数据

    sql 复制代码
    match (u:User),(a:Account) where u.id = 1001 and a.id = 20241212001 return u,a

where子句

语法结构:WHERE <condition> <boolean-operator> <condition>

set

复制代码
现有节点添加新属性和值
现有节点更新属性值
  1. 添加属性

    sql 复制代码
    match (u:User) set u.gender = '男'
  2. 修改属性

    sql 复制代码
    match (u:User) set u.age = 19
  3. 搭配where条件,不指定where条件会更新所有数据

    sql 复制代码
    match (u:User) where u.id=1001 set u.address = 'wuhan'

delete

  1. 删除没有关系的节点

    sql 复制代码
    match(u:User) delete u
  2. 删除存在关系的节点detach

    sql 复制代码
    match(u:User) detach delete u
  3. 删除所有节点

    sql 复制代码
    match(u:User) delete u
    match(u:User) detach delete u
  4. 搭配where,不指定where条件会删除所有数据

    sql 复制代码
    match(u:User) where u.id = 1001 detach delete u

remove

  1. 删除属性

    sql 复制代码
    match (u:User) remove u.name
  2. 删除标签

    sql 复制代码
    match (u:User) remove u:User
  3. 搭配where

    sql 复制代码
    # 删除属性
    match (u:User) where u.id=1004 remove u:age
    # 删除标签
    match (u:User) where u.id=1004 remove u:User

order by

  1. 升序(默认)

    sql 复制代码
    match (u:User) where u.id > 1 return u order by u.age
  2. 降序

    sql 复制代码
    match (u:User) where u.id > 1 return u order by u.age desc

skip & limt

  1. skip

    sql 复制代码
    match (u:User) where u.id > 1 return u skip 2
  2. limit

    sql 复制代码
    match (u:User) where u.id > 1 return u limit 1
  3. skip和limit可以实现分页

    sql 复制代码
    match (u:User) where u.id > 1 return u skip 2 limit 1
  4. match & where & order by & skip & limit组合

    sql 复制代码
    match (u:User) where u.id > 1 return u order by u.age skip 1 limit 2

union

复制代码
限制:结果列类型和来自两组结果的名称必须匹配,这意味着列名称应该相同,列的数据类型应该相同。
  1. 语法

    sql 复制代码
    # union
    match (u:User) return u.name as name,u.age as age 
    union
    match (s:Student) return s.name as name, s.age as age
    
    # union all
    match (u:User) return u.name as name,u.age as age 
    union
    match (s:Student) return s.name as name, s.age as age

merge

  1. 创建数据

    sql 复制代码
    # create: Added 1 label, created 1 node, completed after 3 ms.
    create (user:User) 
    # merge: no changes, no records
    merge (user:User)
    
    # 执行两次创建两条数据
    create (user:User {name:'xxx', age:18})
    create (user:User {name:'xxx', age:18})
    #执行两次只创建出了一条数据
    merge (user:User {name:'yyy', age:18})
    merge (user:User {name:'yyy', age:18})
  2. 检索数据

  3. create的区别:

    • create可以创建出没有属性的节点,merge不会创建
    • create可以创建相同属性的节点,merge不会创建重复节点

null & in

关系

复制代码
create (startNodeName:startLabelName) - [relationNodeName:relationLabelName {relationPropName:relationPropValue}] -> (endNodeName:endLabelName)
  1. 在两个现有节点之间创建无属性的关系

  2. 在两个现有节点之间创建有属性的关系

  3. 在两个新节点之间创建无属性的关系

  4. 在两个新节点之间创建有属性的关系

  5. 在具有WHERE子句的两个退出节点之间创建/不使用属性的关系

    sql 复制代码
    match (u:User),(a:Account) where u.id = 1001 and a.id = 20241212001 create (u)-[r1:账号余额]->(a)

CQL函数

  1. 字符串函数

    • upper
    sql 复制代码
    match (user:User) return upper(user.name)
    • lower
    sql 复制代码
    match (user:User) return lower(user.name)
    • substring
    sql 复制代码
    match (user:User) return substring(user.name,1,2)
    • replace
    sql 复制代码
    match (user:User) return replace(user.name,'zha','123')
  2. 聚合函数
    count & max & min & sun & avg

    sql 复制代码
    match (u:User) return count(u.age), max(u.age), min(u.age), sum(u.age), avg(u.age)
  3. 关系函数
    startnode & endnode & id & type

    sql 复制代码
    match (u:User) -[r:r1]->(a:User) return startnode(r),endnode(r),id(r),type(r)
相关推荐
TopGames17 小时前
〖Unity GPU粒子插件〗ParticleSystem的终极性能优化方案 十倍百倍的显著提升 现有特效转GPU粒子 高性能特效方案
java·开发语言
ZC跨境爬虫17 小时前
跟着 MDN 学 HTML day_36:(深入理解 Comment 接口与 DOM 注释节点)
前端·javascript·ui·html·音视频·视频编解码
Chase_______17 小时前
计算机数据存储全解:从底层进制转换到存储介质演进
java·开发语言·python
石小石Orz17 小时前
Harness Engineering 到底是什么?概念、实战与争议,一次全部讲清楚
前端·后端
悠哉摸鱼大王17 小时前
cesium学习(三)-3d tiles
前端·cesium
前端那点事17 小时前
Vue3自定义Hooks保姆级教程!从原理到企业级实战,告别混乱代码
前端·vue.js
前端那点事17 小时前
别再乱用Vue3响应式!ref、reactive、toRef、toRefs完整区别+企业级落地实战
前端·vue.js
yingyima17 小时前
Base64 编码解码实战:业务场景下的高效应用
前端
网络工程小王17 小时前
【LangGraph 子图(Subgraph)详解】学习笔记
java·服务器·数据库·人工智能·langchain
悠哉摸鱼大王17 小时前
cesium学习(五)-Primitive
前端·cesium