首页 > 数据库 >3.ClickHouse系列之SQL操作

3.ClickHouse系列之SQL操作

时间:2022-10-21 21:33:32浏览次数:88  
标签:customer city 系列 study 09 29 2022 SQL ClickHouse

首先我们建表,表引擎我们后续文章在详细介绍,我们首先了解下基本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;

结果依次为:

http://shenjianblog.oss-cn-shanghai.aliyuncs.com/pic/20221002/9a882be3fd4a49cba0d219a8e5ea60ba-CK1.png

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

http://shenjianblog.oss-cn-shanghai.aliyuncs.com/pic/20221002/6169f68b808047e0b59df27991b2f676-CK3.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;

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

标签:customer,city,系列,study,09,29,2022,SQL,ClickHouse
From: https://www.cnblogs.com/shenjian-online/p/16814827.html

相关文章

  • 4.ClickHouse系列之数据类型与表引擎介绍
    上篇文章已经创建过表及熟悉了基本语法,本文介绍CK的数据类型以及表引擎的一些分类与作用1.数据类型类型整型Int8Int16Int32Int64浮点型Float32Flo......
  • MySQL 函数 function
    函数内置函数function字符串--常用函数串操作函数set@str='hello中国';select@str,length(@str),char_length(@str),character_length(@str),reverse(@str);......
  • MySQL 存储过程 procedure
    存储过程procedureMySQL5.0版本开始支持存储过程。存储过程(StoredProcedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特......
  • ClickHouse(二)优化
    ClickHouse优化执行计划    AST(语法树)、SYNTAX(优化后的SQL语句)、PIPELINE(查看PIPELINE计划,可看线程数)建表优化    数据类型优化:1.限定好数据类型  2.......
  • Mysql 5.7 忘记root密码或重置密码的详细方法
    1、修改配置文件my.cnf按i编辑[root@mihutao~]#vim/etc/my.cnf在[mysqld]中添加skip-``grant``-tables例如:[mysqld]``**skip-``grant``-tables**``datadir=/var......
  • mysql--索引
    来源:https://zhuanlan.zhihu.com/p/453658511 1、什么是索引索引其实是⼀种数据结构,能够帮助我们快速的检索数据库中的数据 2、索引的优点缺点优点:......
  • 【Oracle数据库】Oracle SQL*Plus环境下的简单操作
     OracleSQL*Plus环境与查询 (1)登录到Oracle   (2)helpindex查看Oracle有关命令   (3)创建登录表  (4)插入数据  (5)查询所有数据   (6)设置列的显示格式     ......
  • 华为云数据库 RDS for MySQL ,助力数字化企业安全发展​
    在云计算、大数据和人工智能高速发展的云2.0时代,传统的数据库已然难以适应海量信息数据、高计算高性能的计算级运行,不能搭配LAMP,不能适应WEB开发的要求。网络运营单位开始追......
  • 通俗易懂的MySQL事务及MVCC原理,我先收藏了!
    一、事务简介与四大特性事务指的是一组命令操作,在执行的过程中,要么全部成功,要么全部失败。由引擎层支持事务,MyISAM就不支持事务,而InnoDB是支持事务的。事务具有以下四大特性......
  • 10-JS创建项目与连接Mysql总结
    JS创建项目与连接Mysql总结一、npm介绍二、NodeJS在VScode环境下创建项目首先新建一个项目文件夹右键该文件夹,选择在终端打开菜单项在VScode提供的终端环境下......