当前位置:   article > 正文

cassandra常用操作总结_cassandra 查看数据库有哪些表

cassandra 查看数据库有哪些表

前言

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

操作运维命令总结

1、查看键空间

DESCRIBE keyspaces;
  • 1

该命令用于展示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>
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

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

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

alter table user add email text;
  • 1

在这里插入图片描述

删除表字段

alter table name drop cloumn name
  • 1

删除email字段

alter table user drop email;
  • 1

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

DROP TABLE <表名称>
  • 1

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

truncate <表名称>
  • 1

表数据操作

1、表插入数据

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

比如为user表添加一条数据

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

在这里插入图片描述

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;
  • 1

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

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

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

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

update user set age=16 where id = 1001;
  • 1

在这里插入图片描述

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

更新set字段

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

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

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

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

更新list类型字段

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

在这里插入图片描述

4、删除数据行

这个和mysql基本类似

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

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

BEGIN BATCH

<insert> / <update> / <delete>

APPLY BATCH
  • 1
  • 2
  • 3
  • 4
  • 5

比如要实现下面的需求

  • 查询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;
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/126498
推荐阅读
相关标签
  

闽ICP备14008679号