Cassandra - Usuń dane

Usuwanie danych z tabeli

Możesz usunąć dane z tabeli za pomocą polecenia DELETE. Jego składnia jest następująca -

DELETE FROM <identifier> WHERE <condition>;

Przykład

Załóżmy, że w Cassandrze jest stół o nazwie emp posiadające następujące dane -

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

Poniższa instrukcja usuwa kolumnę emp_sal ostatniego wiersza -

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

Weryfikacja

Użyj instrukcji SELECT, aby sprawdzić, czy dane zostały usunięte, czy nie. Jeśli zweryfikujesz tabelę emp za pomocą polecenia SELECT, wygeneruje ona następujący wynik -

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)

Ponieważ usunęliśmy wynagrodzenie Rahmana, zamiast pensji pojawi się zerowa wartość.

Usuwanie całego wiersza

Następujące polecenie usuwa cały wiersz z tabeli.

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

Weryfikacja

Użyj instrukcji SELECT, aby sprawdzić, czy dane zostały usunięte, czy nie. Jeśli zweryfikujesz tabelę emp za pomocą polecenia SELECT, wygeneruje ona następujący wynik -

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)

Ponieważ usunęliśmy ostatni wiersz, w tabeli pozostały tylko dwa wiersze.

Usuwanie danych za pomocą Java API

Możesz usunąć dane w tabeli za pomocą metody execute () klasy Session. Wykonaj czynności podane poniżej, aby usunąć dane z tabeli za pomocą interfejsu API języka Java.

Krok 1: Utwórz obiekt klastra

Utwórz wystąpienie Cluster.builder klasa com.datastax.driver.core pakiet, jak pokazano poniżej.

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

Dodaj punkt kontaktowy (adres IP węzła) za pomocą rozszerzenia addContactPoint() metoda Cluster.Builderobiekt. Ta metoda zwracaCluster.Builder.

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

Korzystając z nowego obiektu konstruktora, utwórz obiekt klastra. Aby to zrobić, masz metodę o nazwiebuild() w Cluster.Builderklasa. Użyj poniższego kodu, aby utworzyć obiekt klastra.

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

Możesz zbudować obiekt klastra przy użyciu jednej linii kodu, jak pokazano poniżej.

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

Krok 2: Utwórz obiekt sesji

Utwórz wystąpienie obiektu Session za pomocą metody connect () klasy Cluster, jak pokazano poniżej.

Session session = cluster.connect();

Ta metoda tworzy nową sesję i inicjuje ją. Jeśli masz już przestrzeń kluczy, możesz ustawić ją na istniejącą, przekazując nazwę KeySpace w formacie ciągu do tej metody, jak pokazano poniżej.

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

Tutaj używamy KeySpace o nazwie tp. Dlatego utwórz obiekt sesji, jak pokazano poniżej.

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

Krok 3: Wykonaj zapytanie

Zapytania CQL można wykonywać za pomocą metody execute () klasy Session. Przekaż zapytanie w formacie ciągu znaków lub jako obiekt klasy Statement do metody execute (). Cokolwiek przekażesz do tej metody w formacie ciągu, zostanie wykonane nacqlsh.

W poniższym przykładzie usuwamy dane z tabeli o nazwie emp. Musisz zapisać zapytanie w zmiennej łańcuchowej i przekazać je do execute() metoda, jak pokazano poniżej.

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

Poniżej podano kompletny program do usuwania danych z tabeli w Cassandrze przy użyciu 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");
   }
}

Zapisz powyższy program z nazwą klasy, a następnie .java, przejdź do lokalizacji, w której jest zapisany. Skompiluj i uruchom program, jak pokazano poniżej.

$javac Delete_Data.java
$java Delete_Data

W normalnych warunkach powinien dać następujący wynik -

Data deleted