IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Neo4j CQL -> 正文阅读

[大数据]Neo4j CQL

CQL简介

CQL代表Cypher查询语言。像关系型数据库的查询语言SQL,Neo4j使用CQL作为查询语言。
Neo4j CQL

  • 它是Neo4j图形数据库的查询语言
  • 它是一种声明性模式匹配语言
  • 它遵循SQL语言
  • 它的语言是非常简单且人性化、可读的格式。
    常用的Neo4j CQL命令、条款如下:
No.CQL命令/条作用
1CREATE创建创建节点,关系和属性
2MATCH匹配检索有关节点,关系和属性数据
3RETURN返回返回查询结果
4WHERE条件提供条件过滤检索MATCH数据
5DELETE删除删除节点和关系
6REMOVE移除删除节点和关系的属性
7SET设置添加或更新标签
8ORDER BY排序对结果排序
9SKIP LIMIT分页分页
10DISTINCT去重去重

CREATE

CREATE(
	<node-name>:<label-name>
	[{
		<property1-name>:<property1-value>
		......
		<propertyn-name>:<propertyn-value>
	}]
)

语法说明:

语法元素描述
<node-name>它是我们将要创建的节点名称
<label-name>它是一个节点标签名称
<property1-name>...<propertyn-name>属性是键值对。定义将分配给创建节点的属性的名称
<propertyn-name>...<propertyn-name>属性是键值对。定义将分配给创建节点的属性的值

举例:

create(person:Person)
create(person:Person {cid:1,name:"范闲",age:24,gender:0,character:"A",money:1000})
create(person:Person {cid:2,name:"林婉儿",age:20,gender:1,character:"B",money:800})
create(person:Person {cid:3,name:"庆帝",age:49,gender:0,character:"A",money:8900})

MATCH RETURN命令语法

MATCH(
	<node-name>:<label-name>
)
RETURN
	<name-name>.<property1-name>,
	......
	<node-name>.<propertyn-name>
语法元素描述
<node-name>它是我们将要创建的节点名称
<label-name>它是一个节点标签名称
<property1-name>...<propertyn-name>属性是键值对。定义将分配给创建节点得到属性的名称

举例:

match(person:Person) return person
match(person:Person) return person.name,person.age,ID(person)

创建关系

使用现有节点创建没有属性关系的关系

MATCH(<node1-name>:<node1-label-name>),(<node2-name>:<node2-label-name>)
CREATE(
	<node1-name>-[<relationship-name>:<relationship-label-name>] -> <node2-name>
)
RETURN 相应的内容

语法说明:

No.语法元素描述
1MATCH,CRATE,REUTRN它们是Neo4j CQL关键字
2<node1-name>它用于创建关系的“From Node”的名字
3<node1-label-name>它用于创建关系的“From Node”的标签名称
4<node2-name>它用于创建关系的“To Node”的名称
5<node2-label-name>它用于创建关系的“To Node”的标签你名称
6<relationship-name>这是一个关系的名称
7<relationship-label-name>它是一个关系的标签名称

举例:

创建关系
match(person1:Person{name:"范闲"}),(person2:Person{name:"林婉儿"})
create(person1)-[r:Couple] -> (person2)
查询关系
match p = (p1:Person{name:'范闲'})-[r:Couple]->(:Person) return p

使用现有节点创建有属性的关系

MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>)
CREATE
	(<node1-label-name>)-[<relationship-label-name>:<relationship-name>]
	{<dedfine-proreties-list>}]-<(node2-label-name)
其中`<dedfine-properties-list>`是分配给新创建关系的属性(名称-值对)的列表。
{
	<property1-name>:<property1-value>,
	<property2-name>:<property2-value>,
	...
	<propertyn-name>:<propertyn-value>
}

举例:

match(p1:Person{name: '范闲'}) match(p2:Person {name: '林婉儿'})
create(p1)-[r:Couple]-[r:Couple{marry_date:'2021-05-20', price: 55000}->(p2)] return r

使用新的节点创建有属性的关系

CREATE
(node1-label-name):<node1-name>{<define-properties-list>}-[<relationshio-label-name>]:<relationship-name>{<define-properties-list>}]->(<node1-label-name>:<node1-label-name>:<node1-name>{<define-properties-list>})

举例:

create (p1:Person {cid:9,name:'靖王世子',age:23,gender:0,character:'A',money:3000})-[r:Friend{date:'2021-09-05'}]->(p2:Person{cid:8,name:'二皇子',age:24,gender:0,character:'B',money:6000}

关系节点的属性可以使用的类型

CQL数据类型作用
boolean它用于标示布尔文字:true,false
byte它用来表示8位整数
short它用于表示16位整数
int它用于表示32位整数
long它用于表示63位整数
float浮点数用于标示32位浮点数
doubleDouble用于表示64位浮点数
charChar用于表示16位字符
string字符串用于表示字符串

CTREATE创建多个标签

CREATE (<node-name>:<label-name1>:<label-name2>...<label-namen>)

举例:

create(person:Person:Beauty:Picture{cid:20,name:'白雪公主'})

WHERE子句

简单的WHERE字句
WHERE <condition>
复杂的WHERE字句
WHERE <condition> <boolean-operator><condition>

where中的比较运算符和之前mysql的相同,如=~=<>><等

布尔运算符描述
AND
OR
NOT

举例:

match (p:Person)
where p.name = '范闲' or p.name = '靖王世子' return p

DELETE子句和REMOVE子句

DELETE子句

  • 删除节点
  • 删除节点以及相关节点和关系

举例:

match p = (:Person {name:'林婉儿'})-[r:Couple]-(:Person) delete r

REMOVE子句

  • 删除节点或关系的标签
  • 删除节点或关系的属性
match (p:Person {name:'白雪公主'})
remove p.cid

SET子句

  • 向现有节点或关系添加新属性
  • 更新属性值
match (p:Person {cid:1})
set p.money=6666,p.age=25```

ORDER BY子句

ORDER BY字句,对MATCH的结果进行排序。
我们可以按照升序或者降序进行排序。
默认情况下,它按照升序进行排序。如果我们要按降序进行排序,我们需要使用DESC子句。

MATCH (p:Person)
RETURN p.name,p.money
ORDER BY p.money DESC

SKIP和LIMIT

Neo4j CQL已提供SKIP子句来过滤或限制查询返回的行数。它修整了CQL查询结果集顶部的结果。
Neo4J CQL已提供LIMIT子句来过滤或限制查询返回的行数。它修剪CQL查询结果集底部的结果。

MATCH (p:Person)
RETURN ID(p),p.name,p.money
ORDER BY p.money DESC SKIP 4 LIMIT 2

DISTINCT去重

MATCH (p:Person) RETURN DISTINCT(p.character)
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 18:53:24  更:2021-09-11 18:55:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:48:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码