Neo4j CQL基本使用

Neo4j用CQL作为查询语言

CQL 

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

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

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

Neo4j CQL基本使用_第1张图片

2.常用命令

  (1)CREATE

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

  创建节点

CREATE (:)

   eg:

    CREATE (emp:Employee)  

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

Neo4j CQL基本使用_第2张图片

    创建带有属性的节点

CREATE (
   :
   {     
      :
      ........
      :
   }
)

  eg:

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

    创建:

      一个标签,即“Dept”;

      一个节点,即“dept”;

      三个属性,即deptno,dname,location

Neo4j CQL基本使用_第3张图片

  创建关系

    • 单向关系
    • 双向关系
CREATE (:)-
    [(:)]
    ->(:)

  eg:

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

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

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

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

Neo4j CQL基本使用_第4张图片

 Neo4j CQL基本使用_第5张图片

  (2)MATCH和

    MATCH

    • 从数据库获取有关节点和属性的数据
    • 从数据库获取有关节点,关系和属性的数据
MATCH 
(
   :
)

   RETURN 

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

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

  MATCH + RETURN命令 

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

  eg:

    MATCH (dept:Dept) return dept

Neo4j CQL基本使用_第6张图片

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

Neo4j CQL基本使用_第7张图片

  (3)WHERE

  过滤MATCH查询的结果

WHERE  operator> 

    AND,OR,NOT,XOR

  

 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

Neo4j CQL基本使用_第8张图片

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

Neo4j CQL基本使用_第9张图片

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

Neo4j CQL基本使用_第10张图片

   使用WHERE创建关系

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

  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

Neo4j CQL基本使用_第11张图片

  (4)DELETE

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

  删除节点

DELETE 

  eg:

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

    MATCH (d: Dept) RETURN d

Neo4j CQL基本使用_第12张图片

  MATCH (d: Dept) DELETE d

Neo4j CQL基本使用_第13张图片

  删除节点和关系

DELETE ,,

  eg:

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

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

Neo4j CQL基本使用_第14张图片

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

Neo4j CQL基本使用_第15张图片

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

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

Neo4j CQL基本使用_第16张图片

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

 

转载于:https://www.cnblogs.com/baby123/p/11005066.html

你可能感兴趣的:(数据库)