Cassandra - Daten löschen

Daten aus einer Tabelle löschen

Mit dem Befehl können Sie Daten aus einer Tabelle löschen DELETE. Die Syntax lautet wie folgt:

DELETE FROM <identifier> WHERE <condition>;

Beispiel

Nehmen wir an, in Cassandra gibt es einen Tisch namens emp mit folgenden Daten -

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

Die folgende Anweisung löscht die Spalte emp_sal der letzten Zeile -

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

Überprüfung

Verwenden Sie die SELECT-Anweisung, um zu überprüfen, ob die Daten gelöscht wurden oder nicht. Wenn Sie die emp-Tabelle mit SELECT überprüfen, wird die folgende Ausgabe erzeugt:

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)

Da wir das Gehalt von Rahman gelöscht haben, werden Sie anstelle des Gehalts einen Nullwert beobachten.

Löschen einer gesamten Zeile

Der folgende Befehl löscht eine ganze Zeile aus einer Tabelle.

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

Überprüfung

Verwenden Sie die SELECT-Anweisung, um zu überprüfen, ob die Daten gelöscht wurden oder nicht. Wenn Sie die emp-Tabelle mit SELECT überprüfen, wird die folgende Ausgabe erzeugt:

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)

Da wir die letzte Zeile gelöscht haben, sind nur noch zwei Zeilen in der Tabelle vorhanden.

Daten mit der Java-API löschen

Sie können Daten in einer Tabelle mit der Methode execute () der Sitzungsklasse löschen. Führen Sie die folgenden Schritte aus, um Daten mithilfe der Java-API aus einer Tabelle zu löschen.

Schritt 1: Erstellen Sie ein Clusterobjekt

Erstellen Sie eine Instanz von Cluster.builder Klasse von com.datastax.driver.core Paket wie unten gezeigt.

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

Fügen Sie einen Kontaktpunkt (IP-Adresse des Knotens) hinzu addContactPoint() Methode von Cluster.BuilderObjekt. Diese Methode gibt zurückCluster.Builder.

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

Erstellen Sie mit dem neuen Builder-Objekt ein Cluster-Objekt. Dazu haben Sie eine Methode namensbuild() in dem Cluster.BuilderKlasse. Verwenden Sie den folgenden Code, um ein Clusterobjekt zu erstellen.

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

Sie können das Clusterobjekt mit einer einzelnen Codezeile erstellen, wie unten gezeigt.

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

Schritt 2: Erstellen Sie ein Sitzungsobjekt

Erstellen Sie eine Instanz des Sitzungsobjekts mit der Methode connect () der Cluster-Klasse (siehe unten).

Session session = cluster.connect();

Diese Methode erstellt eine neue Sitzung und initialisiert sie. Wenn Sie bereits über einen Schlüsselbereich verfügen, können Sie ihn auf den vorhandenen festlegen, indem Sie den KeySpace-Namen im Zeichenfolgenformat wie unten gezeigt an diese Methode übergeben.

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

Hier verwenden wir den aufgerufenen KeySpace tp. Erstellen Sie daher das Sitzungsobjekt wie unten gezeigt.

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

Schritt 3: Abfrage ausführen

Sie können CQL-Abfragen mit der Methode execute () der Session-Klasse ausführen. Übergeben Sie die Abfrage entweder im Zeichenfolgenformat oder als Anweisungsklassenobjekt an die Methode execute (). Was auch immer Sie im String-Format an diese Methode übergeben, wird auf dem ausgeführtcqlsh.

Im folgenden Beispiel löschen wir Daten aus einer Tabelle mit dem Namen emp. Sie müssen die Abfrage in einer Zeichenfolgenvariablen speichern und an die übergeben execute() Methode wie unten gezeigt.

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

Im Folgenden finden Sie das vollständige Programm zum Löschen von Daten aus einer Tabelle in Cassandra mithilfe der Java-API.

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

Speichern Sie das obige Programm mit dem Klassennamen gefolgt von .java und navigieren Sie zu dem Speicherort, an dem es gespeichert ist. Kompilieren Sie das Programm und führen Sie es wie unten gezeigt aus.

$javac Delete_Data.java
$java Delete_Data

Unter normalen Bedingungen sollte die folgende Ausgabe erzeugt werden:

Data deleted