×

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删除数据

您可以使用命令DELETE从表中删除数据。其语法如下:

DELETE FROM  WHERE ;

示例

让我们假设Cassandra中有一个名为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

以下语句删除最后一行的emp_sal列:

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

验证

使用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 | null
(3 rows)

由于我们删除了Rahman的薪资,你将看到一个空值代替薪资。

删除整行

以下命令从表中删除整个行。

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

验证

使用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
 
(2 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();

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

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

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

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

第3步:执行查询

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

在下面的示例中,我们从名为emp的表中删除数据。您必须将查询存储在字符串变量中,并将其传递给execute()方法,如下所示。

String query1 = ”DELETE FROM emp WHERE emp_id=3; ”;
session.execute(query);

下面给出了使用Java API从Cassandra中的表中删除数据的完整程序。

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

public class Delete_Data {

   public static void main(String args[]){
   
      //query
      String query = "DELETE FROM emp WHERE emp_id=3;";

      //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 deleted");
   }
}

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

$javac Delete_Data.java
$java Delete_Data

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

Data deleted

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)