Neo4j用CQL作为查询语言

CQL 

  • Neo4j图形数据库的查询语言
  • 是一种声明性模式匹配语言
  • 遵循SQL语法
  • 语法是非常简单且人性化、可读的格式

1.启动服务,打开浏览器

  在数据浏览器中的美元提示符下键入命令

2.常用命令

  (1)CREATE

    • 创建没有属性的节点
    • 使用属性创建节点
    • 在没有属性的节点之间创建关系
    • 使用属性创建节点之间的关系
    • 为节点或关系创建单个或多个标签

  创建节点

CREATE (<node-name>:<label-name>)

  eg:

    CREATE (emp:Employee)  

    创建一个标签和一个节点,在数据库中创建一个带有标签名“Employee”的节点“emp”

    创建带有属性的节点

CREATE (
<node-name>:<label-name>
{
<Property1-name>:<Property1-Value>
........
<Propertyn-name>:<Propertyn-Value>
}
)

  eg:

    CREATE (dept:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" })

    创建:

      一个标签,即“Dept”;

      一个节点,即“dept”;

      三个属性,即deptno,dname,location

  创建关系

    • 单向关系
    • 双向关系
CREATE (<node1-name>:<label1-name>)-
[(<relationship-name>:<relationship-label-name>)]
->(<node2-name>:<label2-name>)

  eg:

  CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)

  From Node——节点名称 p1,节点标签名称profile1

  To Node——节点名称p2,节点标签名称Profile2

  r1是关系名称,LIKES是一个关系标签名称

  (2)MATCH和

    MATCH

    • 从数据库获取有关节点和属性的数据
    • 从数据库获取有关节点,关系和属性的数据
MATCH
(
<node-name>:<label-name>
)

   RETURN 

    • 检索节点的某些属性
    • 检索节点的所有属性
    • 检索节点和关联关系的某些属性
    • 检索节点和关联关系的所有属性
RETURN
<node-name>.<property1-name>,
........
<node-name>.<propertyn-name>

  不能单独使用MATCH或RETURN命令,结合起来从数据库检索数据

  MATCH + RETURN命令

    • 检索节点的某些属性
    • 检索节点的所有属性
    • 检索节点和关联关系的某些属性
    • 检索节点和关联关系的所有属性
MATCH Command
RETURN Command

  eg:

    MATCH (dept:Dept) return dept

    MATCH (dept: Dept) RETURN dept.deptno,dept.dname

  (3)WHERE

  过滤MATCH查询的结果

WHERE <condition> <boolean-operator> <condition>

  <boolean-operator>  AND,OR,NOT,XOR

  <condition>

<property-name> <comparison-operator> <value>

  <comparison-operator>  =,<>,<,>,<=,>=

  eg:

    CREATE (emp:Employee{id:1001,name:"Lokesh",sal:35000,deptno:10})

    CREATE (emp:Employee{id:1002,name:"abc",sal:28000,deptno:20})

    CREATE (emp:Employee{id:1003,name:"xyz",sal:35000,deptno:30})

    CREATE (emp:Employee{id:1004,name:"Mno",sal:32000,deptno:40})

    查询

    MATCH (emp:Employee) RETURN emp.id,emp.name,emp.salary,emp.deptno

  MATCH (emp:Employee) WHERE emp.name = 'abc' RETURN emp

  MATCH (emp:Employee) WHERE emp.name = 'abc' OR emp.name='xyz' RETURN emp.id,emp.name,emp.sal,emp.deptno

  使用WHERE创建关系

    • 创建两个现有节点之间的关系
    • 一次创建两个节点和它们之间的关系
    • 使用WHERE子句创建两个现有节点之间的关系
MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>)
WHERE <condition>
CREATE (<node1-label-name>)-[<relationship-label-name>:<relationship-name>
{<relationship-properties>}]->(<node2-label-name>)

  eg:

    CREATE (e:Customer{id:"1001",name:"Abc",dob:"01/10/1982"})

    CREATE (cc:CreditCard{id:"5001",number:"1234567890",cvv:"888",expiredate:"20/17"})

    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

  (4)DELETE

    • 删除节点
    • 删除节点及相关节点和关系

  删除节点

DELETE <node-name-list>

  eg:

    CREATE (dept:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" })

    MATCH (d: Dept) RETURN d

  MATCH (d: Dept) DELETE d

  删除节点和关系

DELETE <node1-name>,<node2-name>,<relationship-name>

  eg:

    CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)

    MATCH (p1:Profile1)-[r]-(p2:Profile2)RETURN p1,r,p2

  MATCH (p1:Profile1)-[r]-(p2:Profile2) DELETE p1,r,p2

  两个节点及其关联都被删除了

  MATCH (p1:Profile1)-[r]-(p2:Profile2) RETURN r

还有很多命令,以后再继续学习

Neo4j CQL基本使用的更多相关文章

  1. neo4j CQL 使用

    neo4j CQL 使用 1. create命令 CREATE (emp:Employee) #创建一个emp 员工标签 CREATE (dept:Dept) #部门标签 #Added 1 label ...

  2. Neo4j入门之中国电影票房排行浅析

    什么是Neo4j?   Neo4j是一个高性能的NoSQL图形数据库(Graph Database),它将结构化数据存储在网络上而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持 ...

  3. 史上最全面的Neo4j使用指南

    Neo4j图形数据库教程 Neo4j图形数据库教程 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章:安装 1.环境 2.下载 3.开启远程访问 4.测试 第三章:CQL 1 ...

  4. NEO4j简单入门

    Neo4j是: 一个开源 无Schema 没有SQL 图形数据库 图形数据库也称为图形数据库管理系统或GDBMS. Neo4j的官方网站:http://www.neo4j.org Neo4j的优点 它 ...

  5. 一文教你用 Neo4j 快速构建明星关系图谱

    更多有趣项目及代码见于:DesertsX/gulius-projects 前言 本文将带你用 neo4j 快速实现一个明星关系图谱,因为拖延的缘故,正好赶上又一年的4月1日,于是将文中的几个例子顺势改 ...

  6. 史上超全面的Neo4j使用指南

    Create by yster@foxmail.com 2018-7-10 我的博客:https://blog.csdn.net/yueshutong123 W3Cschool文档:https://w ...

  7. Neo4j图数据库从入门到精通

    目录 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章:安装 1.环境 2.下载 3.开启远程访问 4.启动 第三章:CQL 1.CQL简介 2.Neo4j CQL命令/条款 ...

  8. Neo4j图数据库从入门到精通(转)

    add by zhj: 转载时,目录没整理好,还会跳转到原文 其实RDB也可以存储多对多的关系,使用的是中间表,GDB使用的是边,RDB中的实体存储在数据表,而GDB存储在节点.两者使用的底层技术不同 ...

  9. 初识Neo4j

    Neo4j是一个世界领先的开源图形数据库. 它是由Neo技术使用Java语言完全开发的. Neo4j的优点 它很容易表示连接的数据 检索/遍历/导航更多的连接数据是非常容易和快速的 它非常容易地表示半 ...

随机推荐

  1. 微信小程序~用户转发 onShareAppMessage

    只有定义了此事件处理函数,右上角菜单才会显示“转发”按钮,在用户点击转发按钮的时候会调用,此事件需要return一个Object,包含title和path两个字段,用于自定义转发内容 代码使用onSh ...

  2. 次小生成树(lca)

    题目描述 原题来自:BeiJing 2010 组队赛 给定一张 N 个点 M 条边的无向图,求无向图的严格次小生成树. 设最小生成树的边权之和为 sum,严格次小生成树就是指边权之和大于 sum 的生 ...

  3. java处理异常的机制关键字为throw和throws

    在异常处理的过程中,throws和throw的区别是? throws:是在方法上对一个方法进行声明,而不进行处理,而是向上传,谁调用谁处理. throw:是在具体的抛出一个异常类型. throws的栗 ...

  4. 基于qemu和unicorn的Fuzz技术分析

    前言 本文主要介绍如果使用 qemu 和 unicorn 来搜集程序执行的覆盖率信息以及如何把搜集到的覆盖率信息反馈到 fuzzer 中辅助 fuzz 的进行. AFL Fork Server 为了后 ...

  5. 自动生成百度小程序sitemap.txt文件路径

    因为业务需要,需要在目前项目上开发一个百度小程序,百度智能小程序上线了,但是内容每天得推送,不可能一个小程序路径一个推送吧,因为小程序路径和项目路径不一致. 因为项目是用ThinkPHP开发的,在此附 ...

  6. 深度学习Keras框架笔记之激活函数详解

    激活函数也是神经网络中一个很重的部分.每一层的网络输出都要经过激活函数.比较常用的有linear,sigmoid,tanh,softmax等.Keras内置提供了很全的激活函数,包括像LeakyReL ...

  7. python的next()函数

    next(iterobject,defalt)函数的第一个参数是一个可迭代对象,第二个参数可以不写.不写的时候,如果可迭代对象的元素取出完毕,会返回StopIteration.如果第二个参数写一个其他 ...

  8. codeforces1276A As Simple as One and Two

    C.As Simple as One and Two A. As Simple as One and Two time limit per test 3 seconds memory limit pe ...

  9. Mscordacwks.dll/SOS.dll 调试归档

    找到个好东西 为什么要归档 此存档提供帮助,并可能提供对以下问题的答案 是否可以使WinDBG在符号存储中找到mscordacwks.dll?, Windbg需要不同版本的mscordacwks.dl ...

  10. mysql linux上安装使用

    安装启动 安装之前可以看下系统中有没有已经安装. 查看所有软件:dpkg -l 1.查看mysql安装的版本 mysql --version 2.mysql状态 service mysql statu ...