Cassandra - Tabloyu Değiştir

Tablo Değiştirme

Komutu kullanarak bir tabloyu değiştirebilirsiniz. ALTER TABLE. Aşağıda bir tablo oluşturmak için sözdizimi verilmiştir.

Sözdizimi

ALTER (TABLE | COLUMNFAMILY) <tablename> <instruction>

ALTER komutunu kullanarak aşağıdaki işlemleri gerçekleştirebilirsiniz -

  • Bir sütun ekleyin

  • Bir sütun bırakın

Sütun Ekleme

ALTER komutunu kullanarak bir tabloya sütun ekleyebilirsiniz. Sütun eklerken, sütun adının mevcut sütun adlarıyla çakışmamasına ve tablonun kompakt depolama seçeneğiyle tanımlanmamasına dikkat etmelisiniz. Aşağıda, bir tabloya sütun eklemek için kullanılan sözdizimi verilmiştir.

ALTER TABLE table name
ADD  new column datatype;

Example

Aşağıda, mevcut bir tabloya sütun eklemek için bir örnek verilmiştir. Burada adlı bir sütun ekliyoruzemp_email metin veri türü adındaki tabloya emp.

cqlsh:tutorialspoint> ALTER TABLE emp
   ... ADD emp_email text;

Verification

Sütunun eklenip eklenmediğini doğrulamak için SELECT deyimini kullanın. Burada yeni eklenen emp_email sütununu gözlemleyebilirsiniz.

cqlsh:tutorialspoint> select * from emp;

 emp_id | emp_city | emp_email | emp_name | emp_phone | emp_sal
--------+----------+-----------+----------+-----------+---------

Bir Sütunu Düşürmek

ALTER komutunu kullanarak tablodan bir sütun silebilirsiniz. Tablodan bir sütun bırakmadan önce, tablonun kompakt depolama seçeneğiyle tanımlanmadığını kontrol edin. Aşağıda, ALTER komutunu kullanarak bir tablodan bir sütunu silmek için sözdizimi verilmiştir.

ALTER table name
DROP column name;

Example

Aşağıda, bir tablodan bir sütun düşürmek için bir örnek verilmiştir. Burada adlı sütunu siliyoruzemp_email.

cqlsh:tutorialspoint> ALTER TABLE emp DROP emp_email;

Verification

Kullanarak sütunun silinip silinmediğini doğrulayın. select ifade, aşağıda gösterildiği gibi.

cqlsh:tutorialspoint> select * from emp;

 emp_id | emp_city | emp_name | emp_phone | emp_sal
--------+----------+----------+-----------+---------
(0 rows)

Dan beri emp_email sütun silindi, artık bulamazsınız.

Java API kullanarak bir Tabloyu Değiştirme

Session sınıfının execute () yöntemini kullanarak bir tablo oluşturabilirsiniz. Java API kullanarak bir tabloyu değiştirmek için aşağıdaki adımları izleyin.

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

Her şeyden önce, 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. Aşağıdaki kod, bir küme nesnesinin nasıl oluşturulacağını gösterir.

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

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak bir küme nesnesi 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 olana ayarlayabilirsiniz.

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

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

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 tabloya bir sütun ekliyoruz. emp. Bunu yapmak için, sorguyu bir dize değişkeninde saklamanız ve aşağıda gösterildiği gibi execute () yöntemine iletmeniz gerekir.

//Query
String query1 = "ALTER TABLE emp ADD emp_email text";
session.execute(query);

Aşağıda, mevcut bir tabloya sütun eklemek için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Add_column {

   public static void main(String args[]){

      //Query
      String query = "ALTER TABLE emp ADD emp_email text";

      //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("Column added");
   }
}

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 Add_Column.java $java Add_Column

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

Column added

Bir Sütunu Silme

Aşağıda, mevcut bir tablodan bir sütunu silmek için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Delete_Column {

   public static void main(String args[]){

      //Query
      String query = "ALTER TABLE emp DROP emp_email;";

      //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("Column 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_Column.java $java Delete_Column

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

Column deleted