CREATE示例(增):
CREATE 关系 = (country:国家 {name: '中国', 备注: "我爱中国", 随意添加你想要的内容:"想添加的任何内容"})-[:首都 {city: '北京', xx:'xx'}]->(city:地区 {name: '北京'})-[:管辖]->(海淀区:XX路 {name: 'XX大学'})-[:属于{任意定义:'任意定义'}]-> (country) return 关系
关系讲解:中国的首都是北京,北京管辖XX大学,XX大学属于中国
要注意的点:
1. CREATE(主体-关系)-> (客体) 意思就是主体和关系用-连接,只有带了关系的实体才称之为主体,才能用->指向客体,否则会报错;
2.主体除了第一个name属性名是规定之外,其他属性名都可以自定义,往后面一直加用,隔开就可以了;
3.不能重复CREATE一个结点,例如本例中,不能重复的CREATE(country: ) country已经创建过了,后面跟什么都会报错;如果要给创建好的结点添加一个属性,可以用SET;
MATCH示例(查):
match的作用是查找,给一个要查找的label,然后根据需要返回label的属性
查找结点:
match (n:国家)
return n.name
查找关系:
1.给定结点,返回和该结点所有有关的结点name,-- 表示不考虑方向的关系,可以根据相应关系选择是否带方向
match (n {name:'中国'})--(rela)
return rela.name
2.给定两个结点,返回对应结点的name
match (:国家{name:'中国'})--(rela:XX路)
return rela.name
对照我们一开始创建结点的逻辑关系来看
3.给定两个结点,返回对应关系
match (n:国家{name:'中国'})-[r]->(city)
return type(r)
4.给定关系,返回两头的结点
match (a)-[:属于{任意定义:'任意定义'}]-(b)
return a, b
5.1给定一个结点和一个关系,返回该条件下所有结点(我们例子中只有一个,就返回一个)
match (school:XX路{name:'XX大学'})<-[:管辖]-(xx)
return xx.name
5.2如果是需要返回多个关系下的结点,关系之间用' | '隔开即可
match (school:XX路{name:'XX大学'})<-[:管辖|属于]-(xx)
return xx.name
DELETE示例(删):
删除单结点:
match (n:地区{name:'北京'})
delete n
如果是单结点,会直接删除,我们这里有关系,所以必须先删除关系:
match (n:地区{name:'北京'})-[r:管辖]->()
delete r
match (n:地区{name:'北京'})<-[r:首都]-()
delete r
分别删除了'北京'作为主体和客体的两个关系使其变成单结点,然后在删除'北京'这个单结点
match (n:地区{name:'北京'})
delete n
# 这里的delete 和 nodetach delete 功能是一样的,都只能删除单结点
删除结点及其关系:慎用
match (n:地区{name:'北京'})
detach delete n
SET示例(改):主要用来更新结点的标签、属性、关系等等
1.修改关系的属性:最开始创建的首都的xx属性是:'xx'
match (country:国家{name:'中国'})-[r:首都]->(m)
set r.xx = '繁华'
return r
2.根据参数来修改属性:参数定义好之后,set n.xx = $xx
{
'xx' = '美丽'
}
match (n {name:'中国'})
set n.xx = $xx
return n.xx
3.修改/添加标签labels
match (n {name:'中国'})
set n:中华人民共和国:中华民族
return n.name, labels(n) AS labels
LOAD CSV:
CSV文件要用LOAD CSV必须满足以下特征:
- 文件需要改为UTF-8格式
- 结束行:Unix上是\n,在windows上是\r\n
- 默认字段的结束符为,
- 字段结束符可以通过使用LOAD CSV命令中的FIELDTERMINATOR选项来更改
- CSV文件中允许使用带引号的字符串,并且在读取数据时删除引号
- 字符串引号的字符要用双引号"
- 双引号必须位于带引号的字符串中,并使用转义字符或第二个双引号进行转义
所以我们在导入CSV文件时,需要先构造这个CSV文件;这里我们直接用一个官方处理好的csv文件示例
导入CSV文件:直接用neo4j的命令行代码即可
LOAD CSV WITH HEADERS FROM "https://data.neo4j.com/northwind/products.csv" AS row
CREATE (n:Product)
SET n = row,
n.unitPrice = toFloat(row.unitPrice),
n.unitsInStock = toInteger(row.unitsInStock), n.unitsOnOrder = toInteger(row.unitsOnOrder),
n.reorderLevel = toInteger(row.reodderLevel), n.discontinued = (row.discontinued <> "0")
倒数三行代码是修改属性类型,不改的话是字符串
点击Product
date和datetime:区别在于需不需要时分秒;
date示例