Neo4j入门教程2(看不懂评论区随便骂)

1. ORDER BY
create (s4:student{age:21,num:98}),(s5:student{age:22,num:86}),(s6:student{age:23,num:99})

承接上文,创建三个学生节点,标签为student1、student2、student3,分别拥有age属性和num属性

match(s:student) return s

查看我们创建的节点得到如下结果:
Neo4j入门教程2(看不懂评论区随便骂)_第1张图片

match (s:student) return s order by s.num

以上代码,按照num属性默认对返回的学生进行升序排序
Neo4j入门教程2(看不懂评论区随便骂)_第2张图片

match (s:student) return s order by s.num desc

如果需要降序排序,只需要在末尾加上desc即可
Neo4j入门教程2(看不懂评论区随便骂)_第3张图片

2. UNION语句
create (d:dog{name:"aaa",come_from:"四川",come_to:"重庆",id:"d_1"})
create (d:dog{name:"aab",come_from:"四川",come_to:"北京",id:"d_2"})
create (d:dog{name:"aac",come_from:"四川",come_to:"上海",id:"d_3"})
create (d:dog{name:"aad",come_from:"四川",come_to:"深圳",id:"d_4"})

先创建四只狗节点,属性:有名字,来自哪里,去往哪里,编号是什么
Neo4j入门教程2(看不懂评论区随便骂)_第4张图片

create (c:cat{name:"bba",come_from:"陕西",come_to:"四川",color:'yellow'})
create (c:cat{name:"aaa",come_from:"陕西",come_to:"新疆",color:'black'})
create (c:cat{name:"cca",come_from:"陕西",come_to:"西藏",color:'purple'})
create (c:cat{name:"dda",come_from:"陕西",come_to:"甘肃",color:'white'})

创建四只猫节点,属性有:名字,来自哪里,去往哪里,颜色是什么
Neo4j入门教程2(看不懂评论区随便骂)_第5张图片

接着使用UNION语句进行查询结果拼接

match (c:cat) return c.name, c.come_from, c.come_to union match (d:dog) return d.name, d.come_from, d.come_to

Neo4j入门教程2(看不懂评论区随便骂)_第6张图片
上述图片中说:返回的列名必须相同
为了解决此类错误:我们使用AS关键词将查询的列名起一个别名

match (c:cat) return c.name as name, c.come_from as come_from, c.come_to as come_to union match (d:dog) return d.name as name, d.come_from as come_from, d.come_to as come_to

Neo4j入门教程2(看不懂评论区随便骂)_第7张图片
这样我们就成功地执行了查询与合并操作,获得了猫和狗的信息显示在同一个表中

3. LIMIT和SKIP语句

limit用于限制查询语句时最多返回的记录数,这里limit=3,只返回前3条记录
Neo4j入门教程2(看不懂评论区随便骂)_第8张图片

skip用于跳过前面多少条记录,这里跳过第一条,返回最后3条记录
Neo4j入门教程2(看不懂评论区随便骂)_第9张图片

4. MERGE语句

对于CREATE语句来说,每次执行都会创建一个新的节点,即使这两个节点完全一样

create (info:Information{id:1, content:'none'})
create (info:Information{id:1, content:'none'})

Neo4j入门教程2(看不懂评论区随便骂)_第10张图片

但是如果使用MERGE语句,如果创建一个已经存在的节点,就不会创建(MERGE命令将新的节点添加到数据库,只有当它不存在)

merge (mes:Message{id:1, content:'none'})

如下图所示:当我们再次执行时:no changes, no records(数据库没有发生改变)
Neo4j入门教程2(看不懂评论区随便骂)_第11张图片
同时数据库中只会存在一个节点
Neo4j入门教程2(看不懂评论区随便骂)_第12张图片

5. IS NULL和IS NOT NULL

这是cat节点,其中四个有值,一个属性全为空
Neo4j入门教程2(看不懂评论区随便骂)_第13张图片

match (c:cat) where c.name is null return c #查询name属性为空的节点

Neo4j入门教程2(看不懂评论区随便骂)_第14张图片

match (c:cat) where c.name is not null return c #查询name属性为不空的节点

Neo4j入门教程2(看不懂评论区随便骂)_第15张图片

6. IN语句

Neo4j入门教程2(看不懂评论区随便骂)_第16张图片
查询猫标签时,有五个节点,包含一个空节点

match (c:cat) where c.name in ['bba', 'dda'] return c

IN和WHERE语句一起使用查询节点name属性在集合’bba’和’dda’中的节点

你可能感兴趣的:(neo4j,数据库,SQL)