腾讯云数据仓库 TCHouse-X CREATE DATABASE 语句

CREATE DATABASE(或 CREATE SCHEMA)语句用于在 TCHouse-X 中创建新的数据库。在 TCHouse-X 中,数据库具有双重性质。

相关产品
腾讯云数据仓库 TCHouse-X 产品页,含版本规格、价格与购买入口。

·逻辑构造:用于在独立的命名空间内将相关的表、视图和函数进行分组。通常为每个应用、相关表集或实验轮次使用不同的数据库。

·物理构造:在底层存储上对应一个目录树。该目录内部用于存放数据库下的内表、分区和数据文件。

注意:如果要使用与 TCHouse-X 关键字相同的标识符作为数据库、表、列或视图名称,必须用反引号 “包裹该标识符。

一、语法

CREATE (DATABASE | SCHEMA) [IF NOT EXISTS] database_name [COMMENT 'database_comment']

二、语法说明

关键字/参数 说明
IF NOT EXISTS 可选。如果指定的数据库已存在,则语句不会抛出错误,而是成功执行并发出警告。
database_name 必需。 新数据库的名称。
COMMENT 可选。为数据库添加描述性注释。

三、使用说明

·默认数据库:初次连接 TCHouse-X 时,默认所在的数据库是 default。

·切换数据库:创建数据库后,可以使用 USE database_name 语句切换当前操作的数据库。切换后,在引用该数据库下的表时,可以省略数据库名前缀。

·数据库引用:即使不切换,你也可以始终使用完全限定名(db_name.table_name)来引用任何数据库中的表。

·删除数据库限制:

·你不能删除当前正在使用 (USE) 的数据库。

·在删除数据库之前,必须先删除其中的所有表。或者,可以使用 CASCADE 子句强制删除数据库及其所有内容。

四、示例

— 创建并使用第一个数据库CREATE DATABASE first_db;USE first_db;CREATE TABLE t1 (x int);– 创建并使用第二个数据库,展示命名空间隔离 (Namespace Isolation)CREATE DATABASE second_db;USE second_db;– 每个数据库都有独立的表命名空间,因此表名可以重复使用CREATE TABLE t1 (s string);– 创建一个临时数据库CREATE DATABASE temp_db;– 引用表的两种方式:– 方法 1:使用全限定名(数据库名.表名)在 temp_db 中创建表 t2CREATE TABLE temp_db.t2 (x int, y int);– 方法 2:先切换数据库上下文,然后在 temp_db 中创建表 t3USE temp_db;CREATE TABLE t3 (s string);– 尝试删除当前正在使用的数据库(操作会失败)DROP DATABASE temp_db;– 错误示例:ERROR: AnalysisException: Cannot drop current default database: temp_db– 切换到 default 数据库,以便删除其他数据库USE default;– 尝试删除一个非空数据库(操作会失败;需要先删除表,或使用 CASCADE 关键字)DROP DATABASE temp_db;– 错误示例:CAUSED BY: InvalidOperationException: Database temp_db is not emptySHOW TABLES IN temp_db;/*+——+| name |+——+| t2 || t3 |+——+*/– 推荐方法:使用 CASCADE 关键字进行级联强制删除DROP DATABASE temp_db CASCADE;– 传统或谨慎的方法:先手动删除所有表,然后再删除数据库DROP TABLE temp_db.t2;DROP TABLE temp_db.t3;DROP DATABASE temp_db;

赞 (0)
上一篇 4天前
下一篇 4天前