数据操作语言(DML)
本章节将介绍 Ignite 3 支持的所有数据操作语言(DML)命令。
1.DELETE
从表中删除数据。
sql
DELETE FROM tablePrimary [ [ AS ] alias ]
[ WHERE booleanExpression ]
2.INSERT
往表中插入数据。
sql
{ INSERT } INTO tablePrimary
[ '(' column [, column ]* ')' ]
query
2.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 NewPersons
4.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