【ClickHouse】创建表

1、本地表

sql 复制代码
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
    name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
    name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
    ...
) ENGINE = engine

在指定的'db'数据库中创建一个名为'name'的表,如果查询中没有包含'db',则默认使用当前选择的数据库作为'db'。

括号中的表结构声明是一个包含一组列描述声明的组合。

ENGIN 为表引擎的声明。如果表引擎是支持索引的,那么可以在表引擎的参数中对其进行说明。

如果指定了IF NOT EXISTS,那么在该表已经存在的情况下,查询不会返回任何错误。在这种情况下,查询几乎不会做任何事情。

示例:

sql 复制代码
CREATE TABLE db_admin.api_user on  cluster cluster_demo (
	`id` String, 
	`name` String
) ENGINE = MergeTree ORDER BY id SETTINGS index_granularity = 8192

2、分布表:

sql 复制代码
CREATE TABLE db_admin.api_user_all on  cluster cluster_demo as db_admin.api_user
ENGINE = Distributed('cluster_demo', 'db_admin', api_user, rand())

3、复制表结构

sql 复制代码
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] AS [db2.]name2 [ENGINE = engine]

创建一个与db2.name2具有相同结构的表,同时你可以对其指定不同的表引擎声明。如果没有表引擎声明,则创建的表将与db2.name2使用相同的表引擎。

sql 复制代码
CREATE TABLE db_admin.role as db_admin.role2 

CREATE TABLE db_admin.menu on cluster cluster_demo as db_admin.menu2

4、复制表及数据

sql 复制代码
CREATE TABLE [IF NOT EXISTS] [db.]table_name ENGINE = engine AS SELECT ...

使用指定的引擎创建一个与SELECT子句的结果具有相同结构的表,并使用SELECT子句的结果填充它。

示例:

sql 复制代码
CREATE TABLE db_admin.role ENGINE = MergeTree ORDER BY id AS select * from db_admin.role 

10、资料

相关推荐
余槐i7 分钟前
EXPLAIN 显示走了索引查询仍慢:回表与选择性在 500 万行表上拉开 10 倍耗时
数据库·postgresql·性能优化·vacuum·explain
深度智能Ai41 分钟前
IndexTTS‑2高清音质接口对接文档
数据库
香瓜子rd1 小时前
MySQL InnoDB 并发控制核心原理:事务、隔离级别、MVCC 与锁机制
数据库·后端
Elastic 中国社区官方博客1 小时前
Elasticsearch Serverless 如何通过 hollow shards 将索引节点关闭次数降低 30%
大数据·数据库·elasticsearch·搜索引擎·serverless·全文检索
ycvv2 小时前
手机启动失败后的数据提取评估:系统状态、加密条件与文件验收
服务器·数据库·智能手机
不恋水的雨2 小时前
gbase中union all导致末尾多出空格的坑
数据库·sql·mysql
AI 算法大模型备案~当当3 小时前
各地备案数量怎么看:一份属地公告的认读与台账方法
java·数据库·人工智能
梦帮科技3 小时前
量子张量网络破局大模型:从矩阵乘积态 (MPS) 到张量列 (TT-SVD) 低秩收缩全推导
网络·数据结构·数据库·线性代数·矩阵·架构·模拟退火算法
曹牧4 小时前
PL/SQL Developer:导出建表语句
数据库·sql
念念不忘 必有回响4 小时前
MySQL 事务与隔离级别完全指南
数据库·mysql