数据库管理
2025年2月10日大约 3 分钟
数据库管理
1. 数据库管理
1.1 创建数据库
用于创建数据库。
语法:
CREATE DATABASE (IF NOT EXISTS)? <DATABASE_NAME> (WITH properties)?
说明:
<DATABASE_NAME> 数据库名称,具有以下特性:
- 大小写不敏感
- 名称的长度不得超过 64 个字符。
- 名称中包含下划线(_)、数字(非开头)、英文字母可以直接创建
- 名称中包含特殊字符(如`)、中文字符、数字开头时,必须用双引号 "" 括起来。
WITH properties 子句可配置如下属性:
注:属性的大小写不敏感,且暂不支持修改,有关详细信息大小写敏感规则。
属性 | 含义 | 默认值 |
---|---|---|
TTL | 数据自动过期删除,单位 ms | INF |
TIME_PARTITION_INTERVAL | 数据库的时间分区间隔,单位 ms | 604800000 |
SCHEMA_REGION_GROUP_NUM | 数据库的元数据副本组数量,一般不需要修改 | 1 |
DATA_REGION_GROUP_NUM | 数据库的数据副本组数量,一般不需要修改 | 2 |
示例:
CREATE DATABASE database1;
CREATE DATABASE IF NOT EXISTS database1;
// 创建一个名为 database1 的数据库,并将数据库的TTL时间设置为1年。
CREATE DATABASE IF NOT EXISTS database1 with(TTL=31536000000);
1.2 使用数据库
用于指定当前数据库作为表的命名空间。
语法:
USE <DATABASE_NAME>
示例:
USE database1
1.3 查看当前数据库
返回当前会话所连接的数据库名称,若未执行过 use
语句指定数据库,则默认为 null
。
语法:
SHOW CURRENT_DATABASE
示例:
IoTDB> SHOW CURRENT_DATABASE;
+---------------+
|CurrentDatabase|
+---------------+
| null|
+---------------+
IoTDB> USE test;
IoTDB> SHOW CURRENT_DATABASE;
+---------------+
|CurrentDatabase|
+---------------+
| iot_database|
+---------------+
1.4 查看所有数据库
用于查看所有数据库和数据库的属性信息。
语法:
SHOW DATABASES (DETAILS)?
语句返回列含义如下:
列名 | 含义 |
---|---|
database | database名称。 |
TTL | 数据保留周期。如果在创建数据库的时候指定TTL,则TTL对该数据库下所有表的TTL生效。也可以再通过 create table 、alter table 来设置或更新表的TTL时间。 |
SchemaReplicationFactor | 元数据副本数,用于确保元数据的高可用性。可以在iotdb-system.properties 中修改schema_replication_factor 配置项。 |
DataReplicationFactor | 数据副本数,用于确保数据的高可用性。可以在iotdb-system.properties 中修改data_replication_factor 配置项。 |
TimePartitionInterval | 时间分区间隔,决定了数据在磁盘上按多长时间进行目录分组,通常采用默认1周即可。 |
SchemaRegionGroupNum | 使用DETAILS 语句会返回此列,展示数据库的元数据副本组数量,一般不需要修改 |
DataRegionGroupNum | 使用DETAILS 语句会返回此列,展示数据库的数据副本组数量,一般不需要修改 |
示例:
IoTDB> show databases
+---------+-------+-----------------------+---------------------+---------------------+
| Database|TTL(ms)|SchemaReplicationFactor|DataReplicationFactor|TimePartitionInterval|
+---------+-------+-----------------------+---------------------+---------------------+
|test_prop| 300| 3| 2| 100000|
| test2| 300| 3| 2| 604800000|
+---------+-------+-----------------------+---------------------+---------------------+
IoTDB> show databases details
+---------+-------+-----------------------+---------------------+---------------------+-----------------------+-----------------------+
| Database|TTL(ms)|SchemaReplicationFactor|DataReplicationFactor|TimePartitionInterval|SchemaRegionGroupNum| DataRegionGroupNum|
+---------+-------+-----------------------+---------------------+---------------------+-----------------------+-----------------------+
|test_prop| 300| 3| 2| 100000| 1| 2|
| test2| 300| 3| 2| 604800000| 1| 2|
+---------+-------+-----------------------+---------------------+---------------------+-----------------------+-----------------------+
1.5 修改数据库
暂不支持,V2.0.2.1后支持
1.6 删除数据库
用于删除数据库。
语法:
DROP DATABASE (IF EXISTS)? <DATABASE_NAME>
说明:
- 数据库已被设置为当前使用(use)的数据库,仍然可以被删除(drop)。
- 删除数据库将导致所选数据库及其内所有表连同其存储的数据一并被删除。
示例:
DROP DATABASE IF EXISTS database1