数据库表及视图
数据库和表概述
数据库其实是数据的逻辑分组。每个数据库包含许多表和视图。表是存放数据的地方,由结构化的行和列组成。视图是依赖于表的保存的查询。当访问视图时,会在后台执行查询并返回结果。
数据库
每个数据库都属于一个帐户。用户只能访问属于自己帐户的数据库(当拥有权限时)
创建数据库
CREATE DATABASE my_database01;
注意 :数据库名称中只能包含 字母数字 字符 a-z 0-9
和 下划线 _
。所有名称将转换为 小写 。
删除数据库
DROP DATABASE my_database01;
注意: 删除数据库的同时将删除数据库中的所有表
表
表是存储数据的地方。每个表属于一个数据库。表可以通过多种方式创建:通过 UI 或 SQL 手动创建,或者导入数据。
ByteHouse 中的表支持不同类型的属性:
-
描述 - 用户注释
-
引擎 - 表引擎决定数据的存储和访问方式。目前仅支持
CNCHMergeTree
。 -
排序键 (强制)- 如果未指定主键,则以列作为主键。按键排序用于决定数据在数据库中的实际存储方式。用户使用按键排序最多可以指定 5 列。
-
主键 (强制)- 主键通常与按键排序的作用相同,用于整理数据文件。
-
分区键 (强制)- 分区键用于决定表中的每行属于哪个数据分区,它将一个大的表分成一些小的部分。
-
分桶键 (可选) - 对于每一个表或分区,通过指定分桶键 (Cluster Key) 进一步细分成桶,对列中的数据进行哈希,进行更细粒度的划分,从而提高查询和采样效率。
-
保留时间 (可选)- 数据保留的具体时间长短,如果通过 UI 操作,则为天数。
注意 :一旦数据的时限超过保留时间,将会自动 删除 。
-
唯一键 (可选)- 确保用户可以查询唯一密钥的最新值。唯一键最多只能接受 10 个值,并且不能包含空列。分为两级,即 分区 级 和 表 级,用于确定唯一值的粒度。
-
采样键 (可选)- 定义采样键可以获取某个采样数据的分区。默认情况下,采样键将使用第一个主键,并且必须是按键排序/主键中的一个。
创建表
表始终在数据库中创建。当未指定数据库时,ByteHouse 将根据用户的首选项使用默认数据库。
注意:也可以通过 查询 进行建表操作
CREATE TABLE `test_db2`.`my_table`
(
`id` UInt64,
`name` String,
`started` DateTime
)
ENGINE=`CnchMergeTree()`
PRIMARY KEY `id`
ORDER BY `id`
PARTITION BY `toYYYYMMDD`(`started`);
注意 :创建表后,只能从表属性中更新 保留时间 。创建后仍然可以添加列。
更改表
可以通过 ALTER
更改表的属性:
-
列
-
添加
-
删除(不能删除用作键的列)
-
-- Add
ALTER TABLE my_database01.my_table ADD COLUMN new_column UInt32;
-- Drop
ALTER TABLE my_database01.my_table DROP COLUMN old_column UInt32;
- 注释
ALTER TABLE my_database01.my_table COMMENT COLUMN old_column 'my comment'
- 保留时间
-- Add TTL
ALTER TABLE my_database01.my_table MODIFY TTL INTERVAL 3 DAY;
-- Remove TTL
ALTER TABLE my_database01.my_table REMOVE TTL
- 表名
RENAME TABLE my_database01.my_table TO my_database01.new_table;
删除表
DROP TABLE my_database01.my_table;
注意: 当表存在有依靠表的视图时,无法删除表。删除表前,必须先删除依靠表的视图。
克隆表
使用与 原始表 相同的模式和数据创建新表。
CLONE TABLE orignal_db.orginal_tableINTO new_db.new_tableCOMMENT 'my newly cloned table'
视图
视图其实是存储的查询。访问视图时,执行后续查询,并使用查询结果显示数据。
创建视图
CREATE VIEW my_database01.my_view AS SELECT * FROM my_database01.my_table;
删除视图
DROP VIEW my_database01.my_view;
Updated about 3 years ago