×

Cassandra 教程

Cassandra 简介Cassandra 架构Cassandra 数据模型Cassandra 安装Cassandra 参考APICassandra CqlshCassandra Shell命令

Cassandra 键空间操作

Cassandra 创建键空间Cassandra 修改键空间Cassandra 删除键空间

Cassandra 表操作

Cassandra 创建表Cassandra 修改表Cassandra 删除表Cassandra 截断表Cassandra 创建索引Cassandra 删除索引Cassandra 批处理

Cassandra CURD操作

Cassandra 创建数据Cassandra 更新数据Cassandra 读取数据Cassandra 删除数据

Cassandra CQL数据类型

Cassandra CQL数据类型Cassandra CQL集合Cassandra CQL用户定义的数据类型

Cassandra 相关资源

Cassandra 相关资源Cassandra 相关讨论

Cassandra 更新数据


使用Cqlsh更新数据

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

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

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

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

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

UPDATE 
SET  = 
 = ....
WHERE 

示例

假设有一个名为emp的表。此表存储某公司员工的详细信息,其具有以下详细信息:

emp_id emp_name emp_city emp_phone emp_sal
1 ram Hyderabad 9848022338 50000
2 robin Hyderabad 9848022339 40000
3 rahman Chennai 9848022330 45000

现在让我们将robin的emp_city更新到Delhi,将他的工资更新为50000.以下是执行所需更新的查询。

cqlsh:bootwiki> UPDATE emp SET emp_city='Delhi',emp_sal=50000
   WHERE emp_id=2;

验证

使用SELECT语句来验证数据是否已更新。如果使用SELECT语句验证emp表,它将产生以下输出。

cqlsh:bootwiki> select * from emp;

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad |      ram | 9848022338 | 50000
      2 |     Delhi |    robin | 9848022339 | 50000
      3 |   Chennai |   rahman | 9848022330 | 45000
      
(3 rows)

这里可以观察到表数据已更新。

使用Java API更新数据

您可以使用Session类的execute()方法更新表中的数据。按照以下步骤使用Java API更新表中的数据。

第1步:创建集群对象

创建一个名为com.datastax.driver.coreCluster.builder类的实例,如下所示。

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

使用Cluster.Builder对象的addContactPoint()方法添加联系点(节点的IP地址)。此方法返回Cluster.Builder

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint("127.0.0.1");

使用新的构建器对象,创建一个集群对象。为此,在Cluster.Builder类中有一个名为build()的方法。使用以下代码创建集群对象。

//Building a cluster
Cluster cluster = builder.build();

您可以使用单行代码构建集群对象,如下所示。

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

第2步:创建会话对象

使用Cluster类的connect()方法创建一个Session对象的实例,如下所示。

Session session = cluster.connect( );

此方法创建一个新会话并初始化它。如果您已经有一个键空间,那么您可以通过将KeySpace名称以字符串格式设置为现有键空间,此方法如下所示。

Session session = cluster.connect(“ Your keyspace name”);

这里我们使用KeySpace命名为tp。因此,创建会话对象如下所示。

Session session = cluster.connect(“tp”);

第3步:执行查询

您可以使用Session类的execute()方法执行CQL查询。将查询以字符串格式或Statement类对象传递给execute()方法。无论您以字符串格式传递给此方法将在cqlsh上执行。

在下面的示例中,我们更新emp表。您必须将查询存储在字符串变量中,并将其传递给execute()方法,如下所示:

String query = “ UPDATE emp SET emp_city='Delhi',emp_sal=50000
WHERE emp_id = 2;” ;

下面给出了使用Java API更新表中数据的完整程序。

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Update_Data {
  
   public static void main(String args[]){
      
      //query
      String query = " UPDATE emp SET emp_city='Delhi',emp_sal=50000"
          
      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
         
      //Creating Session object
      Session session = cluster.connect("tp");
         
      //Executing the query
      session.execute(query);

      System.out.println("Data updated");
   }
 }

使用类名称和.java保存上述程序,浏览到保存位置。编译并执行程序如下图所示。

$javac Update_Data.java
$java Update_Data

在正常条件下,它应该产生以下输出:

Data updated

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)