Neo4j 備忘單,包含入門(mén)資源和有關(guān)如何使用 Cypher 查詢(xún)數(shù)據(jù)庫(kù)的信息。
Neo4j 是一個(gè)圖數(shù)據(jù)庫(kù),由通過(guò)關(guān)系連接在一起的節(jié)點(diǎn)組成。如果您有一個(gè)高度連接的數(shù)據(jù)集或有許多連接的查詢(xún),您可能會(huì)考慮使用 Graph 數(shù)據(jù)庫(kù)。
節(jié)點(diǎn) | 節(jié)點(diǎn)通常用于表示數(shù)據(jù)中的實(shí)體或事物。例如,一個(gè)人或電影 |
關(guān)系 | 關(guān)系用于將兩個(gè)節(jié)點(diǎn)連接在一起并將數(shù)據(jù)組織成結(jié)構(gòu)。例如,一個(gè)人演了一部電影。關(guān)系具有類(lèi)型和方向,盡管在查詢(xún)時(shí)可以忽略方向。 |
標(biāo)簽 | 標(biāo)簽用于將節(jié)點(diǎn)分組。例如,一個(gè)人可能有Person 和Actor 標(biāo)簽。 |
關(guān)系類(lèi)型 | 每個(gè)關(guān)系都有一個(gè)類(lèi)型。關(guān)系允許您探索圖形的較小部分。 |
特性 | 節(jié)點(diǎn)和關(guān)系都可以針對(duì)它們?cè)O(shè)置屬性。屬性是名稱(chēng)-值對(duì)。 |
[USE]
[MATCH WHERE]
[OPTIONAL MATCH WHERE]
[WITH [ORDER BY] [SKIP] [LIMIT]]
RETURN [ORDER BY] [SKIP] [LIMIT]
[USE]
(CREATE | MERGE)*
[SET|DELETE|REMOVE|FOREACH]*
[RETURN [ORDER BY] [SKIP] [LIMIT]]
[USE]
[MATCH WHERE]
[OPTIONAL MATCH WHERE]
[WITH [ORDER BY] [SKIP] [LIMIT]]
(CREATE | MERGE)*
[SET|DELETE|REMOVE|FOREACH]*
[RETURN [ORDER BY] [SKIP] [LIMIT]]
MATCH (n:Person)-[:KNOWS]->(m:Person)
WHERE n.name = 'Alice'
節(jié)點(diǎn)模式可以包含標(biāo)簽和屬性。
MATCH (n)-->(m)
在 MATCH 中可以使用任何模式。
MATCH (n {name: 'Alice'})-->(m)
具有節(jié)點(diǎn)屬性的模式。
MATCH p = (n)-->(m)
為 p 分配路徑。
OPTIONAL MATCH (n)-[r]->(m)
可選模式:空值將用于缺失的部分。
WHERE n.property <> $value
使用謂語(yǔ)進(jìn)行過(guò)濾。請(qǐng)注意,WHERE 始終是 MATCH、OPTIONAL MATCH 或 WITH 子句的一部分。將它放在查詢(xún)中的不同子句之后會(huì)改變它的作用。
WHERE EXISTS {
MATCH (n)-->(m) WHERE n.age = m.age
}
使用存在子查詢(xún)進(jìn)行過(guò)濾。
RETURN *
返回所有變量的值。
RETURN n AS columnName
對(duì)結(jié)果列名稱(chēng)使用別名。
RETURN DISTINCT n
返回唯一行。
ORDER BY n.property
對(duì)結(jié)果進(jìn)行排序。
ORDER BY n.property DESC
按降序?qū)Y(jié)果進(jìn)行排序。
SKIP $skipNumber
跳過(guò)一些結(jié)果。
LIMIT $limitNumber
限制結(jié)果的數(shù)量。
SKIP $skipNumber LIMIT $limitNumber
跳過(guò)頂部的結(jié)果并限制結(jié)果數(shù)量。
RETURN count(*)
匹配行數(shù)。有關(guān)更多信息,請(qǐng)參閱聚合函數(shù)。
MATCH (user)-[:FRIEND]-(friend)
WHERE user.name = $name
WITH user, count(friend) AS friends
WHERE friends > 10
RETURN user
WITH 語(yǔ)法類(lèi)似于 RETURN。它顯式地分離查詢(xún)部分,允許您聲明哪些變量要轉(zhuǎn)移到下一部分。
MATCH (user)-[:FRIEND]-(friend)
WITH user, count(friend) AS friends
ORDER BY friends DESC
SKIP 1
LIMIT 3
RETURN user
ORDER BY、SKIP 和 LIMIT 也可以與 WITH 一起使用。
MATCH (a)-[:KNOWS]->(b)
RETURN b.name
UNION
MATCH (a)-[:LOVES]->(b)
RETURN b.name
返回所有查詢(xún)結(jié)果的不同聯(lián)合。結(jié)果列類(lèi)型和名稱(chēng)必須匹配。
MATCH (a)-[:KNOWS]->(b)
RETURN b.name
UNION ALL
MATCH (a)-[:LOVES]->(b)
RETURN b.name
返回所有查詢(xún)結(jié)果的并集,包括重復(fù)的行。
CREATE (n {name: $value})
創(chuàng)建具有給定屬性的節(jié)點(diǎn)。
CREATE (n $map)
創(chuàng)建具有給定屬性的節(jié)點(diǎn)。
UNWIND $listOfMaps AS properties
CREATE (n) SET n = properties
創(chuàng)建具有給定屬性的節(jié)點(diǎn)。
CREATE (n)-[r:KNOWS]->(m)
創(chuàng)建與給定類(lèi)型和方向的關(guān)系;給它綁定一個(gè)變量。
CREATE (n)-[:LOVES {since: $value}]->(m)
創(chuàng)建具有給定類(lèi)型、方向和屬性的關(guān)系。
SET n.property1 = $value1,
n.property2 = $value2
更新或創(chuàng)建屬性。
SET n = $map
設(shè)置所有屬性。這將刪除任何現(xiàn)有屬性。
SET n += $map
添加和更新屬性,同時(shí)保留現(xiàn)有屬性。
SET n:Person
將標(biāo)簽 Person 添加到節(jié)點(diǎn)。
MERGE (n:Person {name: $value})
ON CREATE SET n.created = timestamp()
ON MATCH SET
n.counter = coalesce(n.counter, 0) + 1,
n.accessTime = timestamp()
匹配一個(gè)模式,如果它不存在則創(chuàng)建它。使用 ON CREATE 和 ON MATCH 進(jìn)行條件更新。
MATCH (a:Person {name: $value1}),
(b:Person {name: $value2})
MERGE (a)-[r:LOVES]->(b)
MERGE 查找或創(chuàng)建節(jié)點(diǎn)之間的關(guān)系。
MATCH (a:Person {name: $value1})
MERGE
(a)-[r:KNOWS]->(b:Person {name: $value3})
MERGE 查找或創(chuàng)建附加到節(jié)點(diǎn)的路徑。
DELETE n, r
刪除一個(gè)節(jié)點(diǎn)和一個(gè)關(guān)系。
DETACH DELETE n
刪除一個(gè)節(jié)點(diǎn)和連接到它的所有關(guān)系。
MATCH (n)
DETACH DELETE n
從數(shù)據(jù)庫(kù)中刪除所有節(jié)點(diǎn)和關(guān)系。
REMOVE n:Person
從 n 中移除標(biāo)簽。
REMOVE n.property
移除一個(gè)屬性。
FOREACH (r IN relationships(path) |
SET r.marked = true)
對(duì)路徑中的每個(gè)關(guān)系執(zhí)行變異操作。
FOREACH (value IN coll |
CREATE (:Person {name: value}))
對(duì)列表中的每個(gè)元素執(zhí)行變異操作。
CALL {
MATCH (p:Person)-[:FRIEND_OF]->(other:Person) RETURN p, other
UNION
MATCH (p:Child)-[:CHILD_OF]->(other:Parent) RETURN p, other
}
這將調(diào)用具有兩個(gè)聯(lián)合部分的子查詢(xún)。之后可以對(duì)子查詢(xún)的結(jié)果進(jìn)行后處理。
CALL db.labels() YIELD label
這顯示了對(duì)內(nèi)置過(guò)程 db.labels 的獨(dú)立調(diào)用,以列出數(shù)據(jù)庫(kù)中使用的所有標(biāo)簽。請(qǐng)注意,必需的過(guò)程參數(shù)在過(guò)程名稱(chēng)后的方括號(hào)中明確給出。
CALL db.labels() YIELD *
獨(dú)立調(diào)用可以使用 YIELD * 返回所有列。
CALL java.stored.procedureWithArgs
獨(dú)立調(diào)用可以省略 YIELD 并且還通過(guò)語(yǔ)句參數(shù)隱式提供參數(shù),例如,需要一個(gè)參數(shù)輸入的獨(dú)立調(diào)用可以通過(guò)傳遞參數(shù)映射 {input: 'foo'} 來(lái)運(yùn)行。
CALL db.labels() YIELD label
RETURN count(label) AS count
在較大的查詢(xún)中調(diào)用內(nèi)置過(guò)程 db.labels 以計(jì)算數(shù)據(jù)庫(kù)中使用的所有標(biāo)簽。在更大的查詢(xún)中調(diào)用總是需要使用 YIELD 顯式傳遞參數(shù)和命名結(jié)果。
LOAD CSV FROM
'https://neo4j.com/docs/cypher-refcard/4.3/csv/artists.csv' AS line
CREATE (:Artist {name: line[1], year: toInteger(line[2])})
從 CSV 文件加載數(shù)據(jù)并創(chuàng)建節(jié)點(diǎn)。
LOAD CSV WITH HEADERS FROM
'https://neo4j.com/docs/cypher-refcard/4.3/csv/artists-with-headers.csv' AS line
CREATE (:Artist {name: line.Name, year: toInteger(line.Year)})
加載帶有標(biāo)題的 CSV 數(shù)據(jù)。
USING PERIODIC COMMIT 500
LOAD CSV WITH HEADERS FROM
'https://neo4j.com/docs/cypher-refcard/4.3/csv/artists-with-headers.csv' AS line
CREATE (:Artist {name: line.Name, year: toInteger(line.Year)})
導(dǎo)入大量數(shù)據(jù)時(shí),每 500 行后提交當(dāng)前事務(wù)。
LOAD CSV FROM
'https://neo4j.com/docs/cypher-refcard/4.3/csv/artists-fieldterminator.csv'
AS line FIELDTERMINATOR ';'
CREATE (:Artist {name: line[1], year: toInteger(line[2])})
使用不同的字段終止符,而不是默認(rèn)的逗號(hào)(周?chē)鷽](méi)有空格)。
LOAD CSV FROM
'https://neo4j.com/docs/cypher-refcard/4.3/csv/artists.csv' AS line
RETURN DISTINCT file()
返回 LOAD CSV 正在處理的文件的絕對(duì)路徑,如果在 LOAD CSV 上下文之外調(diào)用,則返回 null。
LOAD CSV FROM
'https://neo4j.com/docs/cypher-refcard/4.3/csv/artists.csv' AS line
RETURN linenumber()
返回 LOAD CSV 當(dāng)前正在處理的行號(hào),如果在 LOAD CSV 上下文之外調(diào)用,則返回 null。
一般的 General | DISTINCT, ., [] |
數(shù)學(xué) Mathematical | +, -, *, /, %, ^ |
比較 Comparison | =, <>, <, >, <=, >=, IS NULL, IS NOT NULL |
布爾值 Boolean | AND, OR, XOR, NOT |
字符串 String | + |
列表 List | +, IN, [x], [x .. y] |
正則表達(dá)式 Regular Expression | =~ |
字符串匹配 String Matching | STARTS WITH, ENDS WITH, CONTAINS |
null
用于表示缺失/未定義的值。
null
不等于null
。不知道兩個(gè)值并不意味著它們是相同的值。所以表達(dá)式null = null
yieldnull
而 not true
。要檢查表達(dá)式是否為null
,請(qǐng)使用IS NULL
.
如果任何參數(shù)是 ,則算術(shù)表達(dá)式、比較和函數(shù)調(diào)用(除了coalesce
)將返回。null
null
嘗試訪問(wèn)列表中缺失的元素或不存在的屬性會(huì)產(chǎn)生null
。
在OPTIONAL MATCH
子句中,nulls
將用于模式的缺失部分。
(n:Person)
帶有 Person 標(biāo)簽的節(jié)點(diǎn)。
(n:Person:Swedish)
帶有人名和瑞典語(yǔ)標(biāo)簽的節(jié)點(diǎn)。
(n:Person {name: $value})
具有聲明屬性的節(jié)點(diǎn)。
()-[r {name: $value}]-()
將關(guān)系與聲明的屬性匹配。
(n)-->(m)
從 n 到 m 的關(guān)系。
(n)--(m)
n 和 m 之間任意方向的關(guān)系。
(n:Person)-->(m)
節(jié)點(diǎn) n 標(biāo)記為與 m 有關(guān)系的人。
(m)<-[:KNOWS]-(n)
類(lèi)型 KNOWS 從 n 到 m 的關(guān)系。
(n)-[:KNOWS|:LOVES]->(m)
從 n 到 m 的 KNOWS 類(lèi)型或 LOVES 類(lèi)型的關(guān)系。
(n)-[r]->(m)
將關(guān)系綁定到變量 r。
(n)-[*1..5]->(m)
從 n 到 m 的 1 到 5 種關(guān)系的可變長(zhǎng)度路徑。
(n)-[*]->(m)
從 n 到 m 的任意數(shù)量關(guān)系的可變長(zhǎng)度路徑。(參見(jiàn)性能部分。)
(n)-[:KNOWS]->(m {property: $value})
從節(jié)點(diǎn) n 到具有聲明屬性的節(jié)點(diǎn) m 的 KNOWS 類(lèi)型的關(guān)系。
shortestPath((n1:Person)-[*..6]-(n2:Person))
找到一條最短路徑。
allShortestPaths((n1:Person)-[*..6]->(n2:Person))
找出所有最短路徑。
size((n)-->()-->())
計(jì)算與模式匹配的路徑。
USE myDatabase
選擇要對(duì)其執(zhí)行查詢(xún)或查詢(xún)部分的 myDatabase。
USE neo4j
MATCH (n:Person)-[:KNOWS]->(m:Person)
WHERE n.name = 'Alice'
針對(duì) Neo4j 數(shù)據(jù)庫(kù)執(zhí)行的 MATCH 查詢(xún)。
SHOW FUNCTIONS
列出所有可用的功能。
SHOW PROCEDURES EXECUTABLE YIELD name
列出當(dāng)前用戶(hù)可以執(zhí)行的所有過(guò)程,并僅返回過(guò)程名稱(chēng)。
CREATE (n:Person {name: $value})
創(chuàng)建一個(gè)帶有標(biāo)簽和屬性的節(jié)點(diǎn)。
MERGE (n:Person {name: $value})
匹配或創(chuàng)建具有標(biāo)簽和屬性的唯一節(jié)點(diǎn)。
SET n:Spouse:Parent:Employee
向節(jié)點(diǎn)添加標(biāo)簽。
MATCH (n:Person)
匹配標(biāo)記為 Person 的節(jié)點(diǎn)。
MATCH (n:Person)
WHERE n.name = $value
匹配具有給定名稱(chēng)的標(biāo)記為 Person 的節(jié)點(diǎn)。
WHERE (n:Person)
檢查節(jié)點(diǎn)上標(biāo)簽是否存在。
labels(n)
節(jié)點(diǎn)的標(biāo)簽。
REMOVE n:Person
從節(jié)點(diǎn)上刪除標(biāo)簽。
['a', 'b', 'c'] AS list
文字列表在方括號(hào)中聲明。
size($list) AS len, $list[0] AS value
列表可以作為參數(shù)傳入。
range($firstNum, $lastNum, $step) AS list
range() 創(chuàng)建一個(gè)數(shù)字列表(步驟是可選的),其他返回列表的函數(shù)有:labels()、nodes()、relationship()。
MATCH p = (a)-[:KNOWS*]->()
RETURN relationships(p) AS r
可以使用命名路徑和關(guān)系()返回包含可變長(zhǎng)度路徑的關(guān)系列表。
RETURN matchedNode.list[0] AS value,
size(matchedNode.list) AS len
屬性可以是字符串、數(shù)字或布爾值的列表。
list[$idx] AS value,
list[$startIdx..$endIdx] AS slice
可以使用方括號(hào)中的 idx 下標(biāo)訪問(wèn)列表元素。無(wú)效索引返回 null。可以以從 start_idx 到 end_idx 的間隔檢索切片,每個(gè)間隔都可以省略或?yàn)樨?fù)。超出范圍的元素將被忽略。
UNWIND $names AS name
MATCH (n {name: name})
RETURN avg(n.age)
使用 UNWIND,任何列表都可以轉(zhuǎn)換回單獨(dú)的行。該示例匹配名稱(chēng)列表中的所有名稱(chēng)。
MATCH (a)
RETURN [(a)-->(b) WHERE b.name = 'Bob' | b.age]
模式理解可用于從匹配項(xiàng)直接向列表進(jìn)行自定義投影。
MATCH (person)
RETURN person { .name, .age}
地圖投影可以很容易地從節(jié)點(diǎn)、關(guān)系和其他地圖值構(gòu)建。
{name: 'Alice', age: 38,
address: {city: 'London', residential: true}}
文字映射在花括號(hào)中聲明,就像屬性映射一樣。支持列表。
WITH {person: {name: 'Anne', age: 25}} AS p
RETURN p.person.name
訪問(wèn)嵌套映射的屬性。
MERGE (p:Person {name: $map.name})
ON CREATE SET p = $map
地圖可以作為參數(shù)傳入并用作地圖或通過(guò)訪問(wèn)鍵使用。
MATCH (matchedNode:Person)
RETURN matchedNode
節(jié)點(diǎn)和關(guān)系作為其數(shù)據(jù)的映射返回。
map.name, map.age, map.children[0]
可以通過(guò)它們的鍵訪問(wèn)映射條目。無(wú)效的鍵會(huì)導(dǎo)致錯(cuò)誤。
n.property <> $value
使用比較運(yùn)算符。
toString(n.property) = $value
使用函數(shù)。
n.number >= 1 AND n.number <= 10
使用布爾運(yùn)算符來(lái)組合謂語(yǔ)。
1 <= n.number <= 10
使用鏈?zhǔn)竭\(yùn)算符來(lái)組合謂語(yǔ)。
n:Person
檢查節(jié)點(diǎn)標(biāo)簽。
variable IS NOT NULL
檢查某些內(nèi)容是否不為空,例如屬性是否存在。
n.property IS NULL OR n.property = $value
要么屬性不存在,要么謂語(yǔ)為真。
n.property = $value
不存在的屬性返回 null,它不等于任何東西。
n["property"] = $value
也可以使用動(dòng)態(tài)計(jì)算的屬性名稱(chēng)訪問(wèn)屬性。
n.property STARTS WITH 'Tim' OR
n.property ENDS WITH 'n' OR
n.property CONTAINS 'goodie'
字符串匹配。
n.property =~ 'Tim.*'
字符串正則表達(dá)式匹配。
(n)-[:KNOWS]->(m)
確保模式至少有一個(gè)匹配項(xiàng)。
NOT (n)-[:KNOWS]->(m)
從結(jié)果中排除 (n)-[:KNOWS]->(m) 的匹配項(xiàng)。
n.property IN [$value1, $value2]
檢查列表中是否存在元素。
all(x IN coll WHERE x.property IS NOT NULL)
如果謂語(yǔ)對(duì)于列表中的所有元素都為真,則返回真。
any(x IN coll WHERE x.property IS NOT NULL)
如果謂語(yǔ)對(duì)于列表中的至少一個(gè)元素為真,則返回真。
none(x IN coll WHERE x.property IS NOT NULL)
如果列表中所有元素的謂語(yǔ)都為假,則返回真。
single(x IN coll WHERE x.property IS NOT NULL)
如果謂語(yǔ)對(duì)于列表中的一個(gè)元素為真,則返回真。
CASE n.eyes
WHEN 'blue' THEN 1
WHEN 'brown' THEN 2
ELSE 3
END
從匹配的 WHEN 值中返回 THEN 值。ELSE 值是可選的,如果缺失則替換為 null。
CASE
WHEN n.eyes = 'blue' THEN 1
WHEN n.age < 40 THEN 2
ELSE 3
END
從第一個(gè) WHEN 謂語(yǔ)評(píng)估為真返回 THEN 值。謂語(yǔ)按順序進(jìn)行評(píng)估。
size($list)
列表中的元素?cái)?shù)。
reverse($list)
顛倒列表中元素的順序。
head($list), last($list), tail($list)
head() 返回列表的第一個(gè)元素,last() 返回列表的最后一個(gè)元素。tail() 返回除第一個(gè)元素之外的所有元素。對(duì)于空列表,所有返回 null。
[x IN list | x.prop]
原始列表中每個(gè)元素的表達(dá)式值列表。
[x IN list WHERE x.prop <> $value]
謂語(yǔ)為真的元素的過(guò)濾列表。
[x IN list WHERE x.prop <> $value | x.prop]
一種列表推導(dǎo)式,用于過(guò)濾列表并為該列表中的每個(gè)元素提取表達(dá)式的值。
reduce(s = "", x IN list | s + x.prop)
為列表中的每個(gè)元素評(píng)估表達(dá)式,累積結(jié)果。
coalesce(n.property, $defaultValue)
第一個(gè)非空表達(dá)式。
timestamp()
自 UTC 1970 年 1 月 1 日午夜以來(lái)的毫秒數(shù)。
id(nodeOrRelationship)
關(guān)系或節(jié)點(diǎn)的內(nèi)部 ID。
toInteger($expr)
如果可能,將給定的輸入轉(zhuǎn)換為整數(shù);否則返回空值。
toFloat($expr)
如果可能,將給定的輸入轉(zhuǎn)換為浮點(diǎn)數(shù);否則返回空值。
toBoolean($expr)
如果可能,將給定的輸入轉(zhuǎn)換為布爾值;否則返回空值。
keys($expr)
返回節(jié)點(diǎn)、關(guān)系或映射的屬性名稱(chēng)的字符串表示形式列表。
properties($expr)
返回包含節(jié)點(diǎn)或關(guān)系的所有屬性的映射。
length(path)
路徑中的關(guān)系數(shù)。
nodes(path)
路徑中的節(jié)點(diǎn)作為列表。
relationships(path)
路徑中的關(guān)系作為列表。
[x IN nodes(path) | x.prop]
從路徑中的節(jié)點(diǎn)中提取屬性。
point({x: $x, y: $y})
返回二維笛卡爾坐標(biāo)系中的一個(gè)點(diǎn)。
point({latitude: $y, longitude: $x})
返回二維地理坐標(biāo)系中的一個(gè)點(diǎn),坐標(biāo)以十進(jìn)制度數(shù)指定。
point({x: $x, y: $y, z: $z})
返回 3D 笛卡爾坐標(biāo)系中的一個(gè)點(diǎn)。
point({latitude: $y, longitude: $x, height: $z})
返回 3D 地理坐標(biāo)系中的一個(gè)點(diǎn),緯度和經(jīng)度以十進(jìn)制度數(shù)表示,高度以米為單位。
distance(point({x: $x1, y: $y1}), point({x: $x2, y: $y2}))
返回一個(gè)浮點(diǎn)數(shù),表示兩點(diǎn)之間的線性距離。返回的單位將與點(diǎn)坐標(biāo)的單位相同,并且適用于 2D 和 3D 笛卡爾點(diǎn)。
distance(point({latitude: $y1, longitude: $x1}), point({latitude: $y2, longitude: $x2}))
以米為單位返回兩點(diǎn)之間的測(cè)地線距離。它也可用于 3D 地理點(diǎn)。
date("2018-04-05")
返回從字符串解析的日期。
localtime("12:45:30.25")
返回沒(méi)有時(shí)區(qū)的時(shí)間。
time("12:45:30.25+01:00")
返回指定時(shí)區(qū)的時(shí)間。
localdatetime("2018-04-05T12:34:00")
返回沒(méi)有時(shí)區(qū)的日期時(shí)間。
datetime("2018-04-05T12:34:00[Europe/Berlin]")
返回指定時(shí)區(qū)的日期時(shí)間。
datetime({epochMillis: 3360000})
將 3360000 作為 UNIX 紀(jì)元時(shí)間轉(zhuǎn)換為正常日期時(shí)間。
date({year: $year, month: $month, day: $day})
也可以使用命名組件的映射調(diào)用所有時(shí)間函數(shù)。此示例從年、月和日組件返回日期。每個(gè)函數(shù)都支持一組不同的可能組件。
datetime({date: $date, time: $time})
可以通過(guò)組合其他類(lèi)型來(lái)創(chuàng)建時(shí)間類(lèi)型。本示例根據(jù)日期和時(shí)間創(chuàng)建日期時(shí)間。
date({date: $datetime, day: 5})
可以通過(guò)從更復(fù)雜的類(lèi)型中進(jìn)行選擇以及覆蓋單個(gè)組件來(lái)創(chuàng)建時(shí)間類(lèi)型。此示例通過(guò)從日期時(shí)間中進(jìn)行選擇以及覆蓋日期組件來(lái)創(chuàng)建日期。
WITH date("2018-04-05") AS d
RETURN d.year, d.month, d.day, d.week, d.dayOfWeek
訪問(wèn)器允許提取時(shí)間類(lèi)型的組件。
duration("P1Y2M10DT12H45M30.25S")
返回 1 年、2 個(gè)月、10 天、12 小時(shí)、45 分鐘和 30.25 秒的持續(xù)時(shí)間。
duration.between($date1,$date2)
返回兩個(gè)時(shí)間實(shí)例之間的持續(xù)時(shí)間。
WITH duration("P1Y2M10DT12H45M") AS d
RETURN d.years, d.months, d.days, d.hours, d.minutes
返回 1 年 14 個(gè)月 10 天 12 小時(shí) 765 分鐘。
WITH duration("P1Y2M10DT12H45M") AS d
RETURN d.years, d.monthsOfYear, d.days, d.hours, d.minutesOfHour
返回 1 年 2 個(gè)月 10 天 12 小時(shí) 45 分鐘。
date("2015-01-01") + duration("P1Y1M1D")
返回日期 2016-02-02。也可以從時(shí)間實(shí)例中減去持續(xù)時(shí)間。
duration("PT30S") * 10
返回 5 分鐘的持續(xù)時(shí)間。也可以將持續(xù)時(shí)間除以數(shù)字。
abs($expr)
絕對(duì)值。
rand()
返回 0(含)到 1(不含)范圍內(nèi)的隨機(jī)數(shù),[0,1)。為每次調(diào)用返回一個(gè)新值。也可用于選擇子集或隨機(jī)排序。
round($expr)
四舍五入到最接近的整數(shù);ceil() 和 floor() 向上或向下查找下一個(gè)整數(shù)。
sqrt($expr)
平方根。
sign($expr)
0 表示零,-1 表示負(fù)值,1 表示正值。
sin($expr)
三角函數(shù)還包括 cos()、tan()、cot()、asin()、acos()、atan()、atan2() 和 haversin()。如果沒(méi)有另外指定,三角函數(shù)的所有參數(shù)都應(yīng)以弧度為單位。
degrees($expr), radians($expr), pi()
將弧度轉(zhuǎn)換為度數(shù);使用 radians() 表示相反,pi() 表示 π。
log10($expr), log($expr), exp($expr), e()
以 10 為底的對(duì)數(shù)、自然對(duì)數(shù)、e 的參數(shù)冪,以及 e 的值。
toString($expression)
表達(dá)式的字符串表示。
replace($original, $search, $replacement)
用替換替換所有出現(xiàn)的搜索。所有參數(shù)都必須是表達(dá)式。
substring($original, $begin, $subLength)
獲取字符串的一部分。subLength 參數(shù)是可選的。
left($original, $subLength),
right($original, $subLength)
字符串的第一部分。字符串的最后一部分。
trim($original), lTrim($original),
rTrim($original)
修剪所有空白,或在左側(cè)或右側(cè)。
toUpper($original), toLower($original)
大寫(xiě)和小寫(xiě)。
split($original, $delimiter)
將字符串拆分為字符串列表。
reverse($original)
反轉(zhuǎn)字符串。
size($string)
計(jì)算字符串中的字符數(shù)。
type(a_relationship)
關(guān)系類(lèi)型的字符串表示。
startNode(a_relationship)
關(guān)系的起始節(jié)點(diǎn)。
endNode(a_relationship)
關(guān)系的結(jié)束節(jié)點(diǎn)。
id(a_relationship)
關(guān)系的內(nèi)部 ID。
count(*)
匹配行數(shù)。
count(variable)
非空值的數(shù)量。
count(DISTINCT variable)
所有聚合函數(shù)也采用 DISTINCT 運(yùn)算符,它從值中刪除重復(fù)項(xiàng)。
collect(n.property)
從值中列出,忽略空值。
sum(n.property)
求和數(shù)值。類(lèi)似的函數(shù)有 avg()、min()、max()。
percentileDisc(n.property, $percentile)
離散百分位。連續(xù)百分位數(shù)是 percentileCont()。百分位參數(shù)是從 0.0 到 1.0。
stDev(n.property)
總體樣本的標(biāo)準(zhǔn)差。對(duì)于整個(gè)人口使用 stDevP()。
CREATE INDEX FOR (p:Person) ON (p.name)
在帶有標(biāo)簽 Person 和屬性名稱(chēng)的節(jié)點(diǎn)上創(chuàng)建索引。
CREATE INDEX index_name FOR ()-[k:KNOWS]-() ON (k.since)
使用名稱(chēng) index_name 為類(lèi)型為 KNOWS 和屬性的關(guān)系創(chuàng)建索引。
CREATE INDEX FOR (p:Person) ON (p.surname)
OPTIONS {indexProvider: 'native-btree-1.0', indexConfig: {`spatial.cartesian.min`: [-100.0, -100.0], `spatial.cartesian.max`: [100.0, 100.0]}}
使用索引提供程序 native-btree-1.0 和給定的 spatial.cartesian 設(shè)置在帶有標(biāo)簽 Person 和屬性姓氏的節(jié)點(diǎn)上創(chuàng)建索引。其他索引設(shè)置將具有其默認(rèn)值。
CREATE INDEX FOR (p:Person) ON (p.name, p.age)
在帶有標(biāo)簽 Person 和屬性 name 和 age 的節(jié)點(diǎn)上創(chuàng)建一個(gè)復(fù)合索引,如果索引已經(jīng)存在,則拋出錯(cuò)誤。
CREATE INDEX IF NOT EXISTS FOR (p:Person) ON (p.name, p.age)
在帶有標(biāo)簽 Person 和屬性 name 和 age 的節(jié)點(diǎn)上創(chuàng)建一個(gè)復(fù)合索引(如果它不存在),如果它存在則不執(zhí)行任何操作。
CREATE LOOKUP INDEX lookup_index_name FOR (n) ON EACH labels(n)
在具有任何標(biāo)簽的節(jié)點(diǎn)上創(chuàng)建一個(gè)名為 lookup_index_name 的令牌查找索引。
CREATE LOOKUP INDEX FOR ()-[r]-() ON EACH type(r)
在具有任何關(guān)系類(lèi)型的關(guān)系上創(chuàng)建標(biāo)記查找索引。
CREATE FULLTEXT INDEX node_fulltext_index_name FOR (n:Friend) ON EACH [n.name]
OPTIONS {indexConfig: {`fulltext.analyzer`: 'swedish'}}
在名稱(chēng)為 node_fulltext_index_name 和分析器瑞典語(yǔ)的節(jié)點(diǎn)上創(chuàng)建全文索引。節(jié)點(diǎn)上的全文索引只能由過(guò)程 db.index.fulltext.queryNodes 使用。其他索引設(shè)置將具有其默認(rèn)值。
CREATE FULLTEXT INDEX rel_fulltext_index_name FOR ()-[r:HAS_PET|BROUGHT_PET]-() ON EACH [r.since, r.price]
為關(guān)系創(chuàng)建一個(gè)名為 rel_fulltext_index_name 的全文索引。關(guān)系的全文索引只能由過(guò)程 db.index.fulltext.queryRelationships 使用。
SHOW INDEXES
列出所有索引。
MATCH (n:Person) WHERE n.name = $value
可以自動(dòng)使用索引進(jìn)行相等比較。請(qǐng)注意,例如 toLower(n.name) = $value 不會(huì)使用索引。
MATCH (n:Person)
WHERE n.name IN [$value]
索引可以自動(dòng)用于 IN 列表檢查。
MATCH (n:Person)
WHERE n.name = $value and n.age = $value2
復(fù)合索引可以自動(dòng)用于兩個(gè)屬性的相等比較。請(qǐng)注意,復(fù)合索引的所有屬性都需要有謂語(yǔ)才能使用。
MATCH (n:Person)
USING INDEX n:Person(name)
WHERE n.name = $value
當(dāng) Cypher 使用次優(yōu)索引或應(yīng)該使用多個(gè)索引時(shí),可以強(qiáng)制使用索引。
DROP INDEX index_name
刪除名為 index_name 的索引,如果索引不存在則拋出錯(cuò)誤。
DROP INDEX index_name IF EXISTS
如果存在,則刪除名為 index_name 的索引,如果不存在則不執(zhí)行任何操作。
CREATE CONSTRAINT ON (p:Person)
ASSERT p.name IS UNIQUE
在標(biāo)簽 Person 和屬性名稱(chēng)上創(chuàng)建唯一的屬性約束。如果使用已存在的名稱(chēng)更新或創(chuàng)建具有該標(biāo)簽的任何其他節(jié)點(diǎn),則寫(xiě)入操作將失敗。此約束將創(chuàng)建隨附索引。
CREATE CONSTRAINT uniqueness ON (p:Person)
ASSERT p.age IS UNIQUE
在標(biāo)簽 Person 和屬性 age 上創(chuàng)建唯一屬性約束,名稱(chēng)為 uniqueness。如果任何其他具有該標(biāo)簽的節(jié)點(diǎn)被更新或創(chuàng)建時(shí)的年齡已經(jīng)存在,則寫(xiě)入操作將失敗。此約束將創(chuàng)建隨附索引。
CREATE CONSTRAINT ON (p:Person)
ASSERT p.surname IS UNIQUE
OPTIONS {indexProvider: 'native-btree-1.0'}
使用索引提供程序 native-btree-1.0 為隨附的索引在標(biāo)簽 Person 和屬性姓氏上創(chuàng)建唯一的屬性約束。
CREATE CONSTRAINT ON (p:Person)
ASSERT p.name IS NOT NULL
(★) 在標(biāo)簽Person 和屬性名稱(chēng)上創(chuàng)建節(jié)點(diǎn)屬性存在約束,如果約束已經(jīng)存在則拋出錯(cuò)誤。如果創(chuàng)建帶有該標(biāo)簽的節(jié)點(diǎn)而沒(méi)有名稱(chēng),或者如果從帶有 Person 標(biāo)簽的現(xiàn)有節(jié)點(diǎn)中刪除了 name 屬性,則寫(xiě)入操作將失敗。
CREATE CONSTRAINT node_exists IF NOT EXISTS ON (p:Person)
ASSERT p.name IS NOT NULL
(★) 如果標(biāo)簽 Person 和屬性名稱(chēng)上的節(jié)點(diǎn)屬性存在約束或任何名稱(chēng)為 node_exists 的約束已經(jīng)存在,那么什么都不會(huì)發(fā)生。如果不存在這樣的約束,那么它將被創(chuàng)建。
CREATE CONSTRAINT ON ()-[l:LIKED]-()
ASSERT l.when IS NOT NULL
(★) 對(duì)LIKED 類(lèi)型和屬性when 創(chuàng)建關(guān)系屬性存在約束。如果在沒(méi)有 when 的情況下創(chuàng)建具有該類(lèi)型的關(guān)系,或者如果從具有 LIKED 類(lèi)型的現(xiàn)有關(guān)系中刪除 when 屬性,則寫(xiě)入操作將失敗。
CREATE CONSTRAINT relationship_exists ON ()-[l:LIKED]-()
ASSERT l.since IS NOT NULL
(★) 對(duì)LIKED 類(lèi)型和property since 創(chuàng)建關(guān)系屬性存在約束,名稱(chēng)為relationship_exists。如果在沒(méi)有since的情況下創(chuàng)建了具有該類(lèi)型的關(guān)系,或者如果從具有 LIKED 類(lèi)型的現(xiàn)有關(guān)系中刪除了 since 屬性,則寫(xiě)入操作將失敗。
SHOW UNIQUE CONSTRAINTS YIELD *
列出所有唯一約束。
CREATE CONSTRAINT ON (p:Person)
ASSERT (p.firstname, p.surname) IS NODE KEY
(★) 在標(biāo)簽Person 和屬性firstname 和surname 上創(chuàng)建節(jié)點(diǎn)鍵約束。如果創(chuàng)建具有該標(biāo)簽的節(jié)點(diǎn)時(shí)沒(méi)有名字和姓氏,或者兩者的組合不是唯一的,或者如果修改了具有 Person 標(biāo)簽的現(xiàn)有節(jié)點(diǎn)上的名字和/或姓氏標(biāo)簽以違反這些約束,則寫(xiě)入操作將失敗。
CREATE CONSTRAINT node_key ON (p:Person)
ASSERT (p.name, p.surname) IS NODE KEY
(★) 在標(biāo)簽Person 和屬性name 和surname 上創(chuàng)建節(jié)點(diǎn)鍵約束,名稱(chēng)為node_key。如果創(chuàng)建具有該標(biāo)簽的節(jié)點(diǎn)時(shí)沒(méi)有姓名和姓氏,或者兩者的組合不是唯一的,或者如果修改了具有 Person 標(biāo)簽的現(xiàn)有節(jié)點(diǎn)上的姓名和/或姓氏標(biāo)簽以違反這些約束,則寫(xiě)入操作將失敗。
CREATE CONSTRAINT node_key_with_config ON (p:Person)
ASSERT (p.name, p.age) IS NODE KEY
OPTIONS {indexConfig: {`spatial.wgs-84.min`: [-100.0, -100.0], `spatial.wgs-84.max`: [100.0, 100.0]}}
(★) 在標(biāo)簽 Person 和屬性 name 和 age 上創(chuàng)建節(jié)點(diǎn)鍵約束,名稱(chēng)為 node_key_with_config 并為隨附索引提供空間.wgs-84 設(shè)置。其他索引設(shè)置將具有其默認(rèn)值。
DROP CONSTRAINT uniqueness
刪除名為 uniqueness 的約束,如果約束不存在則拋出錯(cuò)誤。
DROP CONSTRAINT uniqueness IF EXISTS
如果存在,則刪除名稱(chēng)為 uniqueness 的約束,如果不存在,則不執(zhí)行任何操作。
PROFILE
/EXPLAIN
來(lái)分析查詢(xún)的性能。有關(guān)這些主題和其他主題(例如規(guī)劃器提示)的更多信息,請(qǐng)參閱查詢(xún)調(diào)優(yōu)。CREATE OR REPLACE DATABASE myDatabase
(★) 創(chuàng)建一個(gè)名為myDatabase 的數(shù)據(jù)庫(kù)。如果存在具有該名稱(chēng)的數(shù)據(jù)庫(kù),則刪除現(xiàn)有數(shù)據(jù)庫(kù)并創(chuàng)建新數(shù)據(jù)庫(kù)。
STOP DATABASE myDatabase
(★) 停止數(shù)據(jù)庫(kù)myDatabase。
START DATABASE myDatabase
(★)啟動(dòng)數(shù)據(jù)庫(kù)myDatabase。
SHOW DATABASES
列出系統(tǒng)中的所有數(shù)據(jù)庫(kù)及其相關(guān)信息。
SHOW DATABASES
YIELD name, currentStatus
WHERE name CONTAINS 'my' AND currentStatus = 'online'
列出有關(guān)數(shù)據(jù)庫(kù)的信息,按名稱(chēng)和在線狀態(tài)過(guò)濾,并按這些條件進(jìn)一步細(xì)化。
SHOW DATABASE myDatabase
列出有關(guān)數(shù)據(jù)庫(kù) myDatabase 的信息。
SHOW DEFAULT DATABASE
列出有關(guān)默認(rèn)數(shù)據(jù)庫(kù)的信息。
SHOW HOME DATABASE
列出有關(guān)當(dāng)前用戶(hù)主數(shù)據(jù)庫(kù)的信息。
DROP DATABASE myDatabase IF EXISTS
(★) 刪除數(shù)據(jù)庫(kù)myDatabase,如果存在。
CREATE USER alice SET PASSWORD $password
創(chuàng)建一個(gè)新用戶(hù)和密碼。此密碼必須在第一次登錄時(shí)更改。
ALTER USER alice SET PASSWORD $password CHANGE NOT REQUIRED
為用戶(hù)設(shè)置新密碼。該用戶(hù)下次登錄時(shí)無(wú)需更改此密碼。
ALTER USER alice IF EXISTS SET PASSWORD CHANGE REQUIRED
如果指定的用戶(hù)存在,則強(qiáng)制該用戶(hù)在下次登錄時(shí)更改其密碼。
ALTER USER alice SET STATUS SUSPENDED
(★) 更改用戶(hù)狀態(tài)為暫停。使用 SET STATUS ACTIVE 重新激活用戶(hù)。
ALTER USER alice SET HOME DATABASE otherDb
(★) 將用戶(hù)家數(shù)據(jù)庫(kù)改為otherDb。使用 REMOVE HOME DATABASE 取消設(shè)置用戶(hù)的主數(shù)據(jù)庫(kù)并回退到默認(rèn)數(shù)據(jù)庫(kù)。
ALTER CURRENT USER SET PASSWORD FROM $old TO $new
更改登錄用戶(hù)的密碼。用戶(hù)下次登錄時(shí)無(wú)需更改此密碼。
SHOW CURRENT USER
列出當(dāng)前登錄的用戶(hù)、他們的狀態(tài)、角色以及他們是否需要更改密碼。(★) 狀態(tài)和角色僅限企業(yè)版。
SHOW USERS
列出系統(tǒng)中的所有用戶(hù)、他們的狀態(tài)、角色以及他們是否需要更改密碼。(★) 狀態(tài)和角色僅限企業(yè)版。
SHOW USERS
YIELD user, suspended
WHERE suspended = true
列出系統(tǒng)中的用戶(hù),按名稱(chēng)和狀態(tài)過(guò)濾,并根據(jù)是否暫停進(jìn)一步細(xì)化。(★) 狀態(tài)僅為企業(yè)版。
RENAME USER alice TO alice_delete
將用戶(hù) alice 重命名為 alice_delete。
DROP USER alice_delete
刪除用戶(hù)。
CREATE ROLE my_role
創(chuàng)建角色。
CREATE ROLE my_second_role IF NOT EXISTS AS COPY OF my_role
創(chuàng)建一個(gè)名為 my_second_role 的角色(除非它已經(jīng)存在)作為現(xiàn)有 my_role 的副本。
RENAME ROLE my_second_role TO my_other_role
將名為 my_second_role 的角色重命名為 my_other_role。
GRANT ROLE my_role, my_other_role TO alice
為用戶(hù)分配角色。
REVOKE ROLE my_other_role FROM alice
從用戶(hù)中刪除指定的角色。
SHOW ROLES
列出系統(tǒng)中的所有角色。
SHOW ROLES
YIELD role
WHERE role CONTAINS 'my'
列出角色,按角色名稱(chēng)過(guò)濾,并根據(jù)名稱(chēng)是否包含“我的”進(jìn)一步細(xì)化。
SHOW POPULATED ROLES WITH USERS
列出分配給系統(tǒng)中至少一個(gè)用戶(hù)的所有角色,以及分配給這些角色的用戶(hù)。
DROP ROLE my_role
刪除角色。
(★)圖讀權(quán)限
GRANT TRAVERSE ON GRAPH * NODES * TO my_role
向角色授予對(duì)所有節(jié)點(diǎn)和所有圖的遍歷權(quán)限。
DENY READ {prop} ON GRAPH foo RELATIONSHIP Type TO my_role
拒絕對(duì)角色的指定屬性、指定圖中具有指定類(lèi)型的所有關(guān)系的讀取權(quán)限。
GRANT MATCH {*} ON HOME GRAPH ELEMENTS Label TO my_role
將所有屬性的讀取權(quán)限和主圖中的遍歷權(quán)限授予角色。在這里,這兩種權(quán)限都適用于圖中具有指定標(biāo)簽/類(lèi)型的所有節(jié)點(diǎn)和關(guān)系。
GRANT CREATE ON GRAPH * NODES Label TO my_role
向角色授予對(duì)所有圖中具有指定標(biāo)簽的所有節(jié)點(diǎn)的創(chuàng)建權(quán)限。
DENY DELETE ON GRAPH neo4j TO my_role
拒絕對(duì)角色的指定圖中的所有節(jié)點(diǎn)和關(guān)系的刪除權(quán)限。
REVOKE SET LABEL Label ON GRAPH * FROM my_role
將所有圖上指定標(biāo)簽的 set label 權(quán)限撤消給角色。
GRANT REMOVE LABEL * ON GRAPH foo TO my_role
將指定圖上所有標(biāo)簽的刪除標(biāo)簽權(quán)限授予角色。
DENY SET PROPERTY {prop} ON GRAPH foo RELATIONSHIPS Type TO my_role
拒絕將指定屬性、指定圖中具有指定類(lèi)型的所有關(guān)系的屬性權(quán)限設(shè)置為角色。
GRANT MERGE {*} ON GRAPH * NODES Label TO my_role
向角色授予對(duì)所有屬性、所有圖中具有指定標(biāo)簽的所有節(jié)點(diǎn)的合并權(quán)限。
REVOKE WRITE ON GRAPH * FROM my_role
撤銷(xiāo)角色對(duì)所有圖的寫(xiě)入權(quán)限。
DENY ALL GRAPH PRIVILEGES ON GRAPH foo TO my_role
拒絕角色對(duì)指定圖的所有圖特權(quán)特權(quán)。
SHOW PRIVILEGES AS COMMANDS
將系統(tǒng)中的所有權(quán)限列為 Cypher 命令。
SHOW PRIVILEGES
列出系統(tǒng)中的所有權(quán)限以及分配給它們的角色。
SHOW PRIVILEGES
YIELD role, action, access
WHERE role = 'my_role'
列出有關(guān)權(quán)限的信息,按角色、操作和訪問(wèn)進(jìn)行過(guò)濾,并按角色名稱(chēng)進(jìn)一步細(xì)化。
SHOW ROLE my_role PRIVILEGES AS COMMANDS
列出分配給角色的所有權(quán)限作為 Cypher 命令。
SHOW ROLE my_role, my_second_role PRIVILEGES AS COMMANDS
列出分配給多個(gè)角色中的每個(gè)角色的所有權(quán)限作為 Cypher 命令。
SHOW USER alice PRIVILEGES AS COMMANDS
列出用戶(hù)的所有權(quán)限,以及他們作為 Cypher 命令分配給的角色。
SHOW USER PRIVILEGES AS COMMANDS
列出當(dāng)前登錄用戶(hù)的所有權(quán)限,以及他們作為 Cypher 命令分配的角色。
GRANT ACCESS ON DATABASE * TO my_role
向角色授予訪問(wèn)和運(yùn)行針對(duì)所有數(shù)據(jù)庫(kù)的查詢(xún)的權(quán)限。
GRANT START ON DATABASE * TO my_role
向角色授予啟動(dòng)所有數(shù)據(jù)庫(kù)的權(quán)限。
GRANT STOP ON DATABASE * TO my_role
向角色授予停止所有數(shù)據(jù)庫(kù)的權(quán)限。
GRANT CREATE INDEX ON DATABASE foo TO my_role
向角色授予在指定數(shù)據(jù)庫(kù)上創(chuàng)建索引的權(quán)限。
GRANT DROP INDEX ON DATABASE foo TO my_role
向角色授予刪除指定數(shù)據(jù)庫(kù)上的索引的權(quán)限。
GRANT SHOW INDEX ON DATABASE * TO my_role
授予權(quán)限以向角色顯示所有數(shù)據(jù)庫(kù)上的索引。
DENY INDEX MANAGEMENT ON DATABASE bar TO my_role
拒絕為角色創(chuàng)建和刪除指定數(shù)據(jù)庫(kù)上的索引的特權(quán)。
GRANT CREATE CONSTRAINT ON DATABASE * TO my_role
向角色授予在所有數(shù)據(jù)庫(kù)上創(chuàng)建約束的權(quán)限。
DENY DROP CONSTRAINT ON DATABASE * TO my_role
拒絕將所有數(shù)據(jù)庫(kù)上的約束刪除到某個(gè)角色的權(quán)限。
DENY SHOW CONSTRAINT ON DATABASE foo TO my_role
拒絕特權(quán)以向角色顯示對(duì)指定數(shù)據(jù)庫(kù)的約束。
REVOKE CONSTRAINT ON DATABASE * FROM my_role
撤消授予和拒絕的權(quán)限以從角色創(chuàng)建和刪除對(duì)所有數(shù)據(jù)庫(kù)的約束。
GRANT CREATE NEW LABELS ON DATABASE * TO my_role
向角色授予在所有數(shù)據(jù)庫(kù)上創(chuàng)建新標(biāo)簽的權(quán)限。
DENY CREATE NEW TYPES ON DATABASE foo TO my_role
拒絕在指定數(shù)據(jù)庫(kù)上為角色創(chuàng)建新關(guān)系類(lèi)型的特權(quán)。
REVOKE GRANT CREATE NEW PROPERTY NAMES ON DATABASE bar FROM my_role
從角色撤消在指定數(shù)據(jù)庫(kù)上創(chuàng)建新屬性名稱(chēng)的授予權(quán)限。
GRANT NAME MANAGEMENT ON HOME DATABASE TO my_role
向角色授予在主數(shù)據(jù)庫(kù)上創(chuàng)建標(biāo)簽、關(guān)系類(lèi)型和屬性名稱(chēng)的權(quán)限。
GRANT ALL ON DATABASE baz TO my_role
向角色授予訪問(wèn)、創(chuàng)建和刪除索引和約束、在指定數(shù)據(jù)庫(kù)上創(chuàng)建新標(biāo)簽、類(lèi)型和屬性名稱(chēng)的權(quán)限。
GRANT SHOW TRANSACTION (*) ON DATABASE foo TO my_role
授予權(quán)限以列出來(lái)自指定數(shù)據(jù)庫(kù)上所有用戶(hù)的事務(wù)和查詢(xún)給角色。
DENY TERMINATE TRANSACTION (user1, user2) ON DATABASES * TO my_role
拒絕從所有數(shù)據(jù)庫(kù)上的 user1 和 user2 到角色終止事務(wù)和查詢(xún)的特權(quán)。
REVOKE GRANT TRANSACTION MANAGEMENT ON HOME DATABASE FROM my_role
撤消授予的權(quán)限,以從角色中列出和終止主數(shù)據(jù)庫(kù)上所有用戶(hù)的事務(wù)和查詢(xún)。
GRANT CREATE ROLE ON DBMS TO my_role
授予角色創(chuàng)建角色的權(quán)限。
GRANT RENAME ROLE ON DBMS TO my_role
授予將角色重命名為角色的權(quán)限。
GRANT DROP ROLE ON DBMS TO my_role
授予角色刪除角色的權(quán)限。
DENY ASSIGN ROLE ON DBMS TO my_role
拒絕為用戶(hù)分配角色的權(quán)限。
DENY REMOVE ROLE ON DBMS TO my_role
拒絕將角色從用戶(hù)移除到角色的權(quán)限。
REVOKE DENY SHOW ROLE ON DBMS FROM my_role
撤銷(xiāo)被拒絕的權(quán)限以顯示角色中的角色。
GRANT ROLE MANAGEMENT ON DBMS TO my_role
授予角色管理角色的所有權(quán)限。
GRANT CREATE USER ON DBMS TO my_role
授予為角色創(chuàng)建用戶(hù)的權(quán)限。
GRANT RENAME USER ON DBMS TO my_role
授予將用戶(hù)重命名為角色的權(quán)限。
DENY ALTER USER ON DBMS TO my_role
拒絕將用戶(hù)更改為角色的權(quán)限。
REVOKE SET PASSWORDS ON DBMS FROM my_role
撤銷(xiāo)授予和拒絕的權(quán)限以更改角色的用戶(hù)密碼。
REVOKE GRANT SET USER STATUS ON DBMS FROM my_role
撤消授予的權(quán)限以從角色更改用戶(hù)的帳戶(hù)狀態(tài)。
GRANT SET USER HOME DATABASE ON DBMS TO my_role
將權(quán)限更改用戶(hù)的主數(shù)據(jù)庫(kù)授予角色。
GRANT DROP USER ON DBMS TO my_role
授予角色刪除用戶(hù)的權(quán)限。
REVOKE DENY SHOW USER ON DBMS FROM my_role
撤銷(xiāo)被拒絕的權(quán)限以顯示角色中的用戶(hù)。
GRANT USER MANAGEMENT ON DBMS TO my_role
將管理用戶(hù)的所有權(quán)限授予角色。
GRANT CREATE DATABASE ON DBMS TO my_role
授予角色創(chuàng)建數(shù)據(jù)庫(kù)的權(quán)限。
REVOKE DENY DROP DATABASE ON DBMS FROM my_role
撤銷(xiāo)被拒絕的權(quán)限以從角色中刪除數(shù)據(jù)庫(kù)。
DENY DATABASE MANAGEMENT ON DBMS TO my_role
拒絕一個(gè)角色管理數(shù)據(jù)庫(kù)的所有權(quán)限。
GRANT SHOW PRIVILEGE ON DBMS TO my_role
授予權(quán)限以向角色顯示權(quán)限。
DENY ASSIGN PRIVILEGE ON DBMS TO my_role
拒絕將權(quán)限分配給角色的權(quán)限。
REVOKE GRANT REMOVE PRIVILEGE ON DBMS FROM my_role
撤消授予的權(quán)限以從角色的角色中刪除權(quán)限。
REVOKE PRIVILEGE MANAGEMENT ON DBMS FROM my_role
從角色撤銷(xiāo)所有授予和拒絕的管理權(quán)限的權(quán)限。
GRANT ALL ON DBMS TO my_role
授予對(duì)角色執(zhí)行所有角色管理、用戶(hù)管理、數(shù)據(jù)庫(kù)管理和權(quán)限管理的權(quán)限。
(★) Neo4j 企業(yè)版提供的功能。
更多建議: