ClickHouse SQL 极简教程SQL基础知识
Posted 东海陈光剑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ClickHouse SQL 极简教程SQL基础知识相关的知识,希望对你有一定的参考价值。
《ClickHouse SQL 极简教程》系列文章目录:
1. ClickHouse SQL基础3
1.1. SQL概述3
1.1.1. SQL简史3
1.1.2. SQL概述4
1.1.3. ClickHouse SQL6
1.1.4. ClickHouse 查询分类7
1.2. 数据定义 8
1.2.1. 概述8
1.2.2. 创建数据库 9
Ø 数据库引擎Atomic与Ordinary对比10
1.2.3. 删除数据库 12
1.2.4. 创建MergeTree表12
1.2.5. 复制表22
1.2.6. 从查询语句创建表 24
1.2.7. 从表函数创建表27
1.2.8. 创建视图32
Ø Populate 释义37
1.2.9. 创建函数53
1.2.10. 创建字典55
1.2.11. RENAME 操作59
1.2.12. ALTER 操作60
Ø ClickHouse多盘存储配置71
1.2.13. DROP 操作73
1.3. 数据操作73
1.3.1. 概述73
1.3.2. 插入数据 74
1.3.3. UPDATE更新数据 75
1.3.4. DELETE删除数据 79
1.3.5. EXCHANGE操作81
Ø EXCHANGE实现原理83
1.3.6. OPTIMIZE操作85
Ø 配置项replication_alter_partitions_sync说明85
1.3.7. ATTACH操作87
1.3.8. DETACH操作88
1.4. 数据查询 90
1.4.1. 概述90
1.4.2. WITH子句92
Ø 公共表表达式(CTE)93
1.4.3. FROM子句94
1.4.4. SAMPLE子句96
1.4.5. JOIN子句98
1.4.6. PREWHERE子句100
1.4.7. WHERE子句103
1.4.8. GROUP BY子句105
1.4.9. HAVING子句108
1.4.10. SELECT子句111
1.4.11. DISTINCT子句113
1.4.12. LIMIT子句116
1.4.13. SETTINGS子句118
Ø Gigabyte与Gibibyte121
1.4.14. UNION子句122
1.4.15. INTERSECT子句125
1.4.16. EXCEPT子句128
1.4.17. INTO OUTFILE子句129
1.4.18. FORMAT子句130
1.4.19. SHOW 查询134
Ø watch 命令148
1.4.20. EXISTS 查询149
1.4.21. KILL查询150
Ø 关系代数与关系演算153
1.5. 数据控制154
1.5.1. 概述155
1.5.2. 创建用户158
1.5.3. 创建角色165
1.5.4. 创建行策略168
1.5.5. 创建配额172
1.5.6. 创建settings profile179
1.5.7. 修改用户180
1.5.8. 修改角色180
1.5.9. 修改行策略181
1.5.10. 修改配额181
1.5.11. 修改settings profile181
1.5.12. 撤销授权181
1.6. PROJECTION特性182
1.6.1. 新增高基维度投影182
1.6.2. 构建测试数据184
1.6.3. 关闭 Projection 优化开关测试184
1.6.4. 开启 Projection 优化开关测试185
1.6.5. 性能数据186
1.6.6. 维度字段基数对 Projection 性能的影响187
1.7. EXPLAIN命令188
1.7.1. EXPLAIN概述188
1.7.2. EXPLAIN类型189
1.7.3. EXPLAIN AST189
1.7.4. EXPLAIN SYNTAX195
1.7.5. EXPLAIN PLAN197
1.7.6. EXPLAIN PIPELINE201
Ø Tips:DOT纯文本图形描述语言205
1.7.7. EXPLAIN ESTIMATE208
1.8. 本章总结 209
1. ClickHouse SQL 基础
SQL (Structured Query Language,结构化查询语言) 是一种标准化的声明式编程语言,用于管理关系数据库并对其中的数据执行各种操作。SQL 最初创建于 1970 年代,逐渐成为关系数据库的标准编程语言。SQL 命令分为几种不同的类型,包括:
1. 数据定义语言 ( DDL )。也称为数据定义命令,因为它们用于定义数据表。
2. 数据操作语言 (DML)。用于通过添加、更改或删除数据来操作现有表中的数据。与定义数据存储方式的 DDL 命令不同,DML 命令在使用 DDL 命令定义的表中运行。
3. 数据查询语言(DQL)。仅包含一个命令SELECT,用于从表中获取特定数据。此命令有时与 DML 命令组合在一起。
4. 数据控制语言(DCL)。用于授予或撤销用户访问权限。事务控制语言命令用于更改某些数据的状态。例如,COMMIT事务更改或ROLLBACK事务更改。
本章主要介绍 ClickHouse SQL 相关内容。
1.1. SQL概述
SQL 本质上是一种声明式编程语言(4GL),包括数据查询语言(DQL,data query language)、数据操作语言(DML,data manipulation language )(插入、更新和删除)、数据定义语言(DDL, data definition language)(模式创建和修改)和数据访问控制语言(DCL,data control language)等。本节简要介绍 SQL 历史以及ClickHouse SQL特性。
1.1.1. SQL简史
SQL最初基于关系代数(relational algebra)和元组关系演算(tuple relational calculus),由多种类型的语句(statement)组成。SQL 是计算机科学领域历史上的关键里程碑,是计算历史上最成功的想法之一。
追溯到 1970 年代初,SQL 发展简史如下。
l 1970. EF Codd 的“大型共享数据库的数据关系模型”发表在Communications of the ACM上,为 RDBMS 奠定了基础。
l 1974. IBM 研究人员发表了一篇介绍结构化查询语言的文章,最初称为 SEQUEL,因为商标问题,改为 SQL。
l 1977. Relational Software Inc.(后来改名叫:Oracle,甲骨文公司)开始构建商业 RDBMS。
l 1979.甲骨文为 Digital Equipment Corp.的小型计算机系统提供了第一个商用 RDBMS。
l 1982. IBM 发布了 SQL/Data System,这是一种用于 IBM 大型机的 SQL RDBMS。
l 1985. IBM 发布了 Database 2,这是一种用于 IBM 的多虚拟存储大型机操作系统的 SQL RDBMS。
l 1986. ANSI 委员会和 ISO采用 SQL 作为标准。
l 1989. ISO SQL 标准的第一个修订版 SQL-89 发布。
l 1992. ISQ SQL 标准的第一个主要修订版 SQL-92 发布。
l 1999.第一个按照 ISO 命名标准命名的版本 ISO/IEC SQL:1999,增加了编程功能和对 Java的支持。
l 2003. ISO/IEC SQL:2003 增加了对可扩展标记语言 (XML) 对象的预定义数据类型的支持。
l 2006. ISO/IEC SQL:2006 扩展了与 XML 相关的功能。
l 2008. ISO/IEC SQL:2008 增加了对分区 JOIN 的支持,这是一种连接两个或多个表的方法,将连接的表视为单个表。
l 2011. ISO/IEC SQL:2011 改进了对包含时间相关数据的关系数据库的支持。
l 2016. ISO/IEC SQL:2016 添加了可选的新功能,包括JSON特性修订、对多态表函数和行模式匹配的支持等。
l 2019. ISO/IEC SQL:2019 多维数组(SQL/MDA)。制定了SQL关于多维数组类型 (MD Array) 操作功能支持。
1.1.2. SQL概述
众所周知,SQL结构化查询语言是一种数据库语言,我们使用SQL对现有的数据库执行某些操作,也可以使用 SQL来创建数据库、创建表。
SQL简介
SQL使用命令来执行任务。这些SQL命令主要分为四类:
l DDL(Data Definition Language):数据定义语言
l DQL(Data Query Language):数据查询语言
l DML(Data Manipulation Language):数据操作语言
l DCL(Data Control Language):数据控制语言
有时候,也会提到TCL(Transaction Control Language)事务控制语言。
SQL指令集如下图:
以上是关于ClickHouse SQL 极简教程SQL基础知识的主要内容,如果未能解决你的问题,请参考以下文章
ClickHouse SQL 极简教程ClickHouse SQL之数据操作语言 DML
ClickHouse SQL 极简教程ClickHouse SQL之数据定义语言 DDL
ClickHouse SQL 极简教程ClickHouse SQL 之数据查询语言 DQL