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