1 | describe keyspaces;(或desc keyspaces;) |
2、创建一个keyspace:
1 | CREATE KEYSPACE IF NOT EXISTS myCas WITH REPLICATION = {'class': 'SimpleStrategy','replication_factor':1}; |
class : 副本配置策略(总共有三种):
Simple Strategy(RackUnaware Strategy):副本不考虑机架的因素,按照Token放置在连续下几个节点。如下图所示,假如副本数为3,属于A节点的数据在B.C两个节点中也放置副本
OldNetwork Topology Strategy(RackAware Strategy):考虑机架的因素,除了基本的数据外,先找一个处于不同数据中心的点放置一个副本,其余N-2个副本放置在同一数据中心的不同机架中
Network Topology Strategy(DatacneterShard Strategy):将M个副本放置到其他的数据中心,将N-M-1的副本放置在同一数据中心的不同机架中
3、使用某个keyspace:
1 | use myCas; |
4、查询全部的table:
1 | desc tables; |
5、创建一张表:
1 | CREATE TABLE user (id int, user_name varchar, PRIMARY KEY (id) ); |
创建表的时候至少指定一个主键
6、向表中插入一条记录:
1 | INSERT INTO user (id,user_name) VALUES (1,'zhangsan'); |
列名必须要显示指定,如果表中已存在相同主键的记录,那么该操作会覆盖表中已存在的记录
7、查询表中全部数据:
1 | select * from user; |
cassandra查询有很多限制,比如只能单表查询,不支持联表查询和子查询,查询条件只支持key查询和索引列查询,而且key有顺序的限制,等等;更多详情请自行阅读官方文档
8、简单的条件查询:
1 | select * from user where id=1; |
9、创建索引:
1 | create index on user(user_name); |
10、索引列查询:
1 | select * from user where user_name='zhangsan'; |
若没有在name上创建索引,那么此查询会报错;
11、更新表中数据:update user set user_name=’lisi’ where id=2;
只支持按主键更新,也就是where后只能跟主键
12、删除表中记录:delete from user where id=1;
删除某条记录中的某个字段,该字段会被设成null:delete user_name from user where id=1;
无论是删除某条记录,还是将某个字段置null,都只支持按主键删除,也就是where后只能跟主键
13、批量操作:
1 | Multiple INSERT, UPDATE and DELETE can be executed in a single statement by grouping them through a BATCH statement(通过batch能够执行多个insert、update以及delete) |
例如:
1 | BEGIN BATCH |