Neo4j CQL 簡單增刪改查命令
1.CQL簡介
CQL代表Cypher查詢語言,是neo4j的查詢語言。像Oracle數據庫有查詢語言SQL。
CQL:
它是Neo4j圖形數據庫的查詢語言。
它是一種聲明性模式匹配語言
它遵循SQL語法。
它的語法是非常簡單且人性化、可讀的格式。
Neo4j CQL
支持多個子句像在哪裏,順序等,以非常簡單的方式編寫非常複雜的查詢。
支持一些功能,如字符串,Aggregation等函數,它還支持一些關係功能。
1.1Neo4j CQL命令
1.2Neo4j CQL 函數
1.3Neo4j CQL數據類型
2.Create創建命令:
功能:
創建沒有屬性的節點
使用屬性創建節點
在沒有屬性的節點之間創建關係
使用屬性創建節點之間的關係
爲節點或關係創建單個或多個標籤
2.1創建一個沒有屬性的節點
語法 :
CREATE (<node-name>:<label-name>)
eg:CREATE (emp:Employee)
emp是一個節點名,Employee是節點emp的標籤名
下圖爲創建成功
2.2創建具有屬性的節點
語法:
CREATE (
<node-name>:<label-name>
{
<Property1-name>:<Property1-Value>
........
<Propertyn-name>:<Propertyn-Value>
}
)
eg:create (n:Person{name:“steve”,age:25})
n爲節點名,Person爲節點的標籤名,name、age是屬性名,屬性的值是“steve”、25。
注意 - 要定義字符串類型屬性值,我們需要使用單引號或雙引號。
下圖創建Person節點
2.3創建標籤
Label是Neo4j數據庫中的節點或關係的名稱或標識符。
create 可以爲節點創建一個或多個標籤、爲關係創建單個標籤
2.3.1創建單個標籤
CREATE (<node-name>:<label-name>)
eg:CREATE (google1:GooglePlusProfile)
google1是節點名,GooglePlusProfile是google1節點的標籤名
2.3.2創建多個標籤
CREATE (<node-name>:<label-name1>:<label-name2>.....:<label-namen>)
使用 “:”運算符來分隔節點名和標籤名,分隔多個標籤名
eg:CREATE (m:Movie:Cinema:Film:Picture)
上面例子爲節點m創建多個標籤名,Movie、Cinema、Film、Picture是節點的多個標籤名稱。
2.3.3創建單個關係標籤
CREATE (<node1-name>:<label1-name>)-
[(<relationship-name>:<relationship-label-name>)]
->(<node2-name>:<label2-name>)
eg:CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)
這裏 p1和Profile1是節點名稱和節點標籤名稱 ,p1是From Node
p2和Profile2 是To Node的節點名稱和節點標籤名稱
r1是關係名稱 ,LIKES是關係的標籤名稱
3.MATCH命令
功能:
從數據庫獲取有關節點和屬性的數據
從數據庫獲取有關節點,關係和屬性的數據
3.1Return命令作用:
檢索節點的某些屬性
檢索節點的所有屬性
檢索節點和關聯關係的某些屬性
檢索節點和關聯關係的所有屬性
單獨使用MATCH和RETURN會報語法錯誤。正確的使用方法是合併這兩個命令
MATCH RETURN命令語法:
MATCH Command
RETURN Command
eg:MATCH (n:Employee) RETURN n.name,n.deptno,n.sal
上面n爲節點名稱,Employee爲節點標籤名,name、deptno、sal爲節點的屬性名
運行結果圖如下:
3.2Neo4j 關係基礎
屬性圖模型的關係是定向的Noe4j主要有兩種類型。 單向關係、雙向關係。
如上圖所示:這裏的關係是從客戶–>信用卡的, Neo4jCQL使用類是類箭頭的標記創建兩個節點之間的關係,每個關係包含兩個節點:從節點、到節點。Customer是從節點,CreaditCard是到節點。
節點有兩種關係:外向關係、傳入關係。上圖關係是到客戶節點的“外向關係”,並且相同的關係是到信用卡節點的“到達關係”
4. delete刪除
4.1功能簡介
DELETE子句用來 刪除節點和刪除節點及相關節點和關係,通過使用此命令,我們可以從數據庫永久刪除節點及其關聯的屬性。
4.2刪除節點子句
DELETE <node-name-list>
可以使用逗號”,“來分隔節點名,從而刪除多個節點。
下面是刪除Employee節點,此操作爲永久刪除數據
MATCH (e: Employee) DELETE e
4.3DELETE節點和關係子句語法
DELETE <node1-name>,<node2-name>,<relationship-name>
eg:
MATCH (cc: CreditCard)-[rel]-(c:Customer)
DELETE cc,c,rel
用逗號(,)來分隔節點名稱和關係名稱。
5.REMOVE刪除
5.1功能簡介
從數據庫中永久刪除節點或關係的屬性或屬性列表
刪除節點或關係的標籤
刪除節點或關係的屬性
5.2 delete和remove命令之間的區別
delete刪除節點和關聯關係。
remove刪除標籤和屬性。
相似之處
這個兩個命令不能單獨使用
應該與match命令一起使用
REMOVE子句語法
REMOVE <property-name-list>
eg:match (n:Person) where n.name=“Mike” remove n.title
或 match (n:Person{name:‘Mike’}) remove n.title
上面是刪除節點的屬性,接下來說下刪除節點/關係的標籤
REMOVE //節點列表名用逗號分隔
eg:MATCH (m:Movie) REMOVE m:Picture
此命令刪除了m節點的Picture標籤
6.SET子句
向現有節點或關係添加新屬性,添加或更新屬性值
SET子句語法:
SET <property-name-list> //屬性列表用逗號分隔
eg: match (n:Person) where n.name=‘Mike’ set n.age=20
名字爲Mike的節點,添加或修改其age值爲20