Neo4j CQL基本使用

Neo4j用CQL做爲查詢語言node

CQL 數據庫

  • Neo4j圖形數據庫的查詢語言
  • 是一種聲明性模式匹配語言
  • 遵循SQL語法
  • 語法是很是簡單且人性化、可讀的格式

1.啓動服務,打開瀏覽器瀏覽器

  在數據瀏覽器中的美圓提示符下鍵入命令學習

2.經常使用命令spa

  (1)CREATE3d

    • 建立沒有屬性的節點
    • 使用屬性建立節點
    • 在沒有屬性的節點之間建立關係
    • 使用屬性建立節點之間的關係
    • 爲節點或關係建立單個或多個標籤

  建立節點code

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

   eg:blog

    CREATE (emp:Employee)  ip

    建立一個標籤和一個節點,在數據庫中建立一個帶有標籤名「Employee」的節點「emp」it

    建立帶有屬性的節點

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

還有不少命令,之後再繼續學習

相關文章
相關標籤/搜索