数据操作语言(DML)
本章节将介绍 Ignite 3 支持的所有数据操作语言(DML)命令。
1.DELETE
从表中删除数据。
sql
DELETE FROM tablePrimary [ [ AS ] alias ]
[ WHERE booleanExpression ]2.INSERT
往表中插入数据。
sql
{ INSERT } INTO tablePrimary
[ '(' column [, column ]* ')' ]
query2.1.联接
Ignite支持并置的和非并置的SQL关联,此外,如果数据在不同的表中,Ignite可以做跨表的关联。
3.MERGE
往表中合并数据。
sql
MERGE INTO tablePrimary [ [ AS ] alias ]
USING tablePrimary
ON booleanExpression
[ WHEN MATCHED THEN UPDATE SET assign [, assign ]* ]
[ WHEN NOT MATCHED THEN INSERT VALUES '(' value [ , value ]* ')' ]参数
tableName:要更新的表名;columnName:要用VALUES子句中的值初始化的列名;
描述
MERGE会更新已有的条目,或者插入新的条目。
示例:
将NewPersons表的数据合入Person表:
sql
MERGE INTO Person USING NewPersons4.SELECT
从一个表或多个表中检索数据。
sql
SELECT [ hintComment ] [ ALL | DISTINCT ]
{ * | projectItem [, projectItem ]* }
FROM tableExpression
[ WHERE booleanExpression ]
[ GROUP BY { groupItem [, groupItem ]* } ]
[ HAVING booleanExpression ]5.UPDATE
更新表的数据。
sql
UPDATE tablePrimary
SET assign [, assign ]*
[ WHERE booleanExpression ]6.WITH
定义一个命名的子查询,然后在后面的子查询中引用。
sql
WITH { query_name [( columnName [,...] )] AS ( query ) [,...] }参数
query_name:要创建的子查询名,该名字会被视为内联视图或表;
描述
WITH创建一个子查询,可以按名称引用一个或多个公用表表达式。列名声明是可选的,即列名可以从命名的查询中推断出来。WITH语句中的最后一个操作可以是SELECT、INSERT、UPDATE、MERGE、DELETE或者CREATE TABLE。
示例:
sql
WITH cte1 AS (
SELECT 1 AS FIRST_COLUMN
), cte2 AS (
SELECT FIRST_COLUMN+1 AS FIRST_COLUMN FROM cte1
)
SELECT sum(FIRST_COLUMN) FROM cte2;18624049226
