linux操作 ClickHouse 命令&資料庫操作
阿新 • • 發佈:2021-08-31
進入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;
插入語句
insert into tb_user values(1,'hello',23,'M');
insert into tb_user values(2,'上海',33,'F');
查看錶
select * from tb_user;
DateTime(以下三種都可以)
create table tb_date1( timestamp DateTime )engine = TinyLog; create table tb_date2( date timestamp )engine = TinyLog; create table tb_date3( datetime date )engine = TinyLog;
插入時間
insert into tb_date values('2020-08-24 21:06:00');
Enum 列舉(定義常量)
create table tb_enum(
m Enum('hello'=1,'world'=2)
)engine = TinyLog;
insert into tb_enum values('hello'),('world'),('hello');
select cast(m,'Int8') from tb_enum;
將hello ,world 轉為Int8型別
陣列(Array(資料型別)) create table tb_array( name String, hobby Array(String) )engine = TinyLog; **插入** insert into tb_array values('你好',['h','l','hello']); **陣列有角標,然後是從1開始** select name ,hobby[2] from tb_array;
MegerTree建表
需要主鍵,排序欄位 ( primary key , order by) 兩個一致
create table tb_megertree(
uid Int32,
name String,
age UInt8,
birthday Date,
gender String)
engine=MergeTree()
order by uid;
插入資料
insert into tb_megertree values(2,'李白',60,'123324435','M');
insert into tb_megertree values(24,'杜甫',59,1234567,'M'), (3,'李清照',55,1234323,'F');
insert into tb_megertree values(6,'徐志摩',50,'333324435','M');
partition : 分割槽
create table tb_partition(
uid Int8,
address String
)
engine=MergeTree()
order by uid
partition by address;
insert into tb_partition values(3,'北京'),(5,'北京'),(1,'上海'),(7,'北京'),(30,'北京'),(11,'上海');
再插入
insert into tb_partition values(33,'上海'),(53,'北京'),(13,'上海');
再合併
optimize table tb_partition;
optimize table tb_partition;
一次合併一個分割槽,執行兩次分割槽全部合併ReplacingMergeTree刪除區內主鍵相同的資料 保留指定的欄位中的最大版本