cassandra常用操作总结

前言

在上一篇,我们演示了如何基于centos7快速搭建起cassandra的运行环境,以及服务的启动和cql客户端命令行,本篇将基于此环境对cassandra的基础使用做一些总结

操作运维命令总结

1、查看键空间

DESCRIBE keyspaces;

该命令用于展示casandra下的所有的keyspaces(类比mysql的show databases;),casandra的keyspaces和mysql的数据库概念相似,属于从逻辑上区分的物理隔离空间,基于各个keyspaces,管理各自的tables
在这里插入图片描述
上图展示出了当前包含的所有和系统相关的keyspaces,如果想进入到某个keyspace下,可以使用, use [keyspace名称]

2、创建keyspace

CREATE KEYSPACE [名称] WITH replication = {‘class’ : ‘SimpleStrategy’,‘replication_factor’ : 3};

class:keyspace的策略类型,默认SimpleStrategy
replication_factor:副本数,默认为1,可以自己指定(类似kafka)

创建完毕之后,可以使用 : DESCRIBE keyspace 进行查看
在这里插入图片描述
3、修改keyspace

ALTER KEYSPACE [名称] WITH replication = {‘class’ : ‘SimpleStrategy’,‘replication_factor’ : 3};

比如我们可以将replication_factor从3修改为2

4、删除键空间

DROP KEYSPACE [名称]

5、创建表

类比mysql,当我们创建了一个数据库之后,就可以在这个数据库下创建表了,下面是cassandra的常用数据类型,可供参考

在这里插入图片描述
比如在上面的school下,创建一张表,建表sql如下:

CREATE TABLE user(
	id int PRIMARY KEY,
	name text,
	age int,
	gender tinyint,
	address text,
	interest set<text>,
	phone list<text>,
	education map<text,text>
);

创建完毕后,可以通过: DESCRIBE tables; 查看当前keyspace下的表
在这里插入图片描述
也可以通过: DESCRIBE table user; 查看具体的表详情
在这里插入图片描述
5、添加表字段和删除表字段

alter table [表名称] add [字段名称] datatype

比如为上表user添加一个email字段

alter table user add email text;

在这里插入图片描述

删除表字段

alter table name drop cloumn name

删除email字段

alter table user drop email;

在这里插入图片描述
6、删除表和清空表

DROP TABLE <表名称>

在这里插入图片描述
清空表数据

truncate <表名称>

表数据操作

1、表插入数据

insert into <表名称>(<col1 name>,<col2 name> ...) values(val1,val2...)

比如为user表添加一条数据

insert into user(id,name,age,gender,address,interest,phone,education) values(1001,'李飞',17,1,'霞飞路13号',{'跑步','羽毛球'},['13321277546','13321277547'],{'小学':'丁庙中小','初中':'黄元中学'});

在这里插入图片描述

2、带过期时间的插入数据

cassandra支持插入数据时候设定一个过期时间,只需要在插入语句后面加上TTL关键字进行标识即可,如下所例:

insert into user(id,name,age,gender,address,interest,phone,education) values(1003,'李晓华',16,0,'航空路232号',{'跑步','看书'},['0710-7677856','13121277138'],{'小学':'丁庙中小','初中':'肖云中学'}) USING TTL 30;

可以看到30秒之后,这条数据被自动删除了
在这里插入图片描述
3、修改表数据

cassandra和mysql不同的是,被更新的这一列数据如果不存在时,会添加进去

简单更新,对普通列进行更新

比如,更新user表中id 为1001的这条数据

update user set age=16 where id = 1001;

在这里插入图片描述

复杂更新,对普集合类型字段进行更新

更新set字段

update user set interest = interest  + {'看小说'} where id = 1001;

在这里插入图片描述
同样,可以从set集合中删除一个数据

update user set interest = interest  - {'跑步'} where id = 1001;

在这里插入图片描述
如果删除集合所有元素呢?只需要 set interest = {} 即可

更新list类型字段

update user set phone= ['13825522321'] where id = 1001;

在这里插入图片描述
list集合前面加一个数据

update user set phone= ['027-8867678'] + phone where id = 1001;

在这里插入图片描述
既然是集合,很容易联想到可以使用下标的方式去修改,这种操作是可以的,但是不推荐,因为数据量大的时候,可能会比较慢

update user set phone[1]= '0717-8867555' where id = 1001;

在这里插入图片描述
删除list集合中的某个值

update user set phone =phone - ['0717-8867555'] where id = 1001;

在这里插入图片描述
更新map类型字段

直接更新整个字段,进行数据覆盖

update user set education = {'小学':'江陵路1小','初中':'黄元中学'} where id = 1001;

在这里插入图片描述
按照key进行更新

update user set education['初中'] = '杭高一中' where id = 1001;

在这里插入图片描述
为map追加元素

在这里插入图片描述
删除map中的元素

delete education['小学'] from user where id = 1001;

在这里插入图片描述
按照key进行更新

update user set education = education - {'高中'} where id = 1001;

在这里插入图片描述

4、删除数据行

这个和mysql基本类似

在这里插入图片描述
5、批量操作

利用批量操作可以把多次请求合并为一次,减少客户端与服务端的多次IO,对于batch操作来说,针对同一个分区中的key操作,具有隔离性

BEGIN BATCH

<insert> / <update> / <delete>

APPLY BATCH

比如要实现下面的需求

  • 查询id=1001的数据
  • 删除所有数据
  • 插入一条数据
BEGIN BATCH
	delete from user where id=1002;
	insert into user(id,name,age,gender,address,interest,phone,education) values(1001,'李飞',17,1,'霞飞路13号',{'跑步','羽毛球'},['13321277546','13321277547'],{'小学':'丁庙中小','初中':'黄元中学'});

APPLY BATCH;

在这里插入图片描述

小结:本篇主要介绍了cassandra增删改查相关操作常用命令,希望对看到的同学有用,本篇到此结束,最后感谢观看!

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码农叔叔

谢谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值