![精通Neo4j](https://wfqqreader-1252317822.image.myqcloud.com/cover/113/47216113/b_47216113.jpg)
上QQ阅读APP看书,第一时间看更新
3.3.9 SET语句
SET语句用于更新节点的标签以及节点和关系的属性。SET可以使用map中的参数来设置属性。
提示:设置节点的标签是幂等性操作,即如果试图设置一个已经存在的标签到节点上,则什么也不会发生。查询统计会自己判断是否需要处理。
SET图例如图3-12所示。
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P175_90960.jpg?sign=1739150823-1E0gMu0An8kZWRL3ox1BfXQpddt9cDKd-0-53e59a2b5082d4408f42b3306151d2a3)
图3-12 SET图例
3.3.9.1 设置属性
可以使用SET设置节点或者关系的属性。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P175_102704.jpg?sign=1739150823-WZJEBMknkwjr04sRxZ2GmAxtNph4BkL4-0-ef4242e469e5f583c69e98ed24c700e0)
返回最新修改过的节点。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P175_101802.jpg?sign=1739150823-JzxbQCFwZN9rrCsgk7fj7cKy1VXFrEMq-0-eea5dd76d27f4d4378ca0ce5f7e12cf0)
3.3.9.2 删除属性
通常使用REMOVE来删除一个属性,但有时候也可以随手使用SET。如果属性设置为null,将删除该属性。如下所示。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P176_102705.jpg?sign=1739150823-rMenBVmzrrpiWFEMjUW5qcoS4JNcYPaz-0-75fb8ec67f8a9eb495e3815214b4f6c6)
设置name属性为空之后,name属性则被删除了。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P176_101805.jpg?sign=1739150823-atPTp1KnFuk4knWSOiu6LnN1gEUZLd9r-0-4adac4af521ef635f5af44cdf0aedc8d)
3.3.9.3 在节点和关系间复制属性
可以使用SET复制一个图元素的所有属性到另外一个图元素。记住,这样做会删除目标元素的所有其他属性。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P176_102706.jpg?sign=1739150823-Wl6sDbmpZqBwzAgE1aTYLz5jXPOpbqmn-0-3a6fd81b078cd3fd684df245a022e24a)
Andres节点的所有属性将被Peter节点的属性替换了。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P176_101808.jpg?sign=1739150823-Df0yjotzhNxpLDXgws6f5taK9QFwxX66-0-0af9fff10ed1b25e0c91f98579cfe390)
3.3.9.4 从map中添加属性
当用map来设置属性时,可以使用+=形式的SET,用于只添加属性,而不删除图元素中已存在的属性。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P176_102707.jpg?sign=1739150823-x9MAGHz6dk06MxP5xGBG6r6eMlGxILYr-0-126de0d43fbf68b0e90d6729fbee45ee)
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P176_101811.jpg?sign=1739150823-HxyGcbRnklNAzn4plGQzw8DneBOIPNjK-0-d44a593f0ea655d7ea552b317bf2079e)
3.3.9.5 使用参数设置属性
可以使用参数来给属性赋值。
参数:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P177_102708.jpg?sign=1739150823-cU8CrtaMsoQ2VzQWglzb8dD8p7AzTkvq-0-5f120d4bdb520fde5a2ce790a8171bf2)
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P177_102709.jpg?sign=1739150823-tZoUdK9Sx959I0FFXvKffHIyX5FkOm3l-0-77e9f7bceda72959f7e2a47b82ede6bc)
Andres节点新增一个surname属性。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P177_101814.jpg?sign=1739150823-G5JxHaxd3gJeHoHjTYyXWsFNfRpmvWj8-0-65fa3bdcc2c80a1cb5ee48564d1f886f)
3.3.9.6 使用一个参数设置所有属性
使用参数提供的属性集合来设置节点的属性时,该节点已存在的所有属性将被替换掉。
参数:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P177_102710.jpg?sign=1739150823-WF7yl3bySG8OfSz8Tntk5KaDNC35UuKB-0-4b57438115854ea3d8f8dcad3611d57b)
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P177_102711.jpg?sign=1739150823-M0Qf9mInMUMW12VlOCbdf7eEBSYscMhC-0-5e2bd38ef29e8fd1a09865ebeb0f4da9)
Andres节点的所有属性都被替换为props参数中的属性了。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P177_101817.jpg?sign=1739150823-iFIwSgT5e8X2WsUJjfFT4wEAZ295M4DF-0-edbd9d11b63aec35316b365a009012c8)
3.3.9.7 使用一个SET语句设置多个属性
如果想一次设置多个属性,则使用逗号分开即可。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P178_102712.jpg?sign=1739150823-hu9r1joMXhTQ1GzdLGON9FceCVfma042-0-5dcb653ca4371d702be970a2164a69e3)
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P178_101820.jpg?sign=1739150823-N8qkZ4AjQzDQi0tn7n6mMhnas4dNArXy-0-8ac94ffba59415b505fdf79dfe1aee6d)
3.3.9.8 设置节点的标签
用SET可给节点设置标签。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P178_102713.jpg?sign=1739150823-QIVPDyqO1PEIbKnT0tQAgczb43w8gdR6-0-3d754636d78147a7d4d4e6151e3fcd04)
查询将返回新增了标签的节点。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P178_101823.jpg?sign=1739150823-CUW2Rq1r7c48LLlK5pav82jDbq8vybcj-0-07555f6b8068700733b9ccef9aac6e2e)
3.3.9.9 给一个节点设置多个标签
使用SET给一个节点设置多个标签时,不同的标签之间用冒号分隔。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P178_102714.jpg?sign=1739150823-xSJonxkLt4LJdwuxjEKDXr22K0CxnGnw-0-dd958d84df9b8de6c0ad30938b4dec5b)
查询将返回新增多个标签的节点。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P178_101826.jpg?sign=1739150823-6I9l2QTTfzg7IJe00FhS3vRK19JilIZg-0-d4eb703b31875e5b17bba3412678df99)