- 创建数据库
CREATE DATABASE IF NOT EXISTS test_database;
集群语句(集群名称必须和搭建环境中配置环境名称一致
)
// cluster_name是集群名称
CREATE DATABASE IF NOT EXISTS test_database on cluster cluster_name;
- 删除数据库
drop database test_database;
- 创建表
DROP table if exists product_id;
CREATE TABLE product_id
(
factory_goods_id UInt32 COMMENT '工厂商品ID',
goods_name String COMMENT '商品名称',
shop_id UInt32 COMMENT '店铺ID',
shop_name String COMMENT '店铺名称',
create_time DateTime COMMENT '创建时间',
update_time DateTime COMMENT '更新时间'
) ENGINE = MergeTree()
PRIMARY KEY factory_goods_id
ORDER BY factory_goods_id
DROP table if exists product_detail;
CREATE TABLE product_detail
(
factory_goods_id UInt32 COMMENT '工厂商品ID',
goods_name String COMMENT '商品名称',
goods_class_id UInt32 COMMENT '商品分类ID',
class_name String COMMENT '分类名称',
img_list Array(String) COMMENT '图片列表',
color Array(String) COMMENT '所有颜色',
introduce String COMMENT '商品介绍',
preview_img String COMMENT '预览图片',
factory_name String COMMENT '工厂名称',
sku_info String COMMENT 'sku信息',
create_time DateTime COMMENT '创建时间',
update_time DateTime COMMENT '更新时间'
) ENGINE = MergeTree()
ORDER BY factory_goods_id
PRIMARY KEY factory_goods_id
集群建表方式(集群名称必须和搭建环境中配置环境名称一致
)
DROP table if exists product_id on cluster cluster_name;
CREATE TABLE product_id on cluster cluster_name
(
factory_goods_id UInt32 COMMENT '工厂商品ID',
goods_name String COMMENT '商品名称',
shop_id UInt32 COMMENT '店铺ID',
shop_name String COMMENT '店铺名称',
create_time DateTime COMMENT '创建时间',
update_time DateTime COMMENT '更新时间'
) ENGINE = MergeTree()
PRIMARY KEY factory_goods_id
ORDER BY factory_goods_id
- 添加字段
注意引擎
,测试使用MergeTree
alter table product_detail add column `remark` String DEFAULT '' COMMENT '备注';
- 修改字段
alter table product_detail modify column `remark` Nullable(String) DEFAULT NULL COMMENT '备注';
- 删除字段
alter table product_detail drop column `remark`;
- 插入数据
格式
INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), (v21, v22, v23), ...
示例
INSERT INTO insert_select_testtable (*) VALUES (1, 'a', 1) ;
-
删除数据
- 按分区删除
ALTER TABLE db_name.table_name DROP PARTITION '分区(例如:时间20210514)'
- 按条件删除
ALTER TABLE db_name.table_name DELETE WHERE id = 1 and name='小米'
-
更新数据
ALTER TABLE <table_name> UPDATE col1 = expr1, ... WHERE <filter>
-- 示例:
alter table table_name update name = '华为',phone = '123456' where id = 1
- 更新限制
- 索引列不能进行更新
- 分布式表不能进行更新
- 该命令是异步执行的,可以通过查看表 system.mutations 来查看命令的是否执行完毕