天天看點

圖資料庫:neo4j:基本使用建立删除關系 

建立

(1)單獨建立Label:

CREATE (n:Label1)

create (:Label1 {site_code:"10002",name:"智聯招聘(Zhaopin)"})

(2)建立Label并且新增一個節點,這些節點包含一些屬性:

create(:newLabel{id:'',name:'學科研究',tag_name:'學科研究',skill_root:'',pos:'',isconcept:'1',tag_type:'文本标簽',skill_level:'',skilllevel_code:'',job_id:'',insert_time:'2020-04-10 10:52:54'})
           

(3)建立Label并且新增n個節點(批量資料導入)

通過本地csv檔案(資料)導入到資料庫中,label自動建立,并将csv中字段名作為label的各個屬性

LOAD CSV WITH HEADERS FROM "file:///tzb/recruit_websites/Label1.csv" AS row CREATE (n:Label1) SET n = row
LOAD CSV WITH HEADERS FROM "file:///tzb/recruit_websites/Label2.csv" AS row CREATE (n:Label2) SET n = row
LOAD CSV WITH HEADERS FROM "file:///tzb/recruit_websites/Label3.csv" AS row CREATE (n:Label3) SET n = row
           

csv資料示例:

指定字段名(屬性名) ,下面是資料示例

code,name,level,parent 
10000,招聘網站,1,0
10001,全國大型招聘網站,2,1
10002,專業招聘網站,2,1
10003,地方性網站,2,1
10004,一般性招聘網站,2,1
           

(4)給節點新增屬性(或修改屬性值)

MATCH (n:Label1) where n.name ='大學學曆' RETURN n LIMIT 25

(5)建立索引

CREATE INDEX ON :City(code)

==============================================================================

删除

(1)删除Label

MATCH (n:Label1) delete n

(2)删除節點

MATCH (n:Label1)  where n.name='工程副總'  delete n

(3)删除Label的關系

match (c1)-[t]->(c2:Label1) delete t

(4)删除Label之間的關系

match (c1:Label1)-[t]->(c2:Label2) delete t

(4)删除節點之間的關系

match (c1:Label1)-[t]->(c2:Label2) where c1.name='财務規則' and c2.name='國家财務' delete t

==============================================================================

關系

建立關系:

(1)建立Label之間的關聯關系

--Label1關聯Label2
MATCH (c1:Label1),(c2:Label2)
WHERE c1.code = c2.parent_code
CREATE (c1)-[r:下屬]->(c2) set r.name = '下屬'
           

(2)建立節點之間的關聯關系

match(c1:Label1),(c2:Label1) where c1.name='耗材' and c2.name='規定臨床試驗機關資料' CREATE (c1)-[r:相關技能]->(c2) set r.name='相關技能'

(3)建立節點之間的關聯關系(一對多,如)

Label1關聯Label2

MATCH (c1:Label1),(c2:Label2)

WHERE c1.jd Contains c2.name

CREATE (c1)-[r:技能]->(c2) set r.name='技能'

Label1關聯Label2

MATCH (c1:Label1),(c2:Label2)

WHERE c1.jd Contains c2.tag_name and toInt(c1.id) <70000

CREATE (c1)-[r:技能]->(c2) set r.name='技能'

==============================================================================

查詢

查詢節點:

MATCH (Label1) where n.name = '工程副總' RETURN n LIMIT 25

查詢關系:

查詢Label之間的關聯關系

match (c1:Label1)-[t]->(c2:Label2) return c1,t,c2

查詢某個label所有關系

match (c1)-[t]->(c2:Label1) return c1,t,c2

查詢節點之間的關聯關系

match (c1:Label1)-[t]->(c2:Label2) where c1.name='财務規則' and c2.name='國家财務'  return c1,t,c2 limit 10

檢視label有多少條資料

MATCH (n:Job) RETURN count(n)

檢視最小最大id

MATCH (n:Job) RETURN min(toInt(n.id))

MATCH (n:Job) RETURN max(toInt(n.id))

通過nodeId查詢唯一節點:

MATCH (m) where id(m)=12338735 RETURN m

==============================================================================

修改:

修改标簽:

MATCH (n:oldLabel) REMOVE n:oldLabel SET n:newLabel