更新时间:2019-12-30 16:03
ALTER TABLE { ONLY table_ident | table_ident }
{ SET ( parameter = value [ , ... ] )
| RESET ( parameter [ , ... ] )
| ADD [ COLUMN ] column_name data_type [ column_constraint [ ... ] ]
| RENAME TO table_ident
}
Alter table用于修改已有表的定义。
用于改变表的参数,RESET会复位表的参数为默认值。支持的参数列表,参看:这里
用于给表添加列。
ALTER TABLE test ADD col2 bigint;
用于修改表名,操作执行过程中,shard可能暂时不可用。
ALTER TABLE test RENAME TO newname
ALTER USER username
SET ( user_parameter = value [, ...] )
ALTER USER用于修改已有用户。只有已存在的高权限账号或用户自身才具有修改权限。
数据库已有的用户名
用于修改用户相关参数,比如password以明文方式修改用户密码
ALTER USER rds SET (password='123456')
CREATE TABLE [ IF NOT EXISTS ] table_ident ( [
{
base_column_definition
| column_constraint
}
[, ... ] ]
)
[ CLUSTERED [ BY (routing_column) ] INTO num_shards SHARDS ]
其中,column_constraint指
{ PRIMARY KEY |
NOT NULL |
INDEX { OFF | USING { PLAIN }
}
CREATE TABLE用于创建空表。约束包括列约束和表的约束,列constraint是列定义的一部分;表的constraint不局限在固定的列,可以是多列。
可选项,当表存在时,不做任何事情。
可选项,clustered指定了表分布方式。num_shards:指定表分为多少个shard,如果不指定,默认按照公式 num_shards = max(4, num_data_nodes * 2)创建shard。routing_column: 指定按照那一列进行shard。如果不指定,有primary key的话,按照primary key进行shard。否则,默认会按照文档id均匀分区。
CREATE TABLE IF NOT EXISTS test (
"label" TEXT,
"adcode" TEXT,
"trl_reason_no" BIGINT
)
CLUSTERED INTO 10 SHARDS
CREATE USER username
[ WITH ( user_parameter = value [, ...]) ]
为数据库集群创建用户,创建过程允许指定密码。
指定唯一的用户名
user_parameter支持的user参数;password以明文方式定义用户密码
CREATE USER rds WITH(password='123456');
DELETE FROM table_ident [ [AS] table_alias ] [ WHERE condition ]
删除满足where条件的记录
要删除记录的表名
表的别名
可以是表达式,用于指定满足哪些条件的记录被删掉
DELETE FROM test where col='201709';
DROP TABLE [IF EXISTS] table_ident
DROP TABLE 用于从集群中删除一张表,使用IF EXISTS当表不存在时,也不会报错
table_ident需要被删除的表的名字
DROP USER [ IF EXISTS ] username;
DROP USER用于删除已存在的数据库用户
INSERT INTO table_ident
[ ( column_ident [, ...] ) ]
{ VALUES ( expression [, ...] ) [, ...] | ( query ) | query }
[ ON CONFLICT (column_ident [, ...]) DO UPDATE SET { column_ident = expression [, ...] } |
ON CONFLICT [ ( column_ident [, ...] ) ] DO NOTHING ]
INSERT INTO t (col1, col2) VALUES (1, 41)
ON CONFLICT (col1) DO UPDATE SET col2 = excluded.col2 + 1
INSERT INTO t (col1, col2) VALUES (1, 42)
ON CONFLICT DO NOTHING
SELECT [ ALL | DISTINCT ] * | expression [ [ AS ] output_name ] [, ...]
[ OVER ( window_definition ) [, ...] ]
[ FROM relation ]
[ WHERE condition ]
[ GROUP BY expression [, ...] [HAVING condition] ]
[ UNION ALL query_specification ]
[ WINDOW window_name AS ( window_definition ) [, ...] ]
[ ORDER BY expression [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] ]
[ LIMIT num_results ]
[ OFFSET start ]
与postgres语法兼容,用于从表中查询获取数据。
定义window窗口,例如:
SELECT col1, ROW_NUMBER() OVER(ORDER BY col1) FROM unnest(['x','y','z']);
FROM relation 用于指定SELECT的源。
relation可以是如下对象:表名、表别名、视图,join语句、子查询等。
其中join关系:
relation { , | join_type JOIN } relation [ ON join_condition ]
join_type包括:LEFT [OUTER], RIGHT [OUTER], FULL [OUTER], CROSS or INNER
指定满足的条件GROUP BY分组,GROUP BY expression [, …],expression是聚合函数
组合两个SELECT查询的结果。
对结果进行排序,可以升序、降序等方式ORDER BY expression [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, …]
指定限制返回的数据条数LIMIT num_results
指定偏移,从start初开始OFFSET start
SELECT 查询示例:
SELECT dn.start_id, dn.end_id
, COUNT(concat(dn.start_id, dn.end_id)) AS count
FROM t1 dn
INNER JOIN t2 td ON td.vhc_id = dn.vhc_id
GROUP BY dn.start_id, dn.end_id
SHOW SCHEMAS [LIKE 'pattern' | WHERE expression]
用于获取集群上shcema列表
用于模式匹配
指定满足条件的返回
SHOW TABLES [{FROM | IN} table_schema] [LIKE 'pattern' | WHERE expression]
SHOW TABLES用于从集群中获取表名列表。table_schema指定从哪个schema中获取。
用于模式匹配
指定满足条件的返回
SHOW CREATE TABLE table_ident
SHOW CREATE TABLE 用于dump已创建的表的schema信息。
UPDATE table_ident [ [AS] table_alias ] SET
{ column_ident = expression } [, ...]
[ WHERE condition ]
UPDATE用于更新满足指定条件的表的数据。SET用于设置列更新的值。
GRANT { { DQL | DML | DDL | AL [,...] } | ALL [ PRIVILEGES ] }
[ON {SCHEMA | TABLE} identifier [, ...]]
TO user_name [, ...];
GRANT用于赋予指定用户对应的权限。权限包括四类:DQL 、 DML 、 DDL 、 AL。权限说明:
REVOKE { { DQL | DML | DDL | AL [,...] } | ALL [ PRIVILEGES ] }
[ON {SCHEMA | TABLE} identifier [, ...]]
FROM user_name [, ...];
REVOKE用于移除某个用户的权限
EXPLAIN [ ANALYZE ] statement
EXPLAIN用于显示statement语句的执行计划;EXPLAIN ANALYZE用于分析不同执行阶段的耗时情况。
在文档使用中是否遇到以下问题
更多建议
匿名提交