Cassandra - สร้างตาราง

การสร้างตาราง

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

ไวยากรณ์

CREATE (TABLE | COLUMNFAMILY) <tablename>
('<column-definition>' , '<column-definition>')
(WITH <option> AND <option>)

การกำหนดคอลัมน์

คุณสามารถกำหนดคอลัมน์ดังที่แสดงด้านล่าง

column name1 data type,
column name2 data type,

example:

age int,
name text

คีย์หลัก

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

CREATE TABLE tablename(
   column1 name datatype PRIMARYKEY,
   column2 name data type,
   column3 name data type.
   )

or

CREATE TABLE tablename(
   column1 name datatype PRIMARYKEY,
   column2 name data type,
   column3 name data type,
   PRIMARY KEY (column1)
   )

ตัวอย่าง

ด้านล่างเป็นตัวอย่างในการสร้างตารางใน Cassandra โดยใช้ cqlsh เราอยู่ที่นี่ -

  • การใช้คีย์สเปซ tutorialspoint

  • การสร้างตารางชื่อ emp

จะมีรายละเอียดเช่นชื่อพนักงานรหัสเมืองเงินเดือนและหมายเลขโทรศัพท์ รหัสพนักงานเป็นคีย์หลัก

cqlsh> USE tutorialspoint;
cqlsh:tutorialspoint>; CREATE TABLE emp(
   emp_id int PRIMARY KEY,
   emp_name text,
   emp_city text,
   emp_sal varint,
   emp_phone varint
   );

การยืนยัน

คำสั่ง select จะให้สคีมาแก่คุณ ตรวจสอบตารางโดยใช้คำสั่ง select ดังที่แสดงด้านล่าง

cqlsh:tutorialspoint> select * from emp;

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

(0 rows)

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

การสร้างตารางโดยใช้ 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() วิธีการของ Cluster คลาสดังที่แสดงด้านล่าง

Session session = cluster.connect( );

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

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

ที่นี่เรากำลังใช้คีย์สเปซชื่อ tp. ดังนั้นให้สร้างวัตถุเซสชันดังที่แสดงด้านล่าง

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

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

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

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

//Query
String query = "CREATE TABLE emp(emp_id int PRIMARY KEY, "
   + "emp_name text, "
   + "emp_city text, "
   + "emp_sal varint, "
   + "emp_phone varint );";
session.execute(query);

ด้านล่างนี้เป็นโปรแกรมที่สมบูรณ์ในการสร้างและใช้คีย์สเปซในคาสซานดราโดยใช้ Java API

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

public class Create_Table {

   public static void main(String args[]){

      //Query
      String query = "CREATE TABLE emp(emp_id int PRIMARY KEY, "
         + "emp_name text, "
         + "emp_city text, "
         + "emp_sal varint, "
         + "emp_phone varint );";
		
      //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("Table created");
   }
}

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

$javac Create_Table.java
$java Create_Table

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

Table created