--- sidebar_label: 3.0 版本语法变更 title: 3.0 版本语法变更 description: "TDengine 3.0 版本的语法变更说明" --- ## SQL 基本元素变更 | # | **元素** | **差异性** | **说明** | | - | :-------: | :--------: | :------- | | 1 | VARCHAR | 新增 | BINARY类型的别名。 | 2 | TIMESTAMP字面量 | 新增 | 新增支持 TIMESTAMP 'timestamp format' 语法。 | 3 | _ROWTS伪列 | 新增 | 表示时间戳主键。是_C0伪列的别名。 | 4 | INFORMATION_SCHEMA | 新增 | 包含各种SCHEMA定义的系统数据库。 | 5 | PERFORMANCE_SCHEMA | 新增 | 包含运行信息的系统数据库。 | 6 | 连续查询 | 废除 | 不再支持连续查询。相关的各种语法和接口废除。 | 7 | 混合运算 | 增强 | 查询中的混合运算(标量运算和矢量运算混合)全面增强,SELECT的各个子句均全面支持符合语法语义的混合运算。 | 8 | 标签运算 | 新增 |在查询中,标签列可以像普通列一样参与各种运算,用于各种子句。 | 9 | 时间线子句和时间函数用于超级表查询 | 增强 |没有PARTITION BY时,超级表的数据会被合并成一条时间线。 ## SQL 语句变更 在 TDengine 中,普通表的数据模型中可使用以下数据类型。 | # | **语句** | **差异性** | **说明** | | - | :-------: | :--------: | :------- | | 1 | ALTER ACCOUNT | 废除 | 2.x中为企业版功能,3.0不再支持。语法暂时保留了,执行报“This statement is no longer supported”错误。 | 2 | ALTER ALL DNODES | 新增 | 修改所有DNODE的参数。 | 3 | ALTER DATABASE | 调整 | 废除
  • QUORUM:写入需要的副本确认数。3.0版本使用STRICT来指定强一致还是弱一致。3.0.0版本STRICT暂不支持修改。
  • BLOCKS:VNODE使用的内存块数。3.0版本使用BUFFER来表示VNODE写入内存池的大小。
  • UPDATE:更新操作的支持模式。3.0版本所有数据库都支持部分列更新。
  • CACHELAST:缓存最新一行数据的模式。3.0版本用CACHEMODEL代替。
  • COMP:3.0版本暂不支持修改。
    新增
  • CACHEMODEL:表示是否在内存中缓存子表的最近数据。
  • CACHESIZE:表示缓存子表最近数据的内存大小。
  • WAL_FSYNC_PERIOD:代替原FSYNC参数。
  • WAL_LEVEL:代替原WAL参数。
    调整
  • REPLICA:3.0.0版本暂不支持修改。
  • KEEP:3.0版本新增支持带单位的设置方式。 | 4 | ALTER STABLE | 调整 | 废除
  • CHANGE TAG:修改标签列的名称。3.0版本使用RENAME TAG代替。
    新增
  • RENAME TAG:代替原CHANGE TAG子句。
  • COMMENT:修改超级表的注释。 | 5 | ALTER TABLE | 调整 | 废除
  • CHANGE TAG:修改标签列的名称。3.0版本使用RENAME TAG代替。
    新增
  • RENAME TAG:代替原CHANGE TAG子句。
  • COMMENT:修改表的注释。
  • TTL:修改表的生命周期。 | 6 | ALTER USER | 调整 | 废除
  • PRIVILEGE:修改用户权限。3.0版本使用GRANT和REVOKE来授予和回收权限。
    新增
  • ENABLE:启用或停用此用户。
  • SYSINFO:修改用户是否可查看系统信息。 | 7 | BALANCE VGROUP | 新增 | 集群存储负载均衡。3.0.0版本暂不支持。 | 8 | COMPACT VNODES | 暂不支持 | 整理指定VNODE的数据。3.0.0版本暂不支持。 | 9 | CREATE ACCOUNT | 废除 | 2.x中为企业版功能,3.0不再支持。语法暂时保留了,执行报“This statement is no longer supported”错误。 | 10 | CREATE DATABASE | 调整 | 废除
  • BLOCKS:VNODE使用的内存块数。3.0版本使用BUFFER来表示VNODE写入内存池的大小。
  • CACHE:VNODE使用的内存块的大小。3.0版本使用BUFFER来表示VNODE写入内存池的大小。
  • CACHELAST:缓存最新一行数据的模式。3.0版本用CACHEMODEL代替。
  • DAYS:数据文件存储数据的时间跨度。3.0版本使用DURATION代替。
  • FSYNC:当 WAL 设置为 2 时,执行 fsync 的周期。3.0版本使用WAL_FSYNC_PERIOD代替。
  • QUORUM:写入需要的副本确认数。3.0版本使用STRICT来指定强一致还是弱一致。
  • UPDATE:更新操作的支持模式。3.0版本所有数据库都支持部分列更新。
  • WAL:WAL 级别。3.0版本使用WAL_LEVEL代替。
    新增
  • BUFFER:一个 VNODE 写入内存池大小。
  • CACHEMODEL:表示是否在内存中缓存子表的最近数据。
  • CACHESIZE:表示缓存子表最近数据的内存大小。
  • DURATION:代替原DAYS参数。新增支持带单位的设置方式。
  • PAGES:一个 VNODE 中元数据存储引擎的缓存页个数。
  • PAGESIZE:一个 VNODE 中元数据存储引擎的页大小。
  • RETENTIONS:表示数据的聚合周期和保存时长。
  • STRICT:表示数据同步的一致性要求。
  • SINGLE_STABLE:表示此数据库中是否只可以创建一个超级表。
  • VGROUPS:数据库中初始VGROUP的数目。
  • WAL_FSYNC_PERIOD:代替原FSYNC参数。
  • WAL_LEVEL:代替原WAL参数。
  • WAL_RETENTION_PERIOD:wal文件的额外保留策略,用于数据订阅。
  • WAL_RETENTION_SIZE:wal文件的额外保留策略,用于数据订阅。
  • WAL_ROLL_PERIOD:wal文件切换时长。
  • WAL_SEGMENT_SIZE:wal单个文件大小。
    调整
  • KEEP:3.0版本新增支持带单位的设置方式。 | 11 | CREATE DNODE | 调整 | 新增主机名和端口号分开指定语法
  • CREATE DNODE dnode_host_name PORT port_val | 12 | CREATE INDEX | 新增 | 创建SMA索引。 | 13 | CREATE MNODE | 新增 | 创建管理节点。 | 14 | CREATE QNODE | 新增 | 创建查询节点。 | 15 | CREATE SNODE | 新增 | 创建流计算节点。3.0.0版本暂不支持。 | 16 | CREATE STABLE | 调整 | 新增表参数语法
  • COMMENT:表注释。 | 17 | CREATE STREAM | 新增 | 创建流。 | 18 | CREATE TABLE | 调整 | 新增表参数语法
  • COMMENT:表注释。
  • WATERMARK:指定窗口的关闭时间。
  • MAX_DELAY:用于控制推送计算结果的最大延迟。
  • ROLLUP:指定的聚合函数,提供基于多层级的降采样聚合结果。
  • SMA:提供基于数据块的自定义预计算功能。
  • TTL:用来指定表的生命周期的参数。 | 18 | CREATE TOPIC | 新增 | 创建订阅主题。 | 19 | DROP ACCOUNT | 废除 | 2.x中为企业版功能,3.0不再支持。语法暂时保留了,执行报“This statement is no longer supported”错误。 | 20 | DROP BNODE | 新增 | 删除backup节点。3.0.0版本暂不支持。 | 21 | DROP CONSUMER GROUP | 新增 | 删除消费组。 | 22 | DROP DNODE | 新增 | 删除数据节点。3.0.0版本暂不支持。 | 23 | DROP INDEX | 新增 | 删除索引。 | 24 | DROP MNODE | 新增 | 创建管理节点。 | 25 | DROP QNODE | 新增 | 创建查询节点。 | 26 | DROP SNODE | 新增 | 删除流计算节点。3.0.0版本暂不支持。 | 27 | DROP STREAM | 新增 | 删除流。 | 28 | DROP TABLE | 调整 | 新增批量删除语法 | 29 | DROP TOPIC | 新增 | 删除订阅主题。 | 30 | EXPLAIN | 新增 | 查看查询语句的执行计划。 | 31 | GRANT | 新增 | 授予用户权限。 | 32 | KILL TRANSACTION | 新增 | 终止管理节点的事务。 | 33 | KILL STREAM | 废除 | 终止连续查询。3.0版本不再支持连续查询,而是用更通用的流计算来代替。 | 34 | MERGE VGROUP | 新增 | 合并VGROUP。 | 35 | REDISTRIBUTE VGROUP | 新增 | 调整VGROUP的数据分布。3.0.0版本暂不支持。 | 36 | REVOKE | 新增 | 回收用户权限。 | 37 | SELECT | 调整 |
  • SELECT关闭隐式结果列,输出列均需要由SELECT子句来指定。
  • DISTINCT功能全面支持。2.x版本只支持对标签列去重,并且不可以和JOIN、GROUP BY等子句混用。
  • JOIN功能增强。增加支持:JOIN后WHERE条件中有OR条件;JOIN后的多表运算;JOIN后的多表GROUP BY。
  • FROM后子查询功能大幅增强。不限制子查询嵌套层数;支持子查询和UNION ALL混合使用;移除其他一些之前版本的语法限制。
  • WHERE后可以使用任意的标量表达式。
  • GROUP BY功能增强。支持任意标量表达式及其组合的分组。
  • SESSION可以用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。
  • STATE_WINDOW可以用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。
  • ORDER BY功能大幅增强。不再必须和GROUP BY子句一起使用;不再有排序表达式个数的限制;增加支持NULLS FIRST/LAST语法功能;支持符合语法语义的任意表达式。
  • 新增PARTITION BY语法。替代原来的GROUP BY tags。 | 38 | SHOW ACCOUNTS | 废除 | 2.x中为企业版功能,3.0不再支持。语法暂时保留了,执行报“This statement is no longer supported”错误。 | 39 | SHOW APPS |新增 | 显示接入集群的应用(客户端)信息。 | 40 | SHOW BNODES |新增 | 显示当前系统中存在的 BNODE 的信息。3.0.0版本暂不支持。 | 41 | SHOW CONSUMERS | 新增 | 显示当前数据库下所有活跃的消费者的信息。 | 42 | SHOW DATABASES | 调整 | 3.0版本只显示数据库名。 | 43 | SHOW FUNCTIONS | 调整 | 3.0版本只显示自定义函数名。 | 44 | SHOW LICENCE | 新增 | 和SHOW GRANTS 命令等效。 | 45 | SHOW INDEXES | 新增 | 显示已创建的索引。 | 46 | SHOW LOCAL VARIABLES | 新增 | 显示当前客户端配置参数的运行值。 | 47 | SHOW MODULES | 废除 | 显示当前系统中所安装的组件的信息。 | 48 | SHOW QNODES | 新增 | 显示当前系统中QNODE的信息。 | 49 | SHOW SNODES | 新增 | 显示当前系统中SNODE的信息。3.0.0版本暂不支持。 | 50 | SHOW STABLES | 调整 | 3.0版本只显示超级表名。 | 51 | SHOW STREAMS | 调整 | 2.x版本此命令显示系统中已创建的连续查询的信息。3.0版本废除了连续查询,用流代替。此命令显示已创建的流。 | 52 | SHOW SUBSCRIPTIONS | 新增 | 显示当前数据库下的所有的订阅关系 | 53 | SHOW TABLES | 调整 | 3.0版本只显示表名。 | 54 | SHOW TABLE DISTRIBUTED | 新增 | 显示表的数据分布信息。代替2.x版本中的SELECT _block_dist() FROM { tb_name | stb_name }方式。 | 55 | SHOW TOPICS | 新增 | 显示当前数据库下的所有订阅主题。 | 56 | SHOW TRANSACTIONS | 新增 | 显示当前系统中正在执行的事务的信息。 | 57 | SHOW DNODE VARIABLES | 新增 |显示指定DNODE的配置参数。 | 58 | SHOW VNODES | 暂不支持 | 显示当前系统中VNODE的信息。3.0.0版本暂不支持。 | 59 | SPLIT VGROUP | 新增 | 拆分VGROUP。 | 60 | TRIM DATABASE | 新增 | 删除过期数据,并根据多级存储的配置归整数据。 ## SQL 函数变更 | # | **函数** | **差异性** | **说明** | | - | :-------: | :--------: | :------- | | 1 | TWA | 增强 | 可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。 | 2 | IRATE | 增强 | 可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。 | 3 | LEASTSQUARES | 增强 | 可以用于超级表了。 | 4 | ELAPSED | 增强 | 可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。 | 5 | DIFF | 增强 | 可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。 | 6 | DERIVATIVE | 增强 | 可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。 | 7 | CSUM | 增强 | 可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。 | 8 | MAVG | 增强 | 可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。 | 9 | SAMPLE | 增强 | 可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。 | 10 | STATECOUNT | 增强 | 可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。 | 11 | STATEDURATION | 增强 | 可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。