
# 语法支持的类型
SecMaster SQL语法支持的类型如下：
STRING，BOOLEAN，BYTES，DECIMAL，TINYINT，SMALLINT，INTEGER，BIGINT，FLOAT，DOUBLE，DATE，TIME，TIMESTAMP，TIMESTAMP WITH LOCAL TIME ZONE，INTERVAL，ARRAY，MULTISET，MAP，ROW。
- **注意事项**
  1. SecMaster SQL兼容Flink 1.7.2版本SQL语法。
  
  
  
  2. Flink SQL 对于标识符（表、属性、函数名）有类似于 Java 的词法约定：
     - 不管是否引用标识符，都保留标识符的大小写。
     
     - 且标识符需区分大小写。
     
     - 与 Java 不一样的地方在于，通过反引号，可以允许标识符带有非字母的字符（如："SELECT a AS \`my field\` FROM t"）。
     
     
     字符串文本常量需要被单引号包起来（如 SELECT 'Hello World' ）。两个单引号表示转义（如 SELECT 'It''s me.'）。字符串文本常量支持 Unicode 字符，如需明确使用 Unicode 编码，请使用以下语法：
     - 使用反斜杠（\\）作为转义字符（默认）：SELECT U\&'\\263A'
     
     - 使用自定义的转义字符： SELECT U\&'#263A' UESCAPE '#'
      
  
  
  
  3. 慎用正则函数（REGEXP） 正则表达式是非常耗时的操作，对比加减乘除通常有百倍的性能开销，而且正则表达式在某些极端情况下可能会进入无限循环，导致作业阻塞，因此建议使用LIKE。正则函数包括：
     REGEXP
     REGEXP_REPLACE
     
  
  4. WHERE条件下推不支持复合类型及函数条件 WHERE条件下推优化不支持ARRAY、MAP、ROW类型，不支持函数条件。当WHERE条件中引用ARRAY、MAP、ROW类型字段，或包含函数条件时，该语句将无法下推至数据源端执行。建议在WHERE条件中避免对ARRAY、MAP、ROW类型字段的直接引用及函数条件的使用，建议通过重构查询逻辑将相关过滤条件转化为支持下推的标量类型条件。
     
  
  5. 表查询约束与限制：
     - 流表查询约束：查询时限制可查询最近3天内的最多1000条数据，控制台结果仅显示3天内的最多200条数据。
     
     - 索引表查询约束：查询时限制可查询起止时间间隔7天内的最多10000条数据，控制台结果仅显示查询起止时间间隔7天内的最多200条数据。
     
     - 应用表查询约束：查询时限制可查询起止时间间隔7天内的最多10000条数据，控制台结果仅显示查询起止时间间隔7天内的最多200条数据。
     
     - 复杂语句查询约束：使用关联表语句查询时在同一时间段无关联数据不显示结果，属于正常现象，并非查询失败。
      
  
  6. SecMaster SQL语法查询约束与限制： 安全云脑数据查询仅限已定义数据表或管道字段查询，不支持未定义字段的检索查询。存在原始日志字段变动但未在安全云脑定义场景，不支持通过Secmaster SQL进行查询。
     
   
 
