网站首页 > 博客文章 正文
ClickHouse SQL语法之DML 操作
DML:Data Manipulation Language,数据操纵语言。ClickHouse中DML语言包含插入、更新、删除数据操作,DML操作仅适用MergeTree引擎,不能针对主键、分区键、排序键进行DML操作,DML操作不支持事务,一旦执行成功会立刻生效。
一、??????Insert 插入
insert 向表中插入数据。
- insert 语法:
INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), (v21, v22, v23), ...
或者
INSERT INTO [db.]table Select ...
- 示例:
#创建表 t_insert ,这里使用MergeTree引擎
node1 :) create table t_insert (id UInt8 ,name String) engine = MergeTree() order by id ;
#向表 t_insert 中插入数据
node1 :) insert into t_insert values (1,'张三',18),(2,'李四',19);
#向表 t_insert 中插入数据
node1 :) insert into t_insert select * from t_insert;
二、??????????????update 更新
由于ClickHouse针对的是OLAP业务分析,Update操作在ClickHouse中不会经常使用。这种更新效率低下。
- update 更新操作语法:
ALTER TABLE [db.]table UPDATE column1 = expr1 [, ...] WHERE filter_expr
- 示例:
#创建表 t_update,使用MergeTree引擎
node1 :) create table t_update (id UInt8,name String,age UInt8) engine = MergeTree() order by id ;
#向表 t_update中插入如下数据
node1 :) insert into t_update values (1,'张三',18),(2,'李四',19)
┌─id─┬─name─┬─age─┐
│ 1 │ 张三 │ 18 │
│ 2 │ 李四 │ 19 │
└────┴──────┴─────┘
#更新姓名为 张三的年龄为 22
node1 :) alter table t_update update age = 22 where name = '张三';
┌─id─┬─name─┬─age─┐
│ 1 │ 张三 │ 22 │
│ 2 │ 李四 │ 19 │
└────┴──────┴─────┘
三、delete 删除
由于ClickHouse针对的是OLAP业务分析,Delete操作与Update操作一样在ClickHouse中不会经常使用。这种删除效率低下。
- delete 删除语法:
ALTER TABLE [db.]table [ON CLUSTER cluster] DELETE WHERE filter_expr
- 示例:
#创建表 t_delete,使用MergeTree引擎
node1 :) create table t_delete (id UInt8,name String,age UInt8) engine = MergeTree() order by id ;
#向表 t_delete中插入以下数据
node1 :) insert into t_update values (1,'张三',18),(2,'李四',19)
┌─id─┬─name─┬─age─┐
│ 1 │ 张三 │ 18 │
│ 2 │ 李四 │ 19 │
└────┴──────┴─────┘
#删除 张三 此条数据
node1 :) alter table t_delete delete where name = '张三';
┌─id─┬─name─┬─age─┐
│ 2 │ 李四 │ 19 │
└────┴──────┴─────┘
四、??????????????向表中导入导出数据
ClickHouse中支持多种数据格式数据导入和导出,支持格式有ORC,Parquet,Avro,Protobuf,xml,json,csv等,具体操作参照官网:https://clickhouse.tech/docs/en/sql-reference/statements/alter/update/。下面以向表导入导出CSV格式数据为例操作:
- 示例:
#创建表 t_csv ,执行引擎为MergeTree
node1 :) create table t_csv (id UInt8,name String,age UInt8) engine = MergeTree order by id;
#在ClickHouse客户端准备数据文件 csvdata 写入以下数据
vim /root/csvdata
1,张三,18
2,李四,19
3,王五,20
4,马六,21
5,田七,22
#导入数据,在ClickHouse-client中执行导入数据命令
[root@node1 ~]# clickhouse-client --format_csv_delimiter="," --query="INSERT INTO newdb.t_csv FORMAT CSV" < /root/csvdata
注意:--format_csv_delimiter 指定分隔符
#进入ClickHouse客户端查看表 t_csv中的数据
node1 :) select * from t_csv;
┌─id─┬─name─┬─age─┐
│ 1 │ 张三 │ 18 │
│ 2 │ 李四 │ 19 │
│ 3 │ 王五 │ 20 │
│ 4 │ 马六 │ 21 │
│ 5 │ 田七 │ 22 │
└────┴──────┴─────┘
#导出数据,在ClickHouse-client中执行命令,将数据导入到result文件中
[root@node1 ~]# clickhouse-client --format_csv_delimiter="|" --query="select * from newdb.t_csv FORMAT CSV" > /root/result
#查看导出的结果数据
[root@node1 ~]# cat result
1|"张三"|18
2|"李四"|19
3|"王五"|20
4|"马六"|21
5|"田七"|22
猜你喜欢
- 2024-10-23 大数据ClickHouse进阶(二十二):ClickHouse优化
- 2024-10-23 大数据ClickHouse进阶(二十六):ClickHouse数据备份
- 2024-10-23 Clickhouse入门(clickhouse深度揭秘)
- 2024-10-23 clickhouse的简单优化(clickhouse uuid)
- 2024-10-23 聊聊clickhouse分布式表的操作(clickhouse 分布表)
- 2024-10-23 1、ClickHouse介绍(clickhouse作用)
- 2024-10-23 ClickHouse简记(clickhouse parts)
- 2024-10-23 Clickhouse数据复制的原理与实践(clickhouse数据导出)
- 2024-10-23 ClickHouse学习笔记四ClickHouse基础语法
- 2024-10-23 大数据ClickHouse(五):数据库引擎介绍与实例演示
你 发表评论:
欢迎- 最近发表
-
- 比GoPro 13更强的大疆Action 5 Pro,到底强在哪里?
- 信号和槽(信号和槽的实现原理)
- 在响应式项目中连接设计与开发(请简述实现响应式设计包括哪些技术点)
- 【C#】委托、Action、Func 和 Event 之间的关系
- 如何使用JavaScript实现Prompt弹窗?
- 谷歌Magic Actions功能曝光:AI革新安卓16通知交互
- 基于目标TPS的性能测试,如何通过手动设置场景进行测试?
- IOS基础学习之输出口和动作(io口输入输出实验总结及体会)
- 《Java语言程序设计》期末考试模拟试题——判断题和问答题
- Android学习之Touch事件的处理(android触摸事件实例)
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)