热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

3.ClickHouse系列之SQL操作

首先我们建表,表引擎我们后续文章在详细介绍,我们首先了解下基本SQL语法CREATEDATABASEstudy;CREATETABLEstudy.customer(idUInt8,

首先我们建表,表引擎我们后续文章在详细介绍,我们首先了解下基本SQL语法

CREATE DATABASE study;
CREATE TABLE study.customer (
id UInt8,
city String,
name String,
score Float32,
sex Enum8('男' = 1, '女' = 0),
create_date DateTime
) ENGINE=MergeTree() ORDER BY city

1. Insert操作

对于clickhouse在插入时一般大批量数据插入,演示仅仅插入几条数据

INSERT INTO study.customer VALUES (1, '临沂', '张三', 99.8, '男', '2022-09-29'),
(2, '上海', '李四', 97.8, '男', '2022-09-29'),
(3, '武汉', '小花', 95.8, '女', '2022-09-29')
SELECT * FROM study.customer

2. Update与Delete操作

不建议对clickhouse中数据进行更新与删除操作,即使做也尽量大批量操作,如操作某一城市数据

ALTER TABLE study.customer DELETE WHERE city='武汉';
ALTER TABLE study.customer UPDATE score=99 WHERE id=1;

由于操作比较,所以Mutation语句分两步进行,同步进行的部分是进行新增数据新增分区和并把旧分区打上逻辑上的失效标识。直到触发分区合并的时候,才会删除旧数据释放磁盘空间。


3. rollup cube totals

ALTER TABLE study.customer DELETE WHERE id=id;
INSERT INTO study.customer VALUES (1, '临沂', '张三', 99.8, '男', '2022-09-29'),
(2, '上海', '李四', 97.8, '男', '2022-09-29'),
(3, '武汉', '小花', 95.8, '女', '2022-09-29'),
(4, '临沂', '张三', 96.8, '男', '2022-09-29'),
(5, '上海', '李四', 95.8, '男', '2022-09-29'),
(6, '武汉', '小花', 91.8, '女', '2022-09-29')

SELECT city, name, AVG(score) FROM study.customer GROUP BY city, name WITH ROLLUP;
SELECT city, name, AVG(score) FROM study.customer GROUP BY city, name WITH CUBE;
SELECT city, name, AVG(score) FROM study.customer GROUP BY city, name WITH TOTALS;

结果依次为:

https://img2.php1.cn/3cdc5/3af5/9f3/b3d569bff4743180.png

http://shenjianblog.oss-cn-shanghai.aliyuncs.com/pic/20221002/ee30061ce5de4c278731b7f84e44cb7c-CK2.png

https://img2.php1.cn/3cdc5/3af5/9f3/52f289e0855e1135.png

聪明的你,看出区别的吧


4 Alter操作

# 在字段score后面新增字段rank
ALTER TABLE study.customer ADD COLUMN rank UInt8 after score;
# 修改rank字段类型为String
ALTER TABLE study.customer MODIFY COLUMN rank String;
# 删除字段rank
ALTER TABLE study.customer DROP COLUMN rank;

欢迎关注公众号算法小生或沈健的技术博客



推荐阅读
  • PHP 数组逆序排列方法及常用排序函数详解 ... [详细]
  • MySQL索引详解及其优化策略
    本文详细解析了MySQL索引的概念、数据结构及管理方法,并探讨了如何正确使用索引以提升查询性能。文章还深入讲解了联合索引与覆盖索引的应用场景,以及它们在优化数据库性能中的重要作用。此外,通过实例分析,进一步阐述了索引在高读写比系统中的必要性和优势。 ... [详细]
  • 本文探讨了基于点集估算图像区域的Alpha形状算法在Python中的应用。通过改进传统的Delaunay三角剖分方法,该算法能够生成更加灵活和精确的形状轮廓,避免了单纯使用Delaunay三角剖分时可能出现的过大三角形问题。这种“模糊Delaunay三角剖分”技术不仅提高了形状的准确性,还增强了对复杂图像区域的适应能力。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 开发日志:在插入数据到一张表的同时更新另一张表的技术细节与最佳实践 ... [详细]
  • 本文深入探讨了 MySQL 中 `ANALYZE TABLE` 和 `SHOW CREATE TABLE` 的语法规则及其应用。`ANALYZE TABLE` 语句用于分析并存储表的关键字分布情况,以优化查询性能。该操作在执行过程中会获取表的读锁,确保数据的一致性。而 `SHOW CREATE TABLE` 则用于显示创建表时的详细语句,包括表结构、索引和存储引擎等信息,有助于数据库管理和维护。通过这些命令,DBA 可以更好地理解和优化数据库性能。 ... [详细]
  • 在数据表中,我需要触发一个操作来刷新特定列的数据。例如,对于以下表格:| ID | Name | IsDeleted ||----|-------|-----------|| 1 | test | True || 2 | test2 | False |我希望在点击“更新”按钮时,能够仅刷新选定行的“IsDeleted”列。这将有助于确保数据的实时性和准确性。 ... [详细]
  • 本文详细介绍了使用C++实现插入排序算法的方法,并对其进行了优化。通过具体的代码示例,解释了插入排序的基本原理和优化技巧,包括交换两个元素的函数 `SwapTwo` 的实现。此外,文章还探讨了插入排序的时间复杂度和适用场景,为读者提供了深入理解该算法的全面指南。 ... [详细]
  • 题目:图像处理(HDU1828,计算周长并集,利用线段树与离散化技术进行扫描) ... [详细]
  • 本周,我深入研究了 ECharts 插件的使用方法,整体感觉插件操作较为简便,但后台算法较为复杂。此外,我还学习了 MySQL 函数的新应用,进一步提升了数据库操作的灵活性。同时,分享了自己在 Python 书籍外借过程中的体验,总结了一些实用的借阅技巧和心得。 ... [详细]
  • 利用C#技术实现Word文档的动态生成与编辑
    本文通过一个简单的示例,介绍了如何使用C#语言实现Word文档的动态生成与编辑功能。文章详细阐述了在项目中引用Word动态库的方法,并通过具体代码示例展示了如何创建和操作Word表格。此内容旨在为初学者提供参考和学习资料,欢迎读者提出宝贵意见和建议。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 本文深入探讨了数据库性能优化与管理策略,通过实例分析和理论研究,详细阐述了如何有效提升数据库系统的响应速度和处理能力。文章首先介绍了数据库性能优化的基本原则和常用技术,包括索引优化、查询优化和存储管理等。接着,结合实际应用场景,讨论了如何利用容器化技术(如Docker)来部署和管理数据库,以提高系统的可扩展性和稳定性。最后,文章还提供了具体的配置示例和最佳实践,帮助读者在实际工作中更好地应用这些策略。 ... [详细]
  • MySQL:不仅仅是数据库那么简单
    MySQL不仅是一款高效、可靠的数据库管理系统,它还具备丰富的功能和扩展性,支持多种存储引擎,适用于各种应用场景。从简单的网站开发到复杂的企业级应用,MySQL都能提供强大的数据管理和优化能力,满足不同用户的需求。其开源特性也促进了社区的活跃发展,为技术进步提供了持续动力。 ... [详细]
  • Java 8 引入了 Stream API,这一新特性极大地增强了集合数据的处理能力。通过 Stream API,开发者可以更加高效、简洁地进行集合数据的遍历、过滤和转换操作。本文将详细解析 Stream API 的核心概念和常见用法,帮助读者更好地理解和应用这一强大的工具。 ... [详细]
author-avatar
1輩孓莣8鋽
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有