数据库其实是数据的逻辑分组。每个数据库包含许多表和视图。表是存放数据的地方,由结构化的行和列组成。视图是依赖于表的保存的查询。当访问视图时,会在后台执行查询并返回结果。
每个数据库都属于一个帐户。用户只能访问属于自己帐户的数据库(当拥有权限时)
CREATE DATABASE my_database01;
注意
数据库名称中只能包含 字母数字 字符 a-z 0-9
和 下划线 _
。所有名称将自动转换为 小写 。
DROP DATABASE my_database01;
警告
删除数据库的同时将删除数据库中的所有表。
如果设置了默认数据库,则不需要在查询表前指定数据库名称。
SET DEFAULT DATABASE my_database01;
例如,如果默认数据库是my_database01,且在my_database01中有一个名为demo_table的表,您可以这样查询:
SELECT * FROM demo_table;
如果不设置默认数据库,则按下面方法查询:
SELECT * FROM my_database01.demo_table;
表是存储数据的地方。每个表属于一个数据库。表可以通过多种方式创建:通过 UI 或 SQL 手动创建,或者导入数据。
ByteHouse 中的表支持不同类型的属性:
CNCHMergeTree
。注意 :一旦数据的时限超过保留时间,将会自动 删除 。
表始终在数据库中创建。当未指定数据库时,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;