溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Cypher語言學習筆記

發布時間:2020-08-19 07:20:26 來源:網絡 閱讀:1991 作者:loverofvenus 欄目:編程語言

一、簡介


    Cypher語言是在學習Neo4j時用到數據庫操作語言(DML),涵蓋對圖數據的增刪改查,跟SQL有較大不同,本文僅記錄一些要點備查


二、詳述


    1、基本概念

        Neo4j中不存在表的概念,只有兩類:節點(Node)和關聯(Relation),可以簡單理解為圖里面的點和邊,在數據查詢中,節點一般用小括號(),關聯用中括號[]。當然也隱含路徑的概念,是用節點和關聯表示的,如:(a)-[r]->(b),表示一條從節點a經關聯r到節點b的路徑

    2、創建語句

        1)創建節點

            create (a) 創建空節點

            create (a:Person) 創建標簽(可以理解為類)為Person的節點

            create (a:Person {name:'Kaine',age:28}) 創建標簽為Person,屬性name值為Kaine,屬性age值為28的節點

        2)創建關聯

            match (a),(b)

            where a.name='Kaine' and b.name='Sharon'

            create (a)-[r]->(b)

            創建a節點和b節點的路徑,此時變量r即代表關聯,它也可以有標簽

    2、查詢關鍵字

        match:用來匹配一定模式,可以是簡單的節點、關聯,也可以是復雜的路徑

        where:用來限定條件,一般是限定match中的出現變量的屬性

        return:返回結果

        start:開始節點,一般用于有索引的節點或者關聯

    3、基本查詢樣式

        match ... where ... return ...

        如果match有多個對象,用逗號隔開;

        如果where有多個條件,用and連接;

        如果return有多個變量,用逗號隔開

    4、查詢舉例

        match (n) return n 查詢所有節點及關聯

        match (a)-[r]->(b) where a.name='Kaine' return a,b 查詢屬性name的值是Kaine的節點,及其所有關聯節點

        match (a)-[*1..3]->(b) where a.name='Kaine' return a,b 查詢屬性name值是Kaine的節點,及其所有距離為1到3的關聯節點,

        match (a)-[*2]->(b) where a.name='Kaine' and not (a)-[*1]->(b) return a,b 查詢屬性name的值是Kaine的節點,及其所有距離為2并且去除距離為1的節點。(在計算好友的好友時會用到,即如果a、b、c三個人都認識,如果僅計算跟a距離為2的人的時候會把b、c也算上,因為a->b->c,或者a->c->b都是通路)

        注:關聯的中括號內數字的含義

            n 距離為n

            ..n 最大距離為n

            n.. 最小距離為n

            m..n 距離在m到n之間


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女