CASSANDRA学习笔记 (八) 批处理和CRUD

对于常规数据操作语句,我们用例子大致过一下:

1. BATCH 批处理,就是一次性执行多条语句。

BEGIN BATCH
<insert-stmt>/ <update-stmt>/ <delete-stmt>
APPLY BATCH

2. 创建数据

INSERT INTO <tablename>
(<column1 name>, <column2 name>....)
VALUES (<value1>, <value2>....)
USING <option>

例子:

 INSERT INTO emp (emp_id, emp_name, emp_city,
   emp_phone, emp_sal) VALUES(1,'ram', 'Hyderabad', 9848022338, 50000);

3. 更改数据

UPDATE是用于更新表中的数据的命令。在更新表中的数据时使用以下关键字:

  • Where - 此子句用于选择要更新的行。

  • Set - 使用此关键字设置值。

  • Must - 包括组成主键的所有列。(??

在更新行时,如果给定行不可用,则UPDATE创建一个新行。下面给出了UPDATE命令的语法:

UPDATE <tablename>
SET <column name> = <new value>
<column name> = <value>....
WHERE <condition>

4. 查询数据

SELECT * FROM emp WHERE emp_sal=50000;

注意,where语句中可以使用的列需要是有index 或有相应primary key 或 clustering key 的列。

    primary key 只能用=号和in查询

    clustering key 支持= > < >= <= 和in

    索引列 只支持=号和in

5. 删除数据

DELETE FROM <identifier> WHERE <condition>;

注意:它可以删除一行中的一列,也可以删除一整行。

比如:

cqlsh:tutorialspoint> DELETE emp_sal FROM emp WHERE emp_id=3;

就是删除emp_id=3这行的emp_sal这列的值,删完之后这条记录里的这个字段变为null。

当然也可以常规地删除一整行:

cqlsh:tutorialspoint> DELETE FROM emp WHERE emp_id=3;

 

补充:

当需要涉及到集合操作时:

1. List

将数据插入列表

在将数据插入列表中的元素时,在如下所示的方括号[]中输入以逗号分隔的所有值。

cqlsh:tutorialspoint> INSERT INTO data(name, email) VALUES ('ramu',
['abc@gmail.com','cba@yahoo.com'])

更新列表

下面给出了一个在名为data的表中更新列表数据类型的示例。在这里,我们正在向列表中添加另一封电子邮件。

cqlsh:tutorialspoint> UPDATE data
... SET email = email +['xyz@tutorialspoint.com']
... where name = 'ramu';

2. Set

Set是用于存储一组元素的数据类型。集合的元素将按排序顺序返回。

使用Set创建表

以下示例创建一个包含两个列(名称和电话)的样本表。对于存储多个电话号码,我们使用集合。

cqlsh:tutorialspoint> CREATE TABLE data2 (name text PRIMARY KEY, phone set<varint>);

将数据插入集合

在将数据插入集合中的元素时,请在花括号{}中输入逗号分隔的所有值,如下所示。

cqlsh:tutorialspoint> INSERT INTO data2(name, phone)VALUES ('rahman',    {9848022338,9848022339});

更新集合

以下代码显示如何更新名为data2的表中的集合。在这里,我们正在添加另一个电话号码。

cqlsh:tutorialspoint> UPDATE data2
   ... SET phone = phone + {9848022330}
   ... where name = 'rahman';

验证

如果使用SELECT语句验证表,您将得到以下结果:

cqlsh:tutorialspoint> SELECT * FROM data2;

   name | phone
--------+--------------------------------------
 rahman | {9848022330, 9848022338, 9848022339}

(1 rows)

3. Map

地图是用于存储元素的键值对的数据类型。

使用Map创建表

以下示例显示如何创建具有两个列(名称和地址)的样本表。为了存储多个地址值,我们使用map。

cqlsh:tutorialspoint> CREATE TABLE data3 (name text PRIMARY KEY, address map<timestamp, text>);

将数据插入到地图中

在将数据插入到地图中的元素时,输入所有的键:值对,用逗号在逗号之间以逗号分隔,如下所示。

cqlsh:tutorialspoint> INSERT INTO data3 (name, address)
   VALUES ('robin', {'home' : 'hyderabad' , 'office' : 'Delhi' } );

更新集合

以下代码显示如何在名为data3的表中更新地图数据类型。在这里,我们改变了关键办公室的价值,也就是说,我们改变一个名为robin的人的办公地址。

cqlsh:tutorialspoint> UPDATE data3
   ... SET address = address+{'office':'mumbai'}
   ... WHERE name = 'robin';

验证

如果使用SELECT语句验证表,您将得到以下结果:

cqlsh:tutorialspoint> select * from data3;

  name | address
-------+-------------------------------------------
 robin | {'home': 'hyderabad', 'office': 'mumbai'}

(1 rows)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值