在松果时序数据库中,可以通过查询系统表 sys_table 及 sys_column 获取系统表和数据表的表结构。
2. 创建数据表
使用 CREATE TABALE 语句创建表。每个表必须有两个固定的列:设备ID(devid)列,数据类型为bigint,以及时间戳(tstamp)列,数据类型为datetime;表的主键为设备ID和时间戳,创建表时不需要显示指定主键,也不能修改他们的类型和顺序,一个典型的创建表语句示例如下:
例如:创建一个表tab01的示例:
(
devid bigint,
tstamp datetime,
val01 bool,
val02 bigint,
val03 datetime,
val04 double,
val05 real2,
val07 real4,
val08 real6,
val09 string,
val10 blob
)
3. 修改表结构
使用 ALTER TABLE 语句修改表结构,设备ID(devid)和时间戳(tstamp)列不可修改。一个典型的修改表结构语句如下所示:
ALTER TABLE tab01
(
devid bigint,
val02 bigint,
val03 datetime,
val04 double,
val05 string,
val06 blob
)
概念说明:
字段标识 : 使用列名(不区分大小写)和类型的组合标识一个字段。
删除字段 : 若一个字段标识在原表结构中存在,新表结构中不存在,则表示该字段被删除。
新增字段 : 若一个字段标识在原表结构中不存在,新表结构中存在,则表示该字段是新增字段。需要说名的是当修改一个字段从val01 bool 到 val01 bigint 后表示删除了字段val01 bool , 新增了字段 val01 bigint。 修改表结构 : 若修改了任何字段之间的顺序、字段名、字段类型,都将视为修改了表结构。
修改表结构后有如下影响:
当系统执行插入数据时:
当对应的数据文件存在时,会检查当前表结构与数据文件中的表结构是否一致(字段名、类型、顺序完全一致),若不一致则插入失败。
当对应的数据文件不存在时,会使用当前表结构创建数据文件,然后将数据插入到新建的数据文件中。
当系统执行查询数据时:
删除的字段无法查询到(数据依然存在),新添加的字段在已存在的数据文件上查询时的值为null。
修改表结构的实例:
使用 DROP TABLE 语句删除表,删除表会删除改表的设备文件和所有数据文件,请谨慎操作。
删除表tab01的示例如下:
DROP TABLE tab01
5. 分离表
分离表可以将数据表从系统中移除,但是保留表的设备文件和所有数据文件。分离表可以将一个表的所有数据转移到另一台服务器。具体操作需结合后面的附加表和数据文件操作。
分离表的使用方法如下:
6. 附加表
注意:附加表后,表原来的数据文件不会自动附加,请根据数据文件管理部分手动附加数据文件。