IoTDB 入门教程:数据库SQL操作基础篇⑥ | 数据库管理与数据读写技巧
文章目录
一、前文
IoTDB入门教程——导读
本博文主要讲述数据库管理和数据读写
二、数据库管理
2.1 创建数据库
CREATE DATABASE root.ln
IoTDB> CREATE DATABASE root.test
Msg: The statement is executed successfully.
注意:必须是root.开头
这一点也是我一直吐槽的地方,为啥要限制必须root.
开头呢?
全部都是root.
开头不就等于全部都没有root.
开头。意义何在呢。
IoTDB> CREATE DATABASE test
Msg: org.apache.iotdb.jdbc.IoTDBSQLException: 700: Error occurred while parsing SQL to physical plan: line 1:16 mismatched input 'test' expecting ROOT
IoTDB> CREATE DATABASE test.test
Msg: org.apache.iotdb.jdbc.IoTDBSQLException: 700: Error occurred while parsing SQL to physical plan: line 1:16 mismatched input 'test' expecting ROOT
注意:Database的父子节点都不能再设置 database
IoTDB> CREATE DATABASE root.test.aa
Msg: org.apache.iotdb.jdbc.IoTDBSQLException: 501: root.test has already been created as database
IoTDB> CREATE DATABASE root.test1.aa
Msg: The statement is executed successfully.
2.2 查询数据库
SHOW DATABASES;
IoTDB> SHOW DATABASES;
+----------------+----+-----------------------+---------------------+---------------------+
| Database| TTL|SchemaReplicationFactor|DataReplicationFactor|TimePartitionInterval|
+----------------+----+-----------------------+---------------------+---------------------+
| root.user1|null| 1| 1| 604800000|
| root.test1.aa|null| 1| 1| 604800000|
| root.test|null| 1| 1| 604800000|
|root.water_meter|null| 1| 1| 604800000|
+----------------+----+-----------------------+---------------------+---------------------+
Total line number = 4
It costs 0.010s
2.3 删除数据库
DELETE DATABASE root.ln
IoTDB> DELETE DATABASE root.user1
Msg: The statement is executed successfully.
IoTDB> SHOW DATABASES;
+----------------+----+-----------------------+---------------------+---------------------+
| Database| TTL|SchemaReplicationFactor|DataReplicationFactor|TimePartitionInterval|
+----------------+----+-----------------------+---------------------+---------------------+
| root.test1.aa|null| 1| 1| 604800000|
| root.test|null| 1| 1| 604800000|
|root.water_meter|null| 1| 1| 604800000|
+----------------+----+-----------------------+---------------------+---------------------+
Total line number = 3
It costs 0.006s
IoTDB> DELETE DATABASE root.test1.aa
Msg: The statement is executed successfully.
IoTDB> SHOW DATABASES;
+----------------+----+-----------------------+---------------------+---------------------+
| Database| TTL|SchemaReplicationFactor|DataReplicationFactor|TimePartitionInterval|
+----------------+----+-----------------------+---------------------+---------------------+
| root.test|null| 1| 1| 604800000|
|root.water_meter|null| 1| 1| 604800000|
+----------------+----+-----------------------+---------------------+---------------------+
Total line number = 2
It costs 0.005s
三、数据读写
3.1 查询数据
select status from root.test.test
IoTDB> select status from root.test.test
+-----------------------------+---------------------+
| Time|root.test.test.status|
+-----------------------------+---------------------+
|2024-05-03T19:18:07.573+08:00| 1.0|
|2024-05-03T19:18:19.825+08:00| 2.0|
|2024-05-03T19:18:21.893+08:00| 3.0|
+-----------------------------+---------------------+
Total line number = 3
It costs 0.127s
3.2 新增数据
INSERT INTO root.test.test(status) values(1)
IoTDB> INSERT INTO root.test.test(status) values(1)
Msg: The statement is executed successfully.
IoTDB> INSERT INTO root.test.test(status) values(2)
Msg: The statement is executed successfully.
IoTDB> INSERT INTO root.test.test(status) values(3)
Msg: The statement is executed successfully.
IoTDB> select status from root.test.test
+-----------------------------+---------------------+
| Time|root.test.test.status|
+-----------------------------+---------------------+
|2024-05-03T19:18:07.573+08:00| 1.0|
|2024-05-03T19:18:19.825+08:00| 2.0|
|2024-05-03T19:18:21.893+08:00| 3.0|
+-----------------------------+---------------------+
Total line number = 3
It costs 0.127s
注意:新增多条数据,需要传入时间戳参数
INSERT INTO root.test.test(timestamp,status) values(1,4),(2,5),(3,6)
IoTDB> INSERT INTO root.test.test(timestamp,status) values(1,4),(2,5),(3,6)
Msg: The statement is executed successfully.
IoTDB> select status from root.test.test
+-----------------------------+---------------------+
| Time|root.test.test.status|
+-----------------------------+---------------------+
|1970-01-01T08:00:00.001+08:00| 4.0|
|1970-01-01T08:00:00.002+08:00| 5.0|
|1970-01-01T08:00:00.003+08:00| 6.0|
|2024-05-03T19:18:07.573+08:00| 1.0|
|2024-05-03T19:18:19.825+08:00| 2.0|
|2024-05-03T19:18:21.893+08:00| 3.0|
+-----------------------------+---------------------+
Total line number = 6
It costs 0.012s
3.3 修改数据
传入同样的时间戳,即可覆盖该时间戳的上一条数据
IoTDB> INSERT INTO root.test.test(timestamp,status) values(1,444)
Msg: The statement is executed successfully.
IoTDB> SELECT status FROM root.test.test
+-----------------------------+---------------------+
| Time|root.test.test.status|
+-----------------------------+---------------------+
|1970-01-01T08:00:00.001+08:00| 444.0|
|1970-01-01T08:00:00.002+08:00| 5.0|
|1970-01-01T08:00:00.003+08:00| 6.0|
|2024-05-03T19:18:07.573+08:00| 1.0|
|2024-05-03T19:18:19.825+08:00| 2.0|
|2024-05-03T19:18:21.893+08:00| 3.0|
+-----------------------------+---------------------+
Total line number = 6
It costs 0.010s
3.4 删除数据
DELETE FROM root.test.test.status where time < 4
IoTDB> DELETE FROM root.test.test.status where time < 4
Msg: The statement is executed successfully.
IoTDB> SELECT status FROM root.test.test
+-----------------------------+---------------------+
| Time|root.test.test.status|
+-----------------------------+---------------------+
|2024-05-03T19:18:07.573+08:00| 1.0|
|2024-05-03T19:18:19.825+08:00| 2.0|
|2024-05-03T19:18:21.893+08:00| 3.0|
+-----------------------------+---------------------+
Total line number = 3
It costs 0.014s
四、参考
SQL手册 | IoTDB Website
数据增删 | IoTDB Website
数据查询 | IoTDB Website
觉得好,就一键三连呗(点赞+收藏+关注)
作者:小康师兄