本文将MaxCompute SQL与Hive、MySQL、Oracle、SQL Server的SQL语法进行对比,为您介绍MaxCompute对这些数据库常见SQL语法的支持情况。
MaxCompute DDL语法差异对比
语法 | MaxCompute | Hive | MySQL | Oracle | SQL Server |
CREATE TABLE—PRIMARY KEY | Y | N | Y | Y | Y |
CREATE TABLE—NOT NULL | Y | N | Y | Y | Y |
CREATE TABLE—CLUSTER BY | Y | Y | N | Y | Y |
CREATE TABLE—EXTERNAL TABLE | Y (OSS, OTS, TDDL) | Y | N | Y | N |
CREATE TABLE—TEMPORARY TABLE | N | Y | Y | Y | Y (with #prefix) |
INDEX—CREATE INDEX | N | Y | Y | Y | Y |
VIRTUAL COLUMN | N | N | N | Y | Y |
MaxComputeDML语法差异对比
语法 | MaxCompute | Hive | MySQL | Oracle | SQL Server |
CTE | Y | Y | Y | Y | Y |
SELECT—recursive CTE | N | N | Y | Y | Y |
SELECT—GROUP BY ROLL UP | Y | Y | Y | Y | Y |
SELECT—GROUP BY CUBE | Y | Y | N | Y | Y |
SELECT—GROUPING SET | Y | Y | N | Y | Y |
SELECT—IMPLICT JOIN | Y | Y | N | Y | Y |
SELECT—PIVOT | N | N | N | Y | Y |
SEMI JOIN | Y | Y | Y | N | N |
SELECT TRANSFORM | Y | Y | N | N | N |
SELECT—corelated subquery | Y | Y | Y | Y | Y |
ORDER BY NULLS FIRST/LAST | Y | Y | Y | Y | Y |
LATERAL VIEW | Y | Y | N | Y | Y (CROSS APPLY keyword) |
SET OPERATOR—UNION (disintct) | Y | Y | Y | Y | Y |
SET OPERATOR—INTERSECT | Y | N | N | Y | Y |
SET OPERATOR—MINUS/EXCEPT | Y | N | N | Y | Y(keyword EXCEPT) |
INSERT INTO ... VALUES | Y | Y | Y | Y | Y |
INSERT INTO (ColumnList) | Y | Y | Y | Y | Y |
UPDATE … WHERE | Y | Y | Y | Y | Y |
DELETE … WHERE | Y | Y | Y | Y | Y |
MERGE INTO | Y | Y | N | Y | Y |
ANALYTIC—reusable WINDOWING CLAUSE | Y | Y | N | N | N |
ANALYTIC—CURRENT ROW | Y | Y | N | Y | Y |
ANALYTIC—UNBOUNDED | Y | N | Y | Y | Y |
ANALYTIC—RANGE … | N | Y | N | Y | Y |
WHILE DO | N | N | Y | Y | Y |
Y | N | N | N 说明 SQL Function/Storage Procedure一定程度上能满足MaxCompute参数化VIEW的功能。 | N |
MaxCompute SCRIPTING语法差异对比
语法 | MaxCompute | Hive | MySQL | Oracle | SQL Server |
TABLE VARIABLE | Y | Y | Y | Y | Y |
SCALER VARIABLE | Y | Y | Y | Y | Y |
ERROR HANDLING—RAISE ERROR | N | N | Y | Y | Y |
ERROR HANDLING—TRY CATCH | N | N | N | Y | Y |
FLOW CONTROL—LOOP | N | N | Y | Y | Y |
CURSOR | N | N | Y | Y | Y |