常州手機網(wǎng)站建設新手怎么做網(wǎng)絡銷售
目錄
1、Insert
1.1、標準
1.2、從表到表的插入
2、Update和Delete
2.1、刪除操作
2.2、修改操作
3、查詢操作
3.1、with rollup:從右至左去掉維度進行小計
3.2、with cube : 從右至左去掉維度進行小計,再從左至右去掉維度進行小計
3.3、with totals: 只計算合計
3.4、alter操作
1)新增字段
2)修改字段類型
3)刪除字段
1、Insert
????????基本與標準SQL(MySQL)基本一致
1.1、標準
insert into [table_name] values(…),(…)
1.2、從表到表的插入
insert into [table_name] select a,b,c from [table_name_2]
2、Update和Delete
ClickHouse提供了Delete和Update的能力,這類操作被稱為Mutation查詢,它可以看做Alter的一種
雖然可以實現(xiàn)修改和刪除,但是和一般的OLTP數(shù)據(jù)庫不一樣,Mutation語句是一種很重的操作,而且不支持事務
重的原因主要是每次修改或者刪除都會導致放棄目標數(shù)據(jù)的原有分區(qū),重建新分區(qū)
所以盡量做批量的變更,不要進行頻繁小數(shù)據(jù)的操作
2.1、刪除操作
alter table t_order_smt delete where sku_id ='sku_001';
2.2、修改操作
alter table t_order_smt update total_amount=toDecimal32(2000.00,2) where id=102;
????????由于操作比較重,所以Mutation語句分兩步執(zhí)行,同步執(zhí)行的部分其實只是進行新增數(shù)據(jù)、新增分區(qū)和并把舊分區(qū)打上邏輯上的失效標記。直到觸發(fā)分區(qū)合并的時候,才會刪除舊數(shù)據(jù)釋放磁盤空間,一般不會開放這樣的功能給用戶,由管理員完成
3、查詢操作
ClickHouse基本上與標準SQL差別不大
- 支持子查詢
- 支持CTE(Common Table Expression公用表表達式with子句)
- 支持各種JOIN,但是JOIN操作無法使用緩存,所以即使是兩次相同的JOIN語句,ClickHouse也會視為兩條新SQL
- 不支持自定義函數(shù)
- GROUP BY操作增加了with rollup、with cube、with total用來計算小計和總計
插入數(shù)據(jù)
alter table t_order_mt delete where 1=1;
insert into t_order_mt values
(101,'sku_001',1000.00,'2020-06-01 12:00:00'),
(101,'sku_002',2000.00,'2020-06-01 12:00:00'),
(103,'sku_004',2500.00,'2020-06-01 12:00:00'),
(104,'sku_002',2000.00,'2020-06-01 12:00:00'),
(105,'sku_003',600.00,'2020-06-02 12:00:00'),
(106,'sku_001',1000.00,'2020-06-04 12:00:00'),
(107,'sku_002',2000.00,'2020-06-04 12:00:00'),
(108,'sku_004',2500.00,'2020-06-04 12:00:00'),
(109,'sku_002',2000.00,'2020-06-04 12:00:00'),
(110,'sku_003',600.00,'2020-06-01 12:00:00');
3.1、with rollup:從右至左去掉維度進行小計
select id,sku_id,sum(total_amount) from t_order_mt group by id,sku_id with rollup;
3.2、with cube : 從右至左去掉維度進行小計,再從左至右去掉維度進行小計
select id,sku_id,sum(total_amount) from t_order_mt group by id,sku_id with cube;
3.3、with totals: 只計算合計
select id,sku_id,sum(total_amount) from t_order_mt group by id,sku_id with totals;
3.4、alter操作
同MySQL的修改字段基本一致
1)新增字段
alter table tableName add column newcolname String after col1;
2)修改字段類型
alter table tableName modify column newcolname String;
3)刪除字段
alter table tableName drop column newcolname;