cassandra - cql

语法

CQL

Datacenter

1
2
use system;
select data_center from local;

Role / User

创建

1
2
3
4
5
CREATE ROLE [IF NOT EXISTS] role_name 
[WITH SUPERUSER = true | false
| LOGIN = true | false
| PASSWORD = 'password'
| OPTIONS = option_map]

示例

1
2
CREATE ROLE IF NOT EXISTS 'root' WITH SUPERUSER = true AND LOGIN = false;
CREATE ROLE IF NOT EXISTS 'root' WITH SUPERUSER = true AND PASSWORD = 'root';

修改权限

1
2
3
4
5
ALTER ROLE role_name 
[WITH [PASSWORD = 'password']
[LOGIN = true | false]
[SUPERUSER = true | false]
[OPTIONS = map_literal]]

示例

1
ALTER ROLE root WITH PASSWORD = 'NewPassword';

Key Space

查询

1
2
# 列出所有 keysapces
desc keyspaces;

创建

1
2
3
4
5
6
7
CREATE  KEYSPACE [IF NOT EXISTS] keyspace_name 
WITH REPLICATION = {
'class' : 'SimpleStrategy', 'replication_factor' : N }
| 'class' : 'NetworkTopologyStrategy',
'dc1_name' : N [, ...]
}
[AND DURABLE_WRITES = true|false] ;

示例

1
2
3
4
CREATE  KEYSPACE IF NOT EXISTS "trace" WITH REPLICATION = {
'class' : 'NetworkTopologyStrategy',
'vg' : 2
}

Table

查询

1
desc <keyspace-name>;
1
2
use <keyspace-name>;
desc tables;

创建

1
2
3
4
5
6
7
CREATE TABLE [IF NOT EXISTS] [keyspace_name.]table_name ( 
column_definition [, ...]
PRIMARY KEY (column_name [, column_name ...])
[WITH table_options
| CLUSTERING ORDER BY (clustering_column_name order])
| ID = 'table_hash_tag'
| COMPACT STORAGE]

数据类型参考这里

删除

1
DROP TABLE [IF EXISTS] keyspace_name.table_name

修改

添加列

1
2
3
4
5
6
ALTER TABLE [keyspace_name.] table_name 
[ALTER column_name TYPE cql_type]
[ADD (column_definition_list)]
[DROP column_list | COMPACT STORAGE ]
[RENAME column_name TO column_name]
[WITH table_properties];

示例

1
ALTER TABLE trace.ranker ADD rid TEXT;

Query

1
2
3
// 查询一条
select * from ks.table limit 1;
select * from ks.table where id='value' limit 1;