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
查看我们创建的节点得到如下结果:
match (s:student) return s order by s.num
以上代码,按照num属性默认对返回的学生进行升序排序
match (s:student) return s order by s.num desc
如果需要降序排序,只需要在末尾加上desc即可
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"})
先创建四只狗节点,属性:有名字,来自哪里,去往哪里,编号是什么
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'})
创建四只猫节点,属性有:名字,来自哪里,去往哪里,颜色是什么
接着使用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
上述图片中说:返回的列名必须相同
为了解决此类错误:我们使用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
这样我们就成功地执行了查询与合并操作,获得了猫和狗的信息显示在同一个表中
3. LIMIT和SKIP语句
limit用于限制查询语句时最多返回的记录数,这里limit=3,只返回前3条记录
skip用于跳过前面多少条记录,这里跳过第一条,返回最后3条记录
4. MERGE语句
对于CREATE语句来说,每次执行都会创建一个新的节点,即使这两个节点完全一样
create (info:Information{id:1, content:'none'})
create (info:Information{id:1, content:'none'})
但是如果使用MERGE语句,如果创建一个已经存在的节点,就不会创建(MERGE命令将新的节点添加到数据库,只有当它不存在)
merge (mes:Message{id:1, content:'none'})
如下图所示:当我们再次执行时:no changes, no records(数据库没有发生改变)
同时数据库中只会存在一个节点
5. IS NULL和IS NOT NULL
这是cat节点,其中四个有值,一个属性全为空
match (c:cat) where c.name is null return c #查询name属性为空的节点
match (c:cat) where c.name is not null return c #查询name属性为不空的节点
6. IN语句
查询猫标签时,有五个节点,包含一个空节点
match (c:cat) where c.name in ['bba', 'dda'] return c
IN和WHERE语句一起使用查询节点name属性在集合’bba’和’dda’中的节点