IoTDB 入门教程:数据库SQL操作基础篇⑥ | 数据库管理与数据读写技巧

文章目录

  • 一、前文
  • 二、数据库管理
  • 2.1 创建数据库
  • 2.2 查询数据库
  • 2.3 删除数据库
  • 三、数据读写
  • 3.1 查询数据
  • 3.2 新增数据
  • 3.3 修改数据
  • 3.4 删除数据
  • 四、参考
  • 一、前文

    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

    觉得好,就一键三连呗(点赞+收藏+关注)

    作者:小康师兄

    物联沃分享整理
    物联沃-IOTWORD物联网 » IoTDB 入门教程:数据库SQL操作基础篇⑥ | 数据库管理与数据读写技巧

    发表回复