参考地址:https://docs.taosdata.com/taos-sql/database/
数据库
创建数据库
# database_options
#具体参数请参考官方说明
CREATE DATABASE [IF NOT EXISTS] db_name [database_options]
#示例:
create database if not exists db vgroups 10 buffer 10
使用数据库
USE db_name;
删除数据库
#删除数据库。指定 Database 所包含的全部数据表将被删除,该数据库的所有 vgroups 也会被全部销毁,请谨慎使用!
DROP DATABASE [IF EXISTS] db_name
修改数据库参数
# 具体参考官方文档
ALTER DATABASE db_name [alter_database_options]
查看数据库
SHOW DATABASES;
#查看建表语句
SHOW CREATE DATABASE db_name;
查看数据库参数
SELECT * FROM INFORMATION_SCHEMA.INS_DATABASES WHERE NAME='db_name';
删除过期数据
TRIM DATABASE db_name;
落盘内存数据
#落盘内存中的数据。在关闭节点之前,执行这条命令可以避免重启后的数据回放,加速启动过程。
FLUSH DATABASE db_name;
查看数据库工作状态
# 查询数据库 db_name 的可用状态,返回值 0:不可用 1:完全可用 2:部分可用(即数据库包含的 VNODE 部分节点可用,部分节点不可用)
SHOW db_name.ALIVE;
表
创建表
CREATE TABLE [IF NOT EXISTS] [db_name.]tb_name (create_definition [, create_definition] ...) [table_options]
CREATE TABLE create_subtable_clause
CREATE TABLE [IF NOT EXISTS] [db_name.]tb_name (create_definition [, create_definition] ...)
[TAGS (create_definition [, create_definition] ...)]
[table_options]
create_subtable_clause: {
create_subtable_clause [create_subtable_clause] ...
| [IF NOT EXISTS] [db_name.]tb_name USING [db_name.]stb_name [(tag_name [, tag_name] ...)] TAGS (tag_value [, tag_value] ...)
}
create_definition:
col_name column_definition
column_definition:
type_name [comment 'string_value'] [PRIMARY KEY] [ENCODE 'encode_type'] [COMPRESS 'compress_type'] [LEVEL 'level_type']
table_options:
table_option ...
table_option: {
COMMENT 'string_value'
| SMA(col_name [, col_name] ...)
| TTL value
}
创建子表
创建子表
# tb_name:表名 ; stb_name:tags名称
CREATE TABLE [IF NOT EXISTS] tb_name USING stb_name TAGS (tag_value1, ...);
创建子表并指定标签的值
#以指定的超级表为模板,也可以指定一部分 TAGS 列的值来创建数据表(没被指定的 TAGS 列会设为空值)。
CREATE TABLE [IF NOT EXISTS] tb_name USING stb_name (tag_name1, ...) TAGS (tag_value1, ...);
批量创建子表
CREATE TABLE [IF NOT EXISTS] tb_name1 USING stb_name TAGS (tag_value1, ...) [IF NOT EXISTS] tb_name2 USING stb_name TAGS (tag_value2, ...) ...;
修改普通表
ALTER TABLE [db_name.]tb_name alter_table_clause
alter_table_clause: {
alter_table_options
| ADD COLUMN col_name column_type
| DROP COLUMN col_name
| MODIFY COLUMN col_name column_type
| RENAME COLUMN old_col_name new_col_name
}
alter_table_options:
alter_table_option ...
alter_table_option: {
TTL value
| COMMENT 'string_value'
}
增加列
ALTER TABLE tb_name ADD COLUMN field_name data_type;
删除列
ALTER TABLE tb_name DROP COLUMN field_name;
修改列宽
ALTER TABLE tb_name MODIFY COLUMN field_name data_type(length);
修改列名
ALTER TABLE tb_name RENAME COLUMN old_col_name new_col_name
修改表生命周期
ALTER TABLE tb_name TTL value
修改表注释
ALTER TABLE tb_name COMMENT 'string_value'
修改子表
ALTER TABLE [db_name.]tb_name alter_table_clause
alter_table_clause: {
alter_table_options
| SET TAG tag_name = new_tag_value
}
alter_table_options:
alter_table_option ...
alter_table_option: {
TTL value
| COMMENT 'string_value'
}
修改子表标签值
#对于子表只能改标签
ALTER TABLE tb_name SET TAG tag_name=new_tag_value;
删除表
DROP TABLE [IF EXISTS] [db_name.]tb_name [, [IF EXISTS] [db_name.]tb_name] ...
查看表的信息
SHOW CREATE TABLE tb_name;
获取表结构信息
DESCRIBE [db_name.]tb_name;
超级表
创建超级表
CREATE STABLE [IF NOT EXISTS] stb_name (create_definition [, create_definition] ...) TAGS (create_definition [, create_definition] ...) [table_options]
create_definition:
col_name column_definition
column_definition:
type_name
查看超级表
SHOW STABLES [LIKE tb_name_wildcard];
写入数据
正常表
INSERT INTO machinery USING machinery TAGS (‘14541649930’)(bsm,yjsj,tbsj) VALUES (‘test’,1719991296399,1719991296400);
INSERT INTO
tb_name
[USING stb_name [(tag1_name, ...)] TAGS (tag1_value, ...)]
[(field1_name, ...)]
VALUES (field1_value, ...) [(field1_value2, ...) ...] | FILE csv_file_path
[tb2_name
[USING stb_name [(tag1_name, ...)] TAGS (tag1_value, ...)]
[(field1_name, ...)]
VALUES (field1_value, ...) [(field1_value2, ...) ...] | FILE csv_file_path
...];
INSERT INTO tb_name [(field1_name, ...)] subquery
超级表语法
INSERT INTO
stb1_name [(field1_name, ...)]
VALUES (field1_value, ...) [(field1_value2, ...) ...] | FILE csv_file_path
[stb2_name [(field1_name, ...)]
VALUES (field1_value, ...) [(field1_value2, ...) ...] | FILE csv_file_path
...];
插入记录
#一条记录
INSERT INTO d1001 VALUES (NOW, 10.2, 219, 0.32);
# 多条
INSERT INTO d1001 VALUES ('2021-07-13 14:06:32.272', 10.2, 219, 0.32) (1626164208000, 10.15, 217, 0.33);
#按照列插入
INSERT INTO d1001 (ts, current, phase) VALUES ('2021-07-13 14:06:33.196', 10.27, 0.31);
插入记录时自动建表
INSERT INTO d21001 USING meters TAGS ('California.SanFrancisco', 2) VALUES ('2021-07-13 14:06:32.272', 10.2, 219, 0.32);
# 也可以在自动建表时,只是指定部分 TAGS 列的取值,未被指定的 TAGS 列将置为 NULL。例如
INSERT INTO d21001 USING meters (groupId) TAGS (2) VALUES ('2021-07-13 14:06:33.196', 10.15, 217, 0.33);
删除数据
DELETE FROM [ db_name. ] tb_name [WHERE condition];