Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
b0ad07d4
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
b0ad07d4
编写于
7月 26, 2022
作者:
G
gccgdb1234
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
doc: SQL reference guide, grant and select
上级
4176b6b6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
94 addition
and
33 deletion
+94
-33
docs/zh/12-taos-sql/06-select.md
docs/zh/12-taos-sql/06-select.md
+17
-33
docs/zh/12-taos-sql/25-grant.md
docs/zh/12-taos-sql/25-grant.md
+77
-0
未找到文件。
docs/zh/12-taos-sql/06-select.md
浏览文件 @
b0ad07d4
...
...
@@ -175,7 +175,7 @@ SELECT COUNT(*) FROM (SELECT DISTINCT TBNAME FROM meters);
这三个伪列只能用于时间窗口的窗口切分查询之中,且要在窗口切分子句之后出现。
### \_c0/\_ROWTS
**\_c0/\_ROWTS**
TDengine 中,所有表的第一列都必须是时间戳类型,且为其主键,
\_
rowts 伪列和
\_
c0 伪列均代表了此列的值。相比实际的主键时间戳列,使用伪列更加灵活,语义也更加标准。例如,可以和 max
\m
in 等函数一起使用。
...
...
@@ -183,6 +183,21 @@ TDengine 中,所有表的第一列都必须是时间戳类型,且为其主
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 子句,那么 SELECT 列表只能包含如下表达式:
...
...
@@ -198,20 +213,6 @@ GROUP 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
...
...
@@ -286,23 +287,6 @@ SELECT TODAY();
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 个。
##
#
SQL 示例
## SQL 示例
对于下面的例子,表 tb1 用以下语句创建:
...
...
docs/zh/12-taos-sql/25-grant.md
0 → 100644
浏览文件 @
b0ad07d4
---
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
.
*
|
*
.
*
}
```
收回对用户的授权。
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录