Cassandra - Hapus Data

Menghapus Data dari Tabel

Anda dapat menghapus data dari tabel menggunakan perintah DELETE. Sintaksnya adalah sebagai berikut -

DELETE FROM <identifier> WHERE <condition>;

Contoh

Mari kita asumsikan ada meja di Cassandra bernama emp memiliki data berikut -

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

Pernyataan berikut menghapus kolom emp_sal dari baris terakhir -

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

Verifikasi

Gunakan pernyataan SELECT untuk memverifikasi apakah data telah dihapus atau tidak. Jika Anda memverifikasi tabel emp menggunakan SELECT, itu akan menghasilkan output berikut -

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)

Karena kami telah menghapus gaji Rahman, Anda akan melihat nilai nol sebagai pengganti gaji.

Menghapus Seluruh Baris

Perintah berikut menghapus seluruh baris dari tabel.

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

Verifikasi

Gunakan pernyataan SELECT untuk memverifikasi apakah data telah dihapus atau tidak. Jika Anda memverifikasi tabel emp menggunakan SELECT, itu akan menghasilkan output berikut -

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)

Karena kami telah menghapus baris terakhir, hanya ada dua baris tersisa di tabel.

Menghapus Data menggunakan Java API

Anda dapat menghapus data dalam tabel menggunakan metode execute () dari kelas Sesi. Ikuti langkah-langkah yang diberikan di bawah ini untuk menghapus data dari tabel menggunakan java API.

Langkah 1: Buat Objek Cluster

Buat sebuah instance dari Cluster.builder kelas dari com.datastax.driver.core paket seperti yang ditunjukkan di bawah ini.

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

Tambahkan titik kontak (alamat IP node) menggunakan addContactPoint() metode dari Cluster.Builderobyek. Metode ini kembaliCluster.Builder.

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

Menggunakan objek builder baru, buat objek cluster. Untuk melakukannya, Anda memiliki metode yang disebutbuild() dalam Cluster.Builderkelas. Gunakan kode berikut untuk membuat objek cluster.

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

Anda dapat membangun objek cluster menggunakan satu baris kode seperti yang ditunjukkan di bawah ini.

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

Langkah 2: Buat Objek Sesi

Buat instance objek Sesi menggunakan metode connect () dari kelas Cluster seperti yang ditunjukkan di bawah ini.

Session session = cluster.connect();

Metode ini membuat sesi baru dan menginisialisasinya. Jika Anda sudah memiliki ruang kunci, Anda dapat menyetelnya ke yang sudah ada dengan meneruskan nama KeySpace dalam format string ke metode ini seperti yang ditunjukkan di bawah ini.

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

Di sini kita menggunakan KeySpace yang disebut tp. Oleh karena itu, buat objek sesi seperti yang ditunjukkan di bawah ini.

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

Langkah 3: Jalankan Kueri

Anda dapat menjalankan kueri CQL menggunakan metode execute () dari kelas Sesi. Teruskan kueri baik dalam format string atau sebagai objek kelas Pernyataan ke metode execute (). Apa pun yang Anda berikan ke metode ini dalam format string akan dieksekusi dicqlsh.

Dalam contoh berikut, kami menghapus data dari tabel bernama emp. Anda harus menyimpan kueri dalam variabel string dan meneruskannya ke execute() metode seperti yang ditunjukkan di bawah ini.

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

Diberikan di bawah ini adalah program lengkap untuk menghapus data dari tabel di Cassandra menggunakan 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");
   }
}

Simpan program di atas dengan nama kelas diikuti dengan .java, telusuri ke lokasi penyimpanannya. Kompilasi dan jalankan program seperti yang ditunjukkan di bawah ini.

$javac Delete_Data.java
$java Delete_Data

Dalam kondisi normal, itu harus menghasilkan keluaran berikut -

Data deleted