概述
INSERT语句通过点模式和边模式向图中插入新的点和边。
与图模式匹配不同,INSERT语句中的点和边模式支持变量声明、标签/Schema表达式和属性规范,但不允许使用WHERE子句。此外,INSERT仅支持最基本的点与边模式的连接方式,并且必须指定边方向。
嬴图支持类型图和开放图,向这两种图中插入数据的语法类似,但要求有所不同。
类型图
在类型图中,插入的点和边必须满足其图类型。如果点、边指定的Schema和属性尚未定义,则无法插入。
在类型图中,每个点或边必须且只能指定一个Schema。所有的属性赋值都会根据指定的值类型进行校验;未赋值属性的默认值为null。
创建一个类型图;
CREATE GRAPH g1 {
NODE User ({name STRING, gender STRING}),
NODE Club ({since INT32}),
EDGE Follows ()-[{createdOn DATE}]->(),
EDGE Joins ()-[{memberNo UINT32}]->()
}
开放图
在开放图中,你可以直接插入点和边,系统会自动创建相应的标签和属性。
在开放图中,可以为每个点或边指定零个、一个或多个标签,每个点或边单独关联一组属性。
创建一个开放图:
CREATE GRAPH g2 ANY
插入点
使用点模式插入点。
插入一个User点:
INSERT (:User {name: "claire", gender: "female"})
插入多个点并返回它们:
INSERT (n1:User {_id: "U2", name: "Quasar92"}),
(n2:Club {_id: "C1"}),
(n3:Club)
RETURN n1, n2, n3
在开放图中,你可以给一个点指定多个标签:
INSERT (n:Person&Employee {name: "Bob"})
RETURN n
插入边
使用边模式插入边,边模式两端连接点模式,并包含方向以指示起点和终点。
插入两个User点,并在它们中间插入一条Follows边:
INSERT (:User {name: 'rowlock'})-[:Follows {since: date('2024-01-05')}]->(:User {name: 'Brainy', gender: 'male'})
如果要将边插入到已存在的两点之间,首先使用MATCH语句获取点:
MATCH (n1:User {name: 'claire'}), (n2:Club {_id: 'C1'})
INSERT (n1)-[e:Joins {fee: 1200}]->(n2)
RETURN e
插入一条Joins边,起点是一个已存在的User点,终点是新插入的Club点:
MATCH (user:User {name: 'Quasar92'})
INSERT (user)-[:Joins]->(:Club {_id: "C2"})
插入图

上图可视为两条在Club点相交的路径:
INSERT (:User {name: 'waveBliss'})-[:Joins]->(c:Club {_id: 'C3'}),
(:User {name: 'bella'})-[:Joins]->(c)<-[:Joins]-(:User {name: 'Roose'})
或者,你也可以单独插入图中的点和边:
INSERT (waveBliss:User {name: 'waveBliss'}),
(bella:User {name: 'bella'}),
(Roose:User {name: 'Roose'}),
(C3:Club {_id: 'C3'}),
(waveBliss)-[:Joins]->(C3),
(bella)-[:Joins]->(C3),
(Roose)-[:Joins]->(C3)
属性值示例
嬴图支持多种属性类型。查看完整列表
以下是不同类型属性值的示例。这些示例假设在类型图中使用,其中属性具有明确的值类型定义。在开放图中,属性值类型也是开放的,但这些示例仍可作为赋值的参考。
数值类属性
数值类属性值类型包括INT(INT32)、UINT(UINT32)、INT64、UINT64、FLOAT、DOUBLE和DECIMAL(<precision>, <scale>)。
// age is UINT32, weight is DECIMAL(10,2)
INSERT (:Person {age: 34, weight: 60.3})
文本类属性
文本类属性值类型包括STRING和TEXT。
// name is STRING
INSERT (:Person {name: "John Doe"})
时间点类属性
时间点类属性值类型包括DATE、LOCAL DATETIME、LOCAL TIME、ZONED DATETIME、ZONED TIME、TIMESTAMP和DATETIME。
// register is ZONED DATETIME, lastLogin is timestamp
INSERT (:Person {
register: zoned_datetime("2025-01-01 12:20:02+0200"),
lastLogin: 1762338059
})
时间段类属性
时间段类属性值类型包括DURATION(YEAR TO MONTH)和DURATION(DAY TO SECOND)。
// ativeDuration is DURATION(DAY TO SECOND)
INSERT (:Person {ativeDuration: "P526DT23H14M8S"})
布尔类属性
布尔类属性值类型包括BOOL。
// isBlocked is BOOL
INSERT (:Person {isBlocked: FALSE})
空间类属性
空间类属性值类型包括POINT和POINT3D。
// location is POINT, PoI is POINT3D
INSERT (:Person {
location: POINT({latitude: 22.3, longitude: 125.6}),
PoI: POINT3D({x: 10, y: 3.4, z: 6.2})
})
记录类属性
记录类属性值类型包括RECORD。
// bodyInfo is RECORD
INSERT (:Person {
bodyInfo: {height: 175, weight: 68, bmi: 22.2, hairColor: "brown", bloodTyle: "O"}
})
二进制类属性
二进制类属性值类型包括BLOB。
// avatar is BLOB
INSERT (:Person {
avatar: "data:image/png;base64,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"
})
列表类属性
列表类属性值类型包括LIST<subType>。
// tags is LIST<STRING>
INSERT (:Person {tags: ["IT", "happy", "geek"]})