---
sidebar_label: 参数限制与保留关键字 
title: TDengine 参数限制与保留关键字
---

## 名称命名规则

1. 合法字符：英文字符、数字和下划线
2. 允许英文字符或下划线开头，不允许以数字开头
3. 不区分大小写
4. 转义后表（列）名规则：
   为了兼容支持更多形式的表（列）名，TDengine 引入新的转义符 "`"。可用让表名与关键词不冲突，同时不受限于上述表名称合法性约束检查。
   转义后的表（列）名同样受到长度限制要求，且长度计算的时候不计算转义符。使用转义字符以后，不再对转义字符中的内容进行大小写统一。

   例如：\`aBc\` 和 \`abc\` 是不同的表（列）名，但是 abc 和 aBc 是相同的表（列）名。
   需要注意的是转义字符中的内容必须是可打印字符。
   支持转义符的功能从 2.3.0.1 版本开始。

## 密码合法字符集

`[a-zA-Z0-9!?$%^&*()_–+={[}]:;@~#|<,>.?/]`

去掉了 `` ‘“`\ `` (单双引号、撇号、反斜杠、空格)

- 数据库名：不能包含“.”以及特殊字符，不能超过 32 个字符
- 表名：不能包含“.”以及特殊字符，与所属数据库名一起，不能超过 192 个字节 ，每行数据最大长度 48KB
- 表的列名：不能包含特殊字符，不能超过 64 个字节
- 数据库名、表名、列名，都不能以数字开头，合法的可用字符集是“英文字符、数字和下划线”
- 表的列数：不能超过 1024 列，最少需要 2 列，第一列必须是时间戳（从 2.1.7.0 版本开始，改为最多支持 4096 列）
- 记录的最大长度：包括时间戳 8 字节，不能超过 48KB（每个 BINARY/NCHAR 类型的列还会额外占用 2 个 字节 的存储位置）
- 单条 SQL 语句默认最大字符串长度：1048576 字节，但可通过系统配置参数 maxSQLLength 修改，取值范围 65480 ~ 1048576 字节
- 数据库副本数：不能超过 3
- 用户名：不能超过 23 个 字节
- 用户密码：不能超过 15 个 字节
- 标签(Tags)数量：不能超过 128 个，可以 0 个
- 标签的总长度：不能超过 16KB
- 记录条数：仅受存储空间限制
- 表的个数：仅受节点个数限制
- 库的个数：仅受节点个数限制
- 单个库上虚拟节点个数：不能超过 64 个
- 库的数目，超级表的数目、表的数目，系统不做限制，仅受系统资源限制
- SELECT 语句的查询结果，最多允许返回 1024 列（语句中的函数调用可能也会占用一些列空间），超限时需要显式指定较少的返回数据列，以避免语句执行报错。（从 2.1.7.0 版本开始，改为最多允许 4096 列）

## 保留关键字

目前 TDengine 有将近 200 个内部保留关键字，这些关键字无论大小写均不可以用作库名、表名、STable 名、数据列名及标签列名等。这些关键字列表如下：

### A

- ABORT
- ACCOUNT
- ACCOUNTS
- ADD
- AFTER
- ALL
- ALTER
- AND
- AS
- ASC
- ATTACH

### B

- BEFORE
- BEGIN
- BETWEEN
- BIGINT
- BINARY
- BITAND
- BITNOT
- BITOR
- BLOCKS
- BOOL
- BY

### C

- CACHE
- CACHELAST
- CASCADE
- CHANGE
- CLUSTER
- COLON
- COLUMN
- COMMA
- COMP
- COMPACT
- CONCAT
- CONFLICT
- CONNECTION
- CONNECTIONS
- CONNS
- COPY
- CREATE
- CTIME

### D

- DATABASE  
- DATABASES 
- DAYS      
- DBS       
- DEFERRED  
- DELETE
- DELIMITERS
- DESC      
- DESCRIBE  
- DETACH    
- DISTINCT  
- DIVIDE    
- DNODE     
- DNODES    
- DOT       
- DOUBLE    
- DROP  

### E

- END     
- EQ      
- EXISTS  
- EXPLAIN 

### F

- FAIL   
- FILE   
- FILL   
- FLOAT  
- FOR    
- FROM   
- FSYNC  

### G

- GE    
- GLOB  
- GRANTS
- GROUP 
- GT  

### H

- HAVING 

### I

- ID
- IF
- IGNORE 
- IMMEDIA
- IMPORT 
- IN     
- INITIAL
- INSERT 
- INSTEAD
- INT    
- INTEGER
- INTERVA
- INTO   
- IS     
- ISNULL 

### J

- JOIN

### K

- KEEP
- KEY 
- KILL

### L

- LE    
- LIKE  
- LIMIT 
- LINEAR
- LOCAL 
- LP    
- LSHIFT
- LT 

### M

- MATCH    
- MAXROWS  
- MINROWS  
- MINUS    
- MNODES   
- MODIFY   
- MODULES  

### N

- NE     
- NONE   
- NOT    
- NOTNULL
- NOW    
- NULL

### O

- OF    
- OFFSET
- OR    
- ORDER 

### P

- PARTITION
- PASS     
- PLUS     
- PPS      
- PRECISION
- PREV     
- PRIVILEGE

### Q

- QTIME 
- QUERIE
- QUERY 
- QUORUM

### R

- RAISE  
- REM    
- REPLACE
- REPLICA
- RESET  
- RESTRIC
- ROW    
- RP     
- RSHIFT

### S

- SCORES 
- SELECT 
- SEMI   
- SESSION
- SET    
- SHOW   
- SLASH  
- SLIDING
- SLIMIT 
- SMALLIN
- SOFFSET
- STable 
- STableS
- STAR    
- STATE   
- STATEMEN
- STATE_WI
- STORAGE 
- STREAM  
- STREAMS 
- STRING  
- SYNCDB  

### T

- TABLE     
- TABLES    
- TAG       
- TAGS      
- TBNAME    
- TIMES     
- TIMESTAMP 
- TINYINT   
- TOPIC     
- TOPICS    
- TRIGGER   
- TSERIES   

### U

- UMINUS   
- UNION    
- UNSIGNED 
- UPDATE   
- UPLUS    
- USE      
- USER     
- USERS    
- USING  

### V

- VALUES   
- VARIABLE 
- VARIABLES
- VGROUPS  
- VIEW     
- VNODES   

### W

- WAL
- WHERE

### _

- _C0
- _QSTART
- _QSTOP
- _QDURATION
- _WSTART
- _WSTOP
- _WDURATION


## 特殊说明
### TBNAME
`TBNAME` 可以视为超级表中一个特殊的标签，代表子表的表名。

获取一个超级表所有的子表名及相关的标签信息：

```mysql
SELECT TBNAME, location FROM meters;
```

统计超级表下辖子表数量：

```mysql
SELECT COUNT(TBNAME) FROM meters;
```

以上两个查询均只支持在WHERE条件子句中添加针对标签（TAGS）的过滤条件。例如：
```mysql
taos> SELECT TBNAME, location FROM meters;
             tbname             |            location            |
==================================================================
 d1004                          | California.SanFrancisco        |
 d1003                          | California.SanFrancisco        |
 d1002                          | California.LosAngeles          |
 d1001                          | California.LosAngeles          |
Query OK, 4 row(s) in set (0.000881s)

taos> SELECT COUNT(tbname) FROM meters WHERE groupId > 2;
     count(tbname)     |
========================
                     2 |
Query OK, 1 row(s) in set (0.001091s)
```
### _QSTART/_QSTOP/_QDURATION
表示查询过滤窗口的起始，结束以及持续时间。

### _WSTART/_WSTOP/_WDURATION
窗口切分聚合查询（例如 interval/session window/state window）中表示每个切分窗口的起始，结束以及持续时间。

### _c0/_ROWTS
_c0 _ROWTS 等价，表示表或超级表的第一列
