1
创建数据库
1
本地引擎
默认的引擎, 默认操作本地或者是指定集群的数据
CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(…)]
2
mysql引擎
MySQL引擎用于将远程的MySQL服务器中的表映射到ClickHouse中,并允许您对表进行INSERT和SELECT查询,以方便您在ClickHouse与MySQL之间进行数据交换。
MySQL数据库引擎会将对其的查询转换为MySQL语法并发送到MySQL服务器中,因此您可以执行诸如SHOW TABLES或SHOW CREATE TABLE之类的操作。
支持的数据类型如下
CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster]
ENGINE = MySQL('host:port', ['database' | database], 'user', 'password')
3
lazy引擎
和*.log类型的表配合使用, 向将表数据加载到内存中,当间隔一定的时间以后再将数据持久化!对大量的小表操作做了优化!
CREATE DATABASE testlazy ENGINE = Lazy(expiration_time_in_seconds);
2
创建表
建一个新表。根据使用情况,此查询可以具有各种语法形式。
默认情况下,仅在当前服务器上创建表。分布式DDL查询作为ON CLUSTER子句实现
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [compression_codec] [TTL expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [compression_codec] [TTL expr2],
...
) ENGINE = engine
1 基本语法建表
CREATE TABLE tb_demo1 \
(\
`id` Int16,\
`name` String,\
`age` UInt8,\
`birthday` Date,\
`sal` Decimal32(2)\
)\
ENGINE = TinyLog
describe table tb_demo1
2
其他表结构
create table tb_demo2 as tb_demo1 ;
可以不指定表的引擎 , 新建表的引擎和原来表的引擎一致
3
as查询数据结构
create table if not exists tb_demo3 engine=TinyLog as select id , name ,age from tb_demo1 ;
注意,一定要指定表的引擎 , 否则会报错
4
表函数
numbers()
create table tb_demo4 as numbers(3