mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-13 09:52:38 +00:00
2a76a8c8d0
Improve translation
45 KiB
45 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | ad252bbb4f |
40 | ANSI兼容性 |
Ansi Sql兼容性的ClickHouse SQL方言
!!! note "注" 本文依赖于表38, “Feature taxonomy and definition for mandatory features”, Annex F of ISO/IEC CD 9075-2:2013.
行为差异
下表列出了查询功能在ClickHouse中有效但不符合ANSI SQL标准的情况。
Feature ID | 功能名称 | 差异 |
---|---|---|
E011 | 数值(Numeric)数据类型 | 带小数点的数值文字被解释为近似值 (Float64 )而不是精确值 (Decimal ) |
E051-05 | SELECT字段可以重命名 | 字段不仅仅在SELECT结果中可被重命名 |
E141-01 | 非空约束 | 表中每一列默认为NOT NULL |
E011-04 | 算术运算符 | ClickHouse不会检查算法,并根据自定义规则更改结果数据类型,而是会溢出 |
功能匹配
Feature ID | 功能名称 | 匹配 | 评论 |
---|---|---|---|
E011 | 数字数据类型 | 部分{.text-warning} | |
E011-01 | 整型和小型数据类型 | 是 {.text-success} | |
E011-02 | 真实、双精度和浮点数据类型数据类型 | 部分 {.text-warning} | FLOAT(<binary_precision>) , REAL 和 DOUBLE PRECISION 不支持 |
E011-03 | 十进制和数值数据类型 | 部分 {.text-warning} | 只有 DECIMAL(p,s) 支持,而不是 NUMERIC |
E011-04 | 算术运算符 | 是 {.text-success} | |
E011-05 | 数字比较 | 是 {.text-success} | |
E011-06 | 数字数据类型之间的隐式转换 | 否。 {.text-danger} | ANSI SQL允许在数值类型之间进行任意隐式转换,而ClickHouse依赖于具有多个重载的函数而不是隐式转换 |
E021 | 字符串类型 | 部分{.text-warning} | |
E021-01 | 字符数据类型 | 否。 {.text-danger} | |
E021-02 | 字符变化数据类型 | 否。 {.text-danger} | String 行为类似,但括号中没有长度限制 |
E021-03 | 字符文字 | 部分 {.text-warning} | 不自动连接连续文字和字符集支持 |
E021-04 | 字符长度函数 | 部分 {.text-warning} | 非也。 USING 条款 |
E021-05 | OCTET_LENGTH函数 | 非也。 {.text-danger} | LENGTH 表现类似 |
E021-06 | SUBSTRING | 部分 {.text-warning} | 不支持 SIMILAR 和 ESCAPE 条款,否 SUBSTRING_REGEX 备选案文 |
E021-07 | 字符串联 | 部分 {.text-warning} | 非也。 COLLATE 条款 |
E021-08 | 上下功能 | 是 {.text-success} | |
E021-09 | 修剪功能 | 是 {.text-success} | |
E021-10 | 固定长度和可变长度字符串类型之间的隐式转换 | 否。 {.text-danger} | ANSI SQL允许在字符串类型之间进行任意隐式转换,而ClickHouse依赖于具有多个重载的函数而不是隐式转换 |
E021-11 | 职位功能 | 部分 {.text-warning} | 不支持 IN 和 USING 条款,否 POSITION_REGEX 备选案文 |
E021-12 | 字符比较 | 是 {.text-success} | |
E031 | 标识符 | 部分{.text-warning} | |
E031-01 | 分隔标识符 | 部分 {.text-warning} | Unicode文字支持有限 |
E031-02 | 小写标识符 | 是 {.text-success} | |
E031-03 | 尾部下划线 | 是 {.text-success} | |
E051 | 基本查询规范 | 部分{.text-warning} | |
E051-01 | SELECT DISTINCT | 是 {.text-success} | |
E051-02 | GROUP BY子句 | 是 {.text-success} | |
E051-04 | 分组依据可以包含不在列 <select list> |
是 {.text-success} | |
E051-05 | 选择项目可以重命名 | 是 {.text-success} | |
E051-06 | 有条款 | 是 {.text-success} | |
E051-07 | 合格*在选择列表中 | 是 {.text-success} | |
E051-08 | FROM子句中的关联名称 | 是 {.text-success} | |
E051-09 | 重命名FROM子句中的列 | 否。 {.text-danger} | |
E061 | 基本谓词和搜索条件 | 部分{.text-warning} | |
E061-01 | 比较谓词 | 是 {.text-success} | |
E061-02 | 谓词之间 | 部分 {.text-warning} | 非也。 SYMMETRIC 和 ASYMMETRIC 条款 |
E061-03 | 在具有值列表的谓词中 | 是 {.text-success} | |
E061-04 | 像谓词 | 是 {.text-success} | |
E061-05 | LIKE谓词:逃避条款 | 否。 {.text-danger} | |
E061-06 | 空谓词 | 是 {.text-success} | |
E061-07 | 量化比较谓词 | 非也。 {.text-danger} | |
E061-08 | 存在谓词 | 非也。 {.text-danger} | |
E061-09 | 比较谓词中的子查询 | 是 {.text-success} | |
E061-11 | 谓词中的子查询 | 是 {.text-success} | |
E061-12 | 量化比较谓词中的子查询 | 否。 {.text-danger} | |
E061-13 | 相关子查询 | 否。 {.text-danger} | |
E061-14 | 搜索条件 | 是 {.text-success} | |
E071 | 基本查询表达式 | 部分{.text-warning} | |
E071-01 | UNION DISTINCT table运算符 | 否。 {.text-danger} | |
E071-02 | 联合所有表运算符 | 是 {.text-success} | |
E071-03 | 除了不同的表运算符 | 非也。 {.text-danger} | |
E071-05 | 通过表运算符组合的列不必具有完全相同的数据类型 | 是 {.text-success} | |
E071-06 | 子查询中的表运算符 | 是 {.text-success} | |
E081 | 基本特权 | 部分{.text-warning} | 正在进行的工作 |
E091 | 设置函数 | 是{.text-success} | |
E091-01 | AVG | 是 {.text-success} | |
E091-02 | COUNT | 是 {.text-success} | |
E091-03 | MAX | 是 {.text-success} | |
E091-04 | MIN | 是 {.text-success} | |
E091-05 | SUM | 是 {.text-success} | |
E091-06 | 全部量词 | 否。 {.text-danger} | |
E091-07 | 不同的量词 | 部分 {.text-warning} | 并非所有聚合函数都受支持 |
E101 | 基本数据操作 | 部分{.text-warning} | |
E101-01 | 插入语句 | 是 {.text-success} | 注:ClickHouse中的主键并不意味着 UNIQUE 约束 |
E101-03 | 搜索更新语句 | 否。 {.text-danger} | 有一个 ALTER UPDATE 批量数据修改语句 |
E101-04 | 搜索的删除语句 | 否。 {.text-danger} | 有一个 ALTER DELETE 批量数据删除声明 |
E111 | 单行SELECT语句 | 否。{.text-danger} | |
E121 | 基本光标支持 | 否。{.text-danger} | |
E121-01 | DECLARE CURSOR | 否。 {.text-danger} | |
E121-02 | 按列排序不需要在选择列表中 | 否。 {.text-danger} | |
E121-03 | 按顺序排列的值表达式 | 否。 {.text-danger} | |
E121-04 | 公开声明 | 否。 {.text-danger} | |
E121-06 | 定位更新语句 | 否。 {.text-danger} | |
E121-07 | 定位删除语句 | 否。 {.text-danger} | |
E121-08 | 关闭声明 | 否。 {.text-danger} | |
E121-10 | FETCH语句:隐式NEXT | 否。 {.text-danger} | |
E121-17 | 使用保持游标 | 否。 {.text-danger} | |
E131 | 空值支持(空值代替值) | 部分{.text-warning} | 一些限制适用 |
E141 | 基本完整性约束 | 部分{.text-warning} | |
E141-01 | 非空约束 | 是 {.text-success} | 注: NOT NULL 默认情况下,表列隐含 |
E141-02 | 非空列的唯一约束 | 否。 {.text-danger} | |
E141-03 | 主键约束 | 否。 {.text-danger} | |
E141-04 | 对于引用删除操作和引用更新操作,具有默认无操作的基本外键约束 | 否。 {.text-danger} | |
E141-06 | 检查约束 | 是 {.text-success} | |
E141-07 | 列默认值 | 是 {.text-success} | |
E141-08 | 在主键上推断为非NULL | 是 {.text-success} | |
E141-10 | 可以按任何顺序指定外键中的名称 | 否。 {.text-danger} | |
E151 | 交易支持 | 否。{.text-danger} | |
E151-01 | 提交语句 | 否。 {.text-danger} | |
E151-02 | 回滚语句 | 否。 {.text-danger} | |
E152 | 基本设置事务语句 | 否。{.text-danger} | |
E152-01 | SET TRANSACTION语句:隔离级别SERIALIZABLE子句 | 否。 {.text-danger} | |
E152-02 | SET TRANSACTION语句:只读和读写子句 | 否。 {.text-danger} | |
E153 | 具有子查询的可更新查询 | 否。{.text-danger} | |
E161 | SQL注释使用前导双减 | 是{.text-success} | |
E171 | SQLSTATE支持 | 否。{.text-danger} | |
E182 | 主机语言绑定 | 否。{.text-danger} | |
F031 | 基本架构操作 | 部分{.text-warning} | |
F031-01 | CREATE TABLE语句创建持久基表 | 部分 {.text-warning} | 否。 SYSTEM VERSIONING , ON COMMIT , GLOBAL , LOCAL , PRESERVE , DELETE , REF IS , WITH OPTIONS , UNDER , LIKE , PERIOD FOR 子句,不支持用户解析的数据类型 |
F031-02 | 创建视图语句 | 部分 {.text-warning} | 否。 RECURSIVE , CHECK , UNDER , WITH OPTIONS 子句,不支持用户解析的数据类型 |
F031-03 | 赠款声明 | 是 {.text-success} | |
F031-04 | ALTER TABLE语句:ADD COLUMN子句 | 部分 {.text-warning} | 不支持 GENERATED 条款和系统时间段 |
F031-13 | DROP TABLE语句:RESTRICT子句 | 否。 {.text-danger} | |
F031-16 | DROP VIEW语句:RESTRICT子句 | 否。 {.text-danger} | |
F031-19 | REVOKE语句:RESTRICT子句 | 否。 {.text-danger} | |
F041 | 基本连接表 | 部分{.text-warning} | |
F041-01 | Inner join(但不一定是INNER关键字) | 是 {.text-success} | |
F041-02 | 内部关键字 | 是 {.text-success} | |
F041-03 | LEFT OUTER JOIN | 是 {.text-success} | |
F041-04 | RIGHT OUTER JOIN | 是 {.text-success} | |
F041-05 | 可以嵌套外部连接 | 是 {.text-success} | |
F041-07 | 左侧或右侧外部联接中的内部表也可用于内部联接 | 是 {.text-success} | |
F041-08 | 支持所有比较运算符(而不仅仅是=) | 否。 {.text-danger} | |
F051 | 基本日期和时间 | 部分{.text-warning} | |
F051-01 | 日期数据类型(包括对日期文字的支持) | 部分 {.text-warning} | 没有文字 |
F051-02 | 时间数据类型(包括对时间文字的支持),秒小数精度至少为0 | 否。 {.text-danger} | |
F051-03 | 时间戳数据类型(包括对时间戳文字的支持),小数秒精度至少为0和6 | 否。 {.text-danger} | DateTime64 时间提供了类似的功能 |
F051-04 | 日期、时间和时间戳数据类型的比较谓词 | 部分 {.text-warning} | 只有一种数据类型可用 |
F051-05 | Datetime类型和字符串类型之间的显式转换 | 是 {.text-success} | |
F051-06 | CURRENT_DATE | 否。 {.text-danger} | today() 是相似的 |
F051-07 | LOCALTIME | 否。 {.text-danger} | now() 是相似的 |
F051-08 | LOCALTIMESTAMP | 否。 {.text-danger} | |
F081 | 联盟和视图除外 | 部分{.text-warning} | |
F131 | 分组操作 | 部分{.text-warning} | |
F131-01 | WHERE、GROUP BY和HAVING子句在具有分组视图的查询中受支持 | 是 {.text-success} | |
F131-02 | 具有分组视图的查询中支持的多个表 | 是 {.text-success} | |
F131-03 | 设置具有分组视图的查询中支持的函数 | 是 {.text-success} | |
F131-04 | 具有分组依据和具有子句和分组视图的子查询 | 是 {.text-success} | |
F131-05 | 单行选择具有GROUP BY和具有子句和分组视图 | 非也。 {.text-danger} | |
F181 | 多模块支持 | 否。{.text-danger} | |
F201 | 投函数 | 是{.text-success} | |
F221 | 显式默认值 | 否。{.text-danger} | |
F261 | 案例表达式 | 是{.text-success} | |
F261-01 | 简单案例 | 是 {.text-success} | |
F261-02 | 检索案例 | 是 {.text-success} | |
F261-03 | NULLIF | 是 {.text-success} | |
F261-04 | COALESCE | 是 {.text-success} | |
F311 | 架构定义语句 | 部分{.text-warning} | |
F311-01 | CREATE SCHEMA | 否。 {.text-danger} | |
F311-02 | 为持久基表创建表 | 是 {.text-success} | |
F311-03 | CREATE VIEW | 是 {.text-success} | |
F311-04 | CREATE VIEW: WITH CHECK OPTION | 否。 {.text-danger} | |
F311-05 | 赠款声明 | 是 {.text-success} | |
F471 | 标量子查询值 | 是{.text-success} | |
F481 | 扩展空谓词 | 是{.text-success} | |
F812 | 基本标记 | 否。{.text-danger} | |
T321 | 基本的SQL调用例程 | 否。{.text-danger} | |
T321-01 | 无重载的用户定义函数 | 否。 {.text-danger} | |
T321-02 | 无重载的用户定义存储过程 | 否。 {.text-danger} | |
T321-03 | 函数调用 | 否。 {.text-danger} | |
T321-04 | 电话声明 | 否。 {.text-danger} | |
T321-05 | 退货声明 | 否。 {.text-danger} | |
T631 | 在一个列表元素的谓词中 | 是{.text-success} |