Neo4j

1.下载地址 

https://neo4j.com/download/other-releases/#releases

        社区版、 企业版  版本对比    https://neo4j.com/subscriptions/#editions

节点数量、 性能、集群支持上有差异

 

2.解压

3.修改配置文件

4.打开注释

5.启动服务

6.web访问 

http://10.16.37.133:7474 

初始用户名密码  neo4j/neo4j, 会要求改密码(nicaia)

7. CQL

    

 

1      CREATE

2      MATCH

3      RETURN

4      WHERE

5      DELETE

6      REMOVE

7      ORDER BY

8      SET

 

创建节点

    create (p:Student {name:"孙悟空",age:28,hobby:"playsticks"})

 

查询节点

    match (n:Student) return n limit 20;

    match (n:Student) where n.age < 30 return n limit 20;

    match (n) where n.age < 30 return n limit 20;

 

创建多个标签的节点

    create (n:Author:Singer:Student {name:"john"})

 

创建关系

    Match (t:Singer) where t.name="john"

    create (b:Student{name:"小唐"})-[r:LIKES]->(t);

 

删除、添加标签

    match (n:Student) where n.name 'john' remove n:Teacher;

    match (n:Student) where n.name 'john' set n:Singer;

 

 

与 MySQL 语法对比,快速熟悉

 

<!-- 1. 全表扫描 -->

 

<!-- mysql -->

SELECT p.*

FROM products as p;

 

<!-- neo4j -->

MATCH (p:Product)

RETURN p;

 

<!-- 2. 查询价格最贵的10个商品,只返回商品名字和单价 -->

 

<!-- mysql -->

SELECT p.ProductName, p.UnitPrice

FROM products as p

ORDER BY p.UnitPrice DESC

LIMIT 10;

 

<!-- neo4j -->

MATCH (p:Product)

RETURN p.productName, p.unitPrice

ORDER BY p.unitPrice DESC

LIMIT 10;

 

<!-- 3. 按照商品名字筛选 -->

 

<!-- mysql -->

SELECT p.ProductName, p.UnitPrice

FROM products AS p

WHERE p.ProductName = 'Chocolade';

 

<!-- neo4j -->

MATCH (p:Product)

WHERE p.productName = "Chocolade"

RETURN p.productName, p.unitPrice;

<!-- 其他的写法 -->

MATCH (p:Product {productName:"Chocolade"})

RETURN p.productName, p.unitPrice;

 

<!-- 4. 按照商品名字筛选2 -->

 

<!-- mysql -->

SELECT p.ProductName, p.UnitPrice

FROM products as p

WHERE p.ProductName IN ('Chocolade','Chai');

 

<!-- neo4j -->

MATCH (p:Product)

WHERE p.productName IN ['Chocolade','Chai']

RETURN p.productName, p.unitPrice;

 

<!-- 5. 模糊查询和数值过滤 -->

 

<!-- mysql -->

SELECT p.ProductName, p.UnitPrice

FROM products AS p

WHERE p.ProductName LIKE 'C%' AND p.UnitPrice > 100;

 

<!-- neo4j -->

MATCH (p:Product)

WHERE p.productName STARTS WITH "C" AND p.unitPrice > 100

RETURN p.productName, p.unitPrice;

 

<!-- 6. 多表联合查询-->

 

<!-- mysql -->

SELECT DISTINCT c.CompanyName

FROM customers AS c

JOIN orders AS ON (c.CustomerID = o.CustomerID)

JOIN order_details AS od ON (o.OrderID = od.OrderID)

JOIN products AS ON (od.ProductID = p.ProductID)

WHERE p.ProductName = 'Chocolade';

 

<!-- neo4j -->

MATCH (p:Product {productName:"Chocolade"})<-[:PRODUCT]-(:Order)<-[:PURCHASED]-(c:Customer)

RETURN distinct c.companyName;

 

<!-- 7.  -->

 

<!-- mysql -->

SELECT e.EmployeeID, count(*) AS Count

FROM Employee AS e

JOIN Order AS ON (o.EmployeeID = e.EmployeeID)

GROUP BY e.EmployeeID

ORDER BY Count DESC LIMIT 10;

 

<!-- neo4j -->

MATCH (:Order)<-[:SOLD]-(e:Employee)

RETURN e.namecount(*) AS cnt

ORDER BY cnt DESC LIMIT 10

 

 

 

06-19
### Neo4j 数据库使用指南与下载 Neo4j 是一种流行的图数据库,支持复杂的节点和关系建模。以下是关于 Neo4j 的使用指南与下载方法的详细介绍。 #### 1. 下载 Neo4j 用户可以从官方网站下载 Neo4j 数据库。具体步骤如下: - 访问 [Neo4j 官方网站](https://neo4j.com/)。 - 在下载页面选择适合的操作系统版本(如 Windows、macOS 或 Linux)[^1]。 - 下载完成后,按照安装向导完成安装过程。 #### 2. 初次登录与密码修改 初次启动 Neo4j 数据库时,默认用户名和密码均为 `neo4j/neo4j`。首次登录后,系统会强制要求修改密码以增强安全性。修改密码可以通过以下 Cypher 查询实现: ```cypher ALTER CURRENT USER SET PASSWORD FROM 'neo4j' TO 'new_password'; ``` 上述查询将当前用户的密码从默认值更改为新密码 `new_password`[^1]。 #### 3. 创建节点与关系 Neo4j 使用 Cypher 查询语言进行数据操作。以下是创建节点和关系的基本示例: - 创建一个名为 `Alice` 的员工节点: ```cypher CREATE (e:Employee {id: 1, name: 'Alice', salary: 8000}); ``` - 如果节点已存在,则可以使用 `MERGE` 关键字避免重复创建: ```cypher MERGE (e:Employee {id: 1, name: 'Alice'}); ``` - 创建两个人员节点并建立关系: ```cypher CREATE (p1:Person {name: 'Alice'}); CREATE (p2:Person {name: 'Bob'}); CREATE (p1)-[:KNOWS]->(p2); ``` 上述代码展示了如何使用 Cypher 语言存储数据[^2]。 #### 4. APOC 扩展功能 APOC 是 Neo4j 的一个扩展库,提供了许多高级功能。例如,生成完全图的功能可以通过以下查询实现: ```cypher CALL apoc.generate.complete(['A', 'B', 'C'], 'CONNECTED'); ``` 此查询将在节点列表 `['A', 'B', 'C']` 中生成一个完全图,并为每对节点创建 `CONNECTED` 类型的关系[^3]。 #### 5. 性能优化与索引 为了提高查询性能,建议为频繁查询的属性创建索引。例如: ```cypher CREATE INDEX FOR (n:Person) ON (n.name); ``` 此命令为 `Person` 节点的 `name` 属性创建了一个索引,从而加速基于该属性的查询[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值