doc: SQL reference guide, grant and select
This commit is contained in:
parent
4176b6b632
commit
b0ad07d4e7
|
@ -175,7 +175,7 @@ SELECT COUNT(*) FROM (SELECT DISTINCT TBNAME FROM meters);
|
||||||
|
|
||||||
这三个伪列只能用于时间窗口的窗口切分查询之中,且要在窗口切分子句之后出现。
|
这三个伪列只能用于时间窗口的窗口切分查询之中,且要在窗口切分子句之后出现。
|
||||||
|
|
||||||
### \_c0/\_ROWTS
|
**\_c0/\_ROWTS**
|
||||||
|
|
||||||
TDengine 中,所有表的第一列都必须是时间戳类型,且为其主键,\_rowts 伪列和\_c0 伪列均代表了此列的值。相比实际的主键时间戳列,使用伪列更加灵活,语义也更加标准。例如,可以和 max\min 等函数一起使用。
|
TDengine 中,所有表的第一列都必须是时间戳类型,且为其主键,\_rowts 伪列和\_c0 伪列均代表了此列的值。相比实际的主键时间戳列,使用伪列更加灵活,语义也更加标准。例如,可以和 max\min 等函数一起使用。
|
||||||
|
|
||||||
|
@ -183,6 +183,21 @@ TDengine 中,所有表的第一列都必须是时间戳类型,且为其主
|
||||||
select _rowts, max(current) from meters;
|
select _rowts, max(current) from meters;
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 查询对象
|
||||||
|
|
||||||
|
FROM 关键字后面可以是若干个表(超级表)列表,也可以是子查询的结果。
|
||||||
|
如果没有指定用户的当前数据库,可以在表名称之前使用数据库的名称来指定表所属的数据库。例如:`power.d1001` 方式来跨库使用表。
|
||||||
|
|
||||||
|
TDengine 支持基于时间戳主键的 INNER JOIN,规则如下:
|
||||||
|
|
||||||
|
1. 支持 FROM 表列表和显式的 JOIN 子句两种语法。
|
||||||
|
2. 对于普通表和子表,ON 条件必须有且只有时间戳主键的等值条件。
|
||||||
|
3. 对于超级表,ON 条件在时间戳主键的等值条件之外,还要求有可以一一对应的标签列等值条件,不支持 OR 条件。
|
||||||
|
4. 参与 JOIN 计算的表只能是同一种类型,即只能都是超级表,或都是子表,或都是普通表。
|
||||||
|
5. JOIN 两侧均支持子查询。
|
||||||
|
6. 参与 JOIN 的表个数上限为 10 个。
|
||||||
|
7. 不支持与 FILL 子句混合使用。
|
||||||
|
|
||||||
## GROUP BY
|
## GROUP BY
|
||||||
|
|
||||||
如果在语句中同时指定了 GROUP BY 子句,那么 SELECT 列表只能包含如下表达式:
|
如果在语句中同时指定了 GROUP BY 子句,那么 SELECT 列表只能包含如下表达式:
|
||||||
|
@ -198,20 +213,6 @@ GROUP BY 子句中的表达式可以包含表或视图中的任何列,这些
|
||||||
|
|
||||||
该子句对行进行分组,但不保证结果集的顺序。若要对分组进行排序,请使用 ORDER BY 子句
|
该子句对行进行分组,但不保证结果集的顺序。若要对分组进行排序,请使用 ORDER BY 子句
|
||||||
|
|
||||||
## 查询对象
|
|
||||||
|
|
||||||
FROM 关键字后面可以是若干个表(超级表)列表,也可以是子查询的结果。
|
|
||||||
如果没有指定用户的当前数据库,可以在表名称之前使用数据库的名称来指定表所属的数据库。例如:`power.d1001` 方式来跨库使用表。
|
|
||||||
|
|
||||||
TDengine 支持基于时间戳主键的 INNER JOIN,规则如下:
|
|
||||||
|
|
||||||
1. 支持 FROM 表列表和显式的 JOIN 子句两种语法。
|
|
||||||
2. 对于普通表和子表,ON 条件必须有且只有时间戳主键的等值条件。
|
|
||||||
3. 对于超级表,ON 条件在时间戳主键的等值条件之外,还要求有可以一一对应的标签列等值条件,不支持 OR 条件。
|
|
||||||
4. 参与 JOIN 计算的表只能是同一种类型,即只能都是超级表,或都是子表,或都是普通表。
|
|
||||||
5. JOIN 两侧均支持子查询。
|
|
||||||
6. 参与 JOIN 的表个数上限为 10 个。
|
|
||||||
7. 不支持与 FILL 子句混合使用。
|
|
||||||
|
|
||||||
## PARTITON BY
|
## PARTITON BY
|
||||||
|
|
||||||
|
@ -286,23 +287,6 @@ SELECT TODAY();
|
||||||
SELECT TIMEZONE();
|
SELECT TIMEZONE();
|
||||||
```
|
```
|
||||||
|
|
||||||
## TAOS SQL 中特殊关键词
|
|
||||||
|
|
||||||
- `TBNAME`: 在超级表查询中可视为一个特殊的标签,代表查询涉及的子表名
|
|
||||||
- `_c0`: 表示表(超级表)的第一列
|
|
||||||
|
|
||||||
获取一个超级表所有的子表名及相关的标签信息:
|
|
||||||
|
|
||||||
```sql
|
|
||||||
SELECT TBNAME, location FROM meters;
|
|
||||||
```
|
|
||||||
|
|
||||||
统计超级表下辖子表数量:
|
|
||||||
|
|
||||||
```sql
|
|
||||||
SELECT COUNT(*) FROM (SELECT DISTINCT TBNAMEFROM meters);
|
|
||||||
```
|
|
||||||
|
|
||||||
## 正则表达式过滤
|
## 正则表达式过滤
|
||||||
|
|
||||||
### 语法
|
### 语法
|
||||||
|
@ -394,7 +378,7 @@ UNION ALL SELECT ...
|
||||||
|
|
||||||
TDengine 支持 UNION ALL 操作符。也就是说,如果多个 SELECT 子句返回结果集的结构完全相同(列名、列类型、列数、顺序),那么可以通过 UNION ALL 把这些结果集合并到一起。目前只支持 UNION ALL 模式,也即在结果集的合并过程中是不去重的。在同一个 sql 语句中,UNION ALL 最多支持 100 个。
|
TDengine 支持 UNION ALL 操作符。也就是说,如果多个 SELECT 子句返回结果集的结构完全相同(列名、列类型、列数、顺序),那么可以通过 UNION ALL 把这些结果集合并到一起。目前只支持 UNION ALL 模式,也即在结果集的合并过程中是不去重的。在同一个 sql 语句中,UNION ALL 最多支持 100 个。
|
||||||
|
|
||||||
### SQL 示例
|
## SQL 示例
|
||||||
|
|
||||||
对于下面的例子,表 tb1 用以下语句创建:
|
对于下面的例子,表 tb1 用以下语句创建:
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
---
|
||||||
|
sidebar_label: 权限管理
|
||||||
|
title: 权限管理
|
||||||
|
---
|
||||||
|
|
||||||
|
本节讲述如何在 TDengine 中进行权限管理的相关操作。
|
||||||
|
|
||||||
|
## 创建用户
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE USER use_name PASS password;
|
||||||
|
```
|
||||||
|
|
||||||
|
创建用户。
|
||||||
|
|
||||||
|
use_name最长为23字节。
|
||||||
|
|
||||||
|
password最长为128字节,合法字符包括"a-zA-Z0-9!?$%^&*()_–+={[}]:;@~#|<,>.?/",不可以出现单双引号、撇号、反斜杠和空格,且不可以为空。
|
||||||
|
|
||||||
|
## 删除用户
|
||||||
|
|
||||||
|
```sql
|
||||||
|
DROP USER user_name;
|
||||||
|
```
|
||||||
|
|
||||||
|
## 授权
|
||||||
|
|
||||||
|
```sql
|
||||||
|
GRANT privileges ON priv_level TO user_name
|
||||||
|
|
||||||
|
privileges : {
|
||||||
|
ALL
|
||||||
|
| priv_type [, priv_type] ...
|
||||||
|
}
|
||||||
|
|
||||||
|
priv_type : {
|
||||||
|
READ
|
||||||
|
| WRITE
|
||||||
|
}
|
||||||
|
|
||||||
|
priv_level : {
|
||||||
|
dbname.*
|
||||||
|
| *.*
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
对用户授权。
|
||||||
|
|
||||||
|
授权级别支持到DATABASE,权限有READ和WRITE两种。
|
||||||
|
|
||||||
|
TDengine 有超级用户和普通用户两类用户。超级用户缺省创建为root,拥有所有权限。使用超级用户创建出来的用户为普通用户。在未授权的情况下,普通用户可以创建DATABASE,并拥有自己创建的DATABASE的所有权限,包括删除数据库、修改数据库、查询时序数据和写入时序数据。超级用户可以给普通用户授予其他DATABASE的读写权限,使其可以在此DATABASE上读写数据,但不能对其进行删除和修改数据库的操作。
|
||||||
|
|
||||||
|
对于非DATABASE的对象,如USER、DNODE、UDF、QNODE等,普通用户只有读权限(一般为SHOW命令),不能创建和修改。
|
||||||
|
|
||||||
|
## 撤销授权
|
||||||
|
|
||||||
|
```sql
|
||||||
|
REVOKE privileges ON priv_level FROM user_name
|
||||||
|
|
||||||
|
privileges : {
|
||||||
|
ALL
|
||||||
|
| priv_type [, priv_type] ...
|
||||||
|
}
|
||||||
|
|
||||||
|
priv_type : {
|
||||||
|
READ
|
||||||
|
| WRITE
|
||||||
|
}
|
||||||
|
|
||||||
|
priv_level : {
|
||||||
|
dbname.*
|
||||||
|
| *.*
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
收回对用户的授权。
|
Loading…
Reference in New Issue