Cassandra-データの削除

テーブルからのデータの削除

コマンドを使用してテーブルからデータを削除できます DELETE。その構文は次のとおりです-

DELETE FROM <identifier> WHERE <condition>;

Cassandraにというテーブルがあるとしましょう emp 以下のデータを持っている-

emp_id emp_name emp_city emp_phone emp_sal
1 ハイデラバード 9848022338 50000
2 ロビン ハイデラバード 9848022339 40000
3 ラーマン チェンナイ 9848022330 45000

次のステートメントは、最後の行のemp_sal列を削除します-

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

検証

SELECTステートメントを使用して、データが削除されているかどうかを確認します。SELECTを使用してempテーブルを検証すると、次の出力が生成されます。

cqlsh:tutorialspoint> 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の給与を削除したため、給与の代わりにnull値が表示されます。

行全体を削除する

次のコマンドは、テーブルから行全体を削除します。

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

検証

SELECTステートメントを使用して、データが削除されているかどうかを確認します。SELECTを使用してempテーブルを検証すると、次の出力が生成されます。

cqlsh:tutorialspoint> 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)

最後の行を削除したため、テーブルには2行しか残っていません。

JavaAPIを使用したデータの削除

Sessionクラスのexecute()メソッドを使用して、テーブル内のデータを削除できます。Java APIを使用してテーブルからデータを削除するには、以下の手順に従ってください。

ステップ1:クラスターオブジェクトを作成する

のインスタンスを作成します Cluster.builder のクラス com.datastax.driver.core 以下に示すパッケージ。

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

を使用して連絡先(ノードのIPアドレス)を追加します addContactPoint() の方法 Cluster.Builderオブジェクト。このメソッドはCluster.Builder

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

新しいビルダーオブジェクトを使用して、クラスターオブジェクトを作成します。これを行うには、次のメソッドがありますbuild() の中に Cluster.Builderクラス。次のコードを使用して、クラスターオブジェクトを作成します。

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

以下に示すように、1行のコードを使用してクラスターオブジェクトを構築できます。

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 query1 = ”DELETE FROM emp WHERE emp_id=3; ”;
session.execute(query);

以下に示すのは、JavaAPIを使用して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