Cassandra - ปรับเปลี่ยนตาราง

การแก้ไขตาราง

คุณสามารถแก้ไขตารางโดยใช้คำสั่ง ALTER TABLE. ด้านล่างคือไวยากรณ์สำหรับการสร้างตาราง

ไวยากรณ์

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

ใช้คำสั่ง ALTER คุณสามารถดำเนินการดังต่อไปนี้ -

  • เพิ่มคอลัมน์

  • วางคอลัมน์

การเพิ่มคอลัมน์

ใช้คำสั่ง ALTER คุณสามารถเพิ่มคอลัมน์ลงในตารางได้ ในขณะที่เพิ่มคอลัมน์คุณต้องดูแลให้ชื่อคอลัมน์ไม่ขัดแย้งกับชื่อคอลัมน์ที่มีอยู่และตารางไม่ได้กำหนดด้วยตัวเลือกหน่วยเก็บข้อมูลขนาดกะทัดรัด ด้านล่างนี้คือไวยากรณ์เพื่อเพิ่มคอลัมน์ลงในตาราง

ALTER TABLE table name
ADD  new column datatype;

Example

ด้านล่างเป็นตัวอย่างในการเพิ่มคอลัมน์ลงในตารางที่มีอยู่ ที่นี่เรากำลังเพิ่มคอลัมน์ชื่อemp_email ประเภทข้อมูลข้อความไปยังตารางที่ชื่อ emp.

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

Verification

ใช้คำสั่ง SELECT เพื่อตรวจสอบว่ามีการเพิ่มคอลัมน์หรือไม่ ที่นี่คุณสามารถสังเกตคอลัมน์ emp_email ที่เพิ่มใหม่

cqlsh:tutorialspoint> select * from emp;

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

การทิ้งคอลัมน์

ใช้คำสั่ง ALTER คุณสามารถลบคอลัมน์จากตารางได้ ก่อนวางคอลัมน์จากตารางให้ตรวจสอบว่าไม่ได้กำหนดตารางด้วยตัวเลือกพื้นที่เก็บข้อมูลขนาดกะทัดรัด ให้ด้านล่างเป็นไวยากรณ์สำหรับการลบคอลัมน์จากตารางโดยใช้คำสั่ง ALTER

ALTER table name
DROP column name;

Example

ให้ด้านล่างนี้เป็นตัวอย่างในการวางคอลัมน์จากตาราง ที่นี่เรากำลังลบคอลัมน์ชื่อemp_email.

cqlsh:tutorialspoint> ALTER TABLE emp DROP emp_email;

Verification

ตรวจสอบว่าคอลัมน์ถูกลบโดยใช้ select คำสั่งดังที่แสดงด้านล่าง

cqlsh:tutorialspoint> select * from emp;

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

ตั้งแต่ emp_email คอลัมน์ถูกลบคุณไม่พบอีกต่อไป

การแก้ไขตารางโดยใช้ Java API

คุณสามารถสร้างตารางโดยใช้เมธอด execute () ของคลาส Session ทำตามขั้นตอนที่ระบุด้านล่างเพื่อแก้ไขตารางโดยใช้ Java API

ขั้นตอนที่ 1: สร้างวัตถุคลัสเตอร์

ก่อนอื่นสร้างอินสแตนซ์ของ Cluster.builder ชั้นเรียนของ com.datastax.driver.core แพ็คเกจตามที่แสดงด้านล่าง

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

เพิ่มจุดติดต่อ (ที่อยู่ IP ของโหนด) โดยใช้ addContactPoint() วิธีการของ Cluster.Builderวัตถุ. วิธีนี้ส่งกลับCluster.Builder.

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

ใช้อ็อบเจ็กต์ตัวสร้างใหม่สร้างอ็อบเจ็กต์คลัสเตอร์ ในการทำเช่นนั้นคุณมีวิธีการที่เรียกว่าbuild() ใน Cluster.Builderชั้นเรียน รหัสต่อไปนี้แสดงวิธีสร้างวัตถุคลัสเตอร์

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

คุณสามารถสร้างออบเจ็กต์คลัสเตอร์โดยใช้โค้ดบรรทัดเดียวดังที่แสดงด้านล่าง

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

ขั้นตอนที่ 2: สร้างวัตถุเซสชัน

สร้างอินสแตนซ์ของวัตถุเซสชันโดยใช้เมธอด connect () ของคลาสคลัสเตอร์ดังที่แสดงด้านล่าง

Session session = cluster.connect( );

วิธีนี้จะสร้างเซสชันใหม่และเริ่มต้น หากคุณมีคีย์สเปซอยู่แล้วคุณสามารถตั้งค่าเป็นคีย์สเปซที่มีอยู่ได้โดยส่งชื่อคีย์สเปซในรูปแบบสตริงไปยังเมธอดนี้ดังที่แสดงด้านล่าง

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

ที่นี่เราใช้ KeySpace ชื่อ tp ดังนั้นให้สร้างวัตถุเซสชันดังที่แสดงด้านล่าง

ขั้นตอนที่ 3: ดำเนินการสืบค้น

คุณสามารถดำเนินการสืบค้น CQL โดยใช้เมธอด execute () ของคลาส Session ส่งแบบสอบถามในรูปแบบสตริงหรือเป็นวัตถุคลาส Statement ไปยังเมธอด execute () สิ่งที่คุณส่งไปยังเมธอดนี้ในรูปแบบสตริงจะถูกดำเนินการบนไฟล์cqlsh.

ในตัวอย่างต่อไปนี้เรากำลังเพิ่มคอลัมน์ในตารางที่มีชื่อว่า emp. ในการทำเช่นนั้นคุณต้องเก็บแบบสอบถามไว้ในตัวแปรสตริงและส่งต่อไปยังเมธอด execute () ดังที่แสดงด้านล่าง

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

ด้านล่างนี้เป็นโปรแกรมที่สมบูรณ์ในการเพิ่มคอลัมน์ลงในตารางที่มีอยู่

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

บันทึกโปรแกรมข้างต้นด้วยชื่อคลาสตามด้วย. java เรียกดูตำแหน่งที่บันทึกไว้ คอมไพล์และรันโปรแกรมดังที่แสดงด้านล่าง

$javac Add_Column.java $java Add_Column

ภายใต้สภาวะปกติควรให้ผลลัพธ์ดังต่อไปนี้ -

Column added

การลบคอลัมน์

ด้านล่างนี้เป็นโปรแกรมที่สมบูรณ์ในการลบคอลัมน์จากตารางที่มีอยู่

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

บันทึกโปรแกรมข้างต้นด้วยชื่อคลาสตามด้วย. java เรียกดูตำแหน่งที่บันทึกไว้ คอมไพล์และรันโปรแกรมดังที่แสดงด้านล่าง

$javac Delete_Column.java $java Delete_Column

ภายใต้สภาวะปกติควรให้ผลลัพธ์ดังต่อไปนี้ -

Column deleted