Cassandra - Verileri Sil

Bir Tablodan Verileri Silme

Komutu kullanarak bir tablodaki verileri silebilirsiniz. DELETE. Sözdizimi aşağıdaki gibidir -

DELETE FROM <identifier> WHERE <condition>;

Misal

Cassandra'da adlı bir tablo olduğunu varsayalım. emp aşağıdaki verilere sahip olmak -

emp_id emp_name emp_city emp_phone emp_sal
1 Veri deposu Haydarabad 9848022338 50000
2 Robin Haydarabad 9848022339 40000
3 rahman Chennai 9848022330 45.000

Aşağıdaki ifade, son satırın emp_sal sütununu siler -

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

Doğrulama

Verilerin silinip silinmediğini doğrulamak için SELECT deyimini kullanın. Emp tabloyu SELECT kullanarak doğrularsanız, aşağıdaki çıktıyı üretir -

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'ın maaşını sildiğimiz için maaş yerine boş bir değer göreceksiniz.

Tüm Satırı Silme

Aşağıdaki komut, bir tablodan tüm satırı siler.

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

Doğrulama

Verilerin silinip silinmediğini doğrulamak için SELECT deyimini kullanın. Emp tabloyu SELECT kullanarak doğrularsanız, aşağıdaki çıktıyı üretir -

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)

Son satırı sildiğimiz için tabloda sadece iki satır kaldı.

Java API kullanarak Verileri Silme

Session sınıfının execute () yöntemini kullanarak bir tablodaki verileri silebilirsiniz. Java API kullanarak bir tablodan veri silmek için aşağıda verilen adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

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

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

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

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Bir küme nesnesi oluşturmak için aşağıdaki kodu kullanın.

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

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak küme nesnesini oluşturabilirsiniz.

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

Adım 2: Bir Oturum Nesnesi Oluşturun

Aşağıda gösterildiği gibi Cluster sınıfının connect () yöntemini kullanarak bir Session nesnesi örneği oluşturun.

Session session = cluster.connect();

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde KeySpace adını ileterek var olanı ayarlayabilirsiniz.

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

Burada adı verilen KeySpace'i kullanıyoruz tp. Bu nedenle, oturum nesnesini aşağıda gösterildiği gibi oluşturun.

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

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya bir Statement sınıfı nesnesi olarak execute () yöntemine iletin. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Aşağıdaki örnekte, adlı bir tablodan verileri siliyoruz. emp. Sorguyu bir dize değişkeninde saklamanız ve bunu execute() yöntemi aşağıda gösterildiği gibi.

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

Aşağıda, Java API kullanarak Cassandra'daki bir tablodan verileri silmek için eksiksiz bir program verilmiştir.

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

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Delete_Data.java
$java Delete_Data

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

Data deleted