Clickhouse常用整理& linux操作clickhouse命令

进入click(不加上-m的话,进入之后只能一次写一行,不能建表)

clickhouse client -m

 

查看数据库

show databases;

创建一个数据库

create database db_doit;

 


删除数据库

drop database db_doit;

查看表

show tables;

查看当前使用的数据库

select currentDatabase();

创建一个表(建表的时候指定数据类型,建表的时候一定要指定表引擎)

create table tb_user(
    uid Int32,
    name String,
    age UInt32,
    gender String
)engine = TinyLog;

 


查看表的结构

desc tb_user;

插入语句

1 insert into tb_user values(1,'hello',23,'M');
2 insert into tb_user values(2,'上海',33,'F');

查看表

select * from tb_user;

DateTime(以下三种都可以)

 1 create table tb_date1(
 2  timestamp  DateTime
 3 )engine = TinyLog;
 4  
 5 create table tb_date2(
 6     date timestamp
 7 )engine = TinyLog;
 8  
 9 create table tb_date3(
10     datetime date
11 )engine = TinyLog;

 


插入时间

insert into tb_date values('2020-08-24 21:06:00');

Enum 枚举(定义常量)

1 create table tb_enum(
2     m Enum('hello'=1,'world'=2)
3 )engine = TinyLog;
4  
5 insert into tb_enum values('hello'),('world'),('hello');
6  
7 select cast(m,'Int8') from tb_enum;

 


将hello ,world 转为Int8类型

 1 数组(Array(数据类型))
 2 create table tb_array(
 3     name String,
 4     hobby Array(String)
 5     )engine = TinyLog;
 6  
 7 **插入**
 8  
 9 insert into tb_array values('你好',['h','l','hello']);
10  
11 **数组有角标,然后是从1开始**
12  
13 select name ,hobby[2] from tb_array;

 


MegerTree建表

 1 需要主键,排序字段 ( primary key , order by) 两个一致
 2  
 3 create table tb_megertree(
 4     uid Int32,
 5     name String,
 6     age UInt8,
 7     birthday Date,
 8     gender String)
 9 engine=MergeTree()
10 order by uid;

 


插入数据

 1 insert into tb_megertree values(2,'李白',60,'123324435','M');
 2 insert into tb_megertree values(24,'杜甫',59,1234567,'M'), (3,'李清照',55,1234323,'F');
 3  
 4 insert into tb_megertree values(6,'徐志摩',50,'333324435','M');
 5  
 6 partition : 分区
 7 create table tb_partition(
 8     uid Int8,
 9     address String
10 )
11 engine=MergeTree()
12 order by uid
13 partition by address;
14  
15 insert into tb_partition values(3,'北京'),(5,'北京'),(1,'上海'),(7,'北京'),(30,'北京'),(11,'上海');

 


再插入

1 insert into tb_partition values(33,'上海'),(53,'北京'),(13,'上海');

 


再合并

optimize table tb_partition;
optimize table tb_partition;

一次合并一个分区,执行两次分区全部合并ReplacingMergeTree删除区内主键相同的数据 保留指定的字段中的最大版本

posted @ 2024-05-15 10:40  划边逅  阅读(683)  评论(0编辑  收藏  举报