教育类手机网站模板,少女的ppt高清模板免费,企业做微网站,营销广告文案MATCH子句允许您在数据库中指定查询将搜索的模式。这是检索数据以在查询中使用的主要方法。
通常在MATCH子句之后会跟随一个WHERE子句#xff0c;以添加用户定义的限制条件到匹配的模式中#xff0c;以操纵返回的数据集。谓词是模式描述的一部分#xff0c;不应被视为仅在匹…MATCH子句允许您在数据库中指定查询将搜索的模式。这是检索数据以在查询中使用的主要方法。
通常在MATCH子句之后会跟随一个WHERE子句以添加用户定义的限制条件到匹配的模式中以操纵返回的数据集。谓词是模式描述的一部分不应被视为仅在匹配完成后应用的过滤器。这意味着WHERE应始终与其所属的MATCH子句一起放置。
MATCH可以出现在查询的开头或稍后可能在WITH之后。如果它是第一个子句那么尚未绑定任何内容Cypher将设计一个搜索以找到与子句中指定的任何关联谓词匹配的结果。此搜索找到的顶点和边将作为已绑定的模式元素可用并且可以用于子图的模式匹配。它们也可以在任何未来的子句中使用在那里Cypher将使用已知元素然后找到进一步的未知元素。
Cypher是一种声明性语言因此通常查询本身不指定用于执行搜索的算法。WHERE部分中的谓词可以在模式匹配之前、期间或匹配找到之后进行评估。
基本顶点查找
获取所有顶点
通过指定一个带有单个顶点且无标签的模式将返回图中的所有顶点。
SELECT * FROM cypher(graph_name, $$
MATCH (v)
RETURN v
$$) as (v agtype);返回数据库中的所有顶点。 v
{id: 0; label: ‘Person’; properties: {name: ‘Charlie Sheen’}}::vertex
{id: 1; label: ‘Person’; properties: {name: ‘Martin Sheen’}}::vertex
{id: 2; label: ‘Person’; properties: {name: ‘Michael Douglas’}}::vertex
{id: 3; label: ‘Person’; properties: {name: ‘Oliver Stone’}}::vertex
{id: 4; label: ‘Person’; properties: {name: ‘Rob Reiner’}}::vertex
{id: 5; label: ‘Movie’; properties: {name: ‘Wall Street’}}::vertex
{id: 6; label: ‘Movie’; properties: {title: ‘The American President’}}::vertex
7 row(s) returned获取带有标签的所有顶点
使用单个节点模式其中顶点的标签如下所示
sqlCopy code
SELECT * FROM cypher(graph_name, $$
MATCH (movie:Movie)
RETURN movie.title
$$) as (title agtype);返回数据库中的所有电影。
title
‘Wall Street’
‘The American President’
2 row(s) returned相关顶点
符号-[]-指定了一个边没有指定边的类型或方向。
sqlCopy code
SELECT * FROM cypher(graph_name, $$
MATCH (director {name: Oliver Stone})-[]-(movie)
RETURN movie.title
$$) as (title agtype);返回由 Oliver Stone 导演的所有电影。
plaintextCopy code
title
‘Wall Street’
1 row(s) returned匹配标签
要在顶点上使用标签来约束模式请将其添加到模式中的顶点中使用标签语法。
sqlCopy code
SELECT * FROM cypher(graph_name, $$
MATCH (:Person {name: Oliver Stone})-[]-(movie:Movie)
RETURN movie.title
$$) as (title agtype);返回与标记为 Movie 的 Person Oliver 相连的任何顶点。
plaintextCopy code
title
‘Wall Street’
1 row(s) returned边的基础
出边
要返回有向边您可以使用-或-来指定边指向的方向。
sqlCopy code
SELECT * FROM cypher(graph_name, $$
MATCH (:Person {name: Oliver Stone})-[]-(movie)
RETURN movie.title
$$) as (title agtype);返回与 Oliver 通过一条出边相连的任何顶点。
plaintextCopy code
title
‘Wall Street’
1 row(s) returned有向边和变量
如果需要一个变量无论是用于过滤边的属性还是用于返回边请在您希望使用的边或顶点内指定变量。
sqlCopy code
SELECT * FROM cypher(graph_name, $$
MATCH (:Person {name: Oliver Stone})-[r]-(movie)
RETURN type(r)
$$) as (title agtype);返回从 Oliver 出发的每条出边的类型。
plaintextCopy code
title
‘DIRECTED’
1 row(s) returned根据边标签匹配
当您知道要匹配的边标签时可以通过使用冒号和边标签一起指定它。
sqlCopy code
SELECT * FROM cypher(graph_name, $$
MATCH (:Movie {title: Wall Street})-[:ACTED_IN]-(actor)
RETURN actor.name
$$) as (actors_name agtype);返回所有 ACTED_IN Wall Street 的演员。
plaintextCopy code
actors_name
‘Charlie Sheen’
‘Martin Sheen’
‘Michael Douglas’
3 row(s) returned带有变量的边标签匹配
如果要使用变量保存边并指定要使用的边标签可以通过同时指定它们来执行。
sqlCopy code
SELECT * FROM cypher(graph_name, $$
MATCH ({title: Wall Street})-[r:ACTED_IN]-(actor)
RETURN r.role
$$) as (role agtype);返回 Wall Street 的 ACTED_IN 角色。
plaintextCopy code
role
‘Gordon Gekko’
‘Carl Fox’
‘Bud Fox’
3 row(s) returned多个边
边可以串联在一起以匹配无限数量的边。只要遵循基本模式()-[]-()用户就可以连接边和顶点以匹配特定模式。
sqlCopy code
SELECT * FROM cypher(graph_name, $$MATCH (charlie {name: Charlie Sheen})-[:ACTED_IN]-(movie)-[:DIRECTED]-(director)RETURN movie.title, director.name
$$) as (title agtype, name agtype);返回 Charlie Sheen 参演的电影及其导演。
plaintextCopy code
title name
‘Wall Street’ ‘Oliver Stone’
1 row(s) returned变长边
当两个顶点之间的连接长度可变时可以使用以下连接返回形成连接的边的列表。
介绍
与在模式中使用许多顶点和边描述来描述长路径不同可以通过在模式的边描述中指定长度来描述许多边和中间顶点。
(u)-[*2]-(v)
描述了一个具有三个顶点和两条边的右定向路径可以重写为
(u)-[]-()-[]-(v)
也可以给出范围长度
(u)-[*3..5]-(v)
相当于
(u)-[]-()-[]-()-[]-(v) 和 (u)-[]-()-[]-()-[]-()-[]-(v) 和 (u)-[]-()-[]-()-[]-()-[]-()-[]-(v)
前面的示例给出了边的边界值即 u 和 v 之间的边和顶点的较小和较大边界值。这两个绑定值中的任何一个或两个都可以被排除。
(u)-[*3..]-(v)
返回 u 和 v 之间具有三个或更多边的所有路径。
(u)-[*..5]-(v)
返回 u 和 v 之间具有5个或更少边的所有路径。
(u)-[*]-(v)
返回 u 和 v 之间的所有路径。
示例
SELECT * FROM cypher(graph_name, $$MATCH p (actor {name: Willam Dafoe})-[:ACTED_IN*2]-(co_actor)RETURN relationships(p)
$$) as (r agtype);返回边的列表包括 Willam Dafoe 所参演的电影以及他与两位 Spiderman 演员合作的边。
r
[{id: 0; label:ACTED_IN; properties: {role: Green Goblin}}::edge, {id: 1; label: ACTED_IN; properties: {role: Spiderman, actor: Toby Maguire}}::edge]
[{id: 0; label:ACTED_IN; properties: {role: Green Goblin}}::edge, {id: 2; label: ACTED_IN; properties: {role: Spiderman, actor: Andrew Garfield}}::edge]
2 row(s) returned 使用公有云服务
一些公有云的提供了免安装的数据库服务无需自己部署。以MemFireCloud为例
直接连接
每个MemFire Cloud应用内置一个完整的Postgres数据库你可以使用任何支持Postgres的工具来连接到数据库。你可以在控制台内的数据库设置中获取连接信息
来到左侧菜单栏的 设置部分点击数据库启用数据库直连找到应用的连接信息 开启直连 白名单
MemFire Cloud内置白名单功能开启白名单后只允许白名单内的IP地址段访问你的数据库。关闭白名单后访问你数据库的IP地址不受限制即任何IP地址只要有连接信息都可以与你的数据库进行直连。 在进行白名单配置时要遵循CIDR规则。MemFire Cloud中白名单功能 默认是关闭的需用户手动开启。 配置白名单
通过数据库客户端连接数据库可以执行图操作
CREATE EXTENSION age;
LOAD age;
SET search_path ag_catalog, $user, public;