Cassandra ภาษาแบบสอบถาม (CQL): แทรกลงในอัปเดต (ตัวอย่าง)

แทรกข้อมูล

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

จะไม่ใช้พื้นที่ใดๆ สำหรับค่าที่ไม่ได้ระบุ ไม่มีผลลัพธ์ส่งคืนหลังจากการแทรก

วากยสัมพันธ์

Insert into KeyspaceName.TableName(ColumnName1, ColumnName2, ColumnName3 . . . .)
values (Column1Value, Column2Value, Column3Value . . . .)

ตัวอย่าง

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

แทรกข้อมูล

Insert into University.Student(RollNo,Name,dept,Semester) values(2,'Michael','CS', 2);

หลังจากดำเนินการคำสั่ง Insert into สำเร็จแล้ว Cassandraจะมีการแทรกหนึ่งแถวใน Cassandra นักเรียนโต๊ะที่มี RollNo 2 ชื่อ Michael แผนก CS และภาคเรียนที่ 2

นี่คือภาพรวมของสถานะฐานข้อมูลปัจจุบัน

แทรกข้อมูล

อัปเปอร์ข้อมูล

Cassandra ไม่ทำให้อารมณ์เสีย อัปเปอร์หมายความว่าอย่างนั้น Cassandra จะแทรกแถวหากยังไม่มีคีย์หลัก มิฉะนั้น หากคีย์หลักมีอยู่แล้ว ระบบจะอัปเดตแถวนั้น

อัปเดตข้อมูล

เหตุการณ์ Cassandra Update query ใช้ในการอัพเดตข้อมูลใน Cassandra ตารางหากไม่มีผลลัพธ์ใดๆ กลับมาหลังจากอัปเดตข้อมูล แสดงว่าอัปเดตข้อมูลสำเร็จแล้ว มิฉะนั้นจะส่งคืนข้อผิดพลาด ค่าคอลัมน์จะเปลี่ยนแปลงในคำสั่ง 'Set' ในขณะที่ข้อมูลจะถูกกรองด้วยคำสั่ง 'Where'

วากยสัมพันธ์

Update KeyspaceName.TableName 
Set ColumnName1=new Column1Value,
      ColumnName2=new Column2Value,
      ColumnName3=new Column3Value,
       .
       .
       .
Where ColumnName=ColumnValue

ตัวอย่าง

นี่คือภาพหน้าจอที่แสดงสถานะฐานข้อมูลก่อนที่จะอัปเดตข้อมูล

อัปเดตข้อมูล

นี่คือภาพรวมของการดำเนินการ Cassandra คำสั่ง Update ที่อัพเดตเรกคอร์ดในตาราง Student

อัปเดตข้อมูล

Update University.Student
Set name='Hayden'
Where rollno=1;

หลังจากดำเนินการค้นหาการอัปเดตสำเร็จแล้ว Cassandra 'อัปเดตนักศึกษา' ชื่อนักศึกษาจะเปลี่ยนจาก 'คลาร์ก' เป็น 'เฮย์เดน' ที่มีม้วนหมายเลข 1

นี่คือภาพหน้าจอที่แสดงสถานะฐานข้อมูลหลังจากอัปเดตข้อมูล

อัปเดตข้อมูล

Cassandra ลบข้อมูล

คำสั่ง 'Delete' จะลบทั้งแถวหรือบางคอลัมน์ออกจากตาราง Student เมื่อลบข้อมูลแล้วจะไม่ถูกลบออกจากตารางทันที ข้อมูลที่ถูกลบจะถูกทำเครื่องหมายด้วยหลุมฝังศพและจะถูกลบออกหลังจากการบดอัด

วากยสัมพันธ์

Delete from KeyspaceName.TableName
	Where ColumnName1=ColumnValue

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

Delete ColumnNames from KeyspaceName.TableName
	Where ColumnName1=ColumnValue

ไวยากรณ์ข้างต้นจะลบบางคอลัมน์ออกจากตาราง

ตัวอย่าง

นี่คือสแน็ปช็อตที่แสดงสถานะฐานข้อมูลปัจจุบันก่อนที่จะลบข้อมูล

Cassandra ลบข้อมูล

นี่คือภาพรวมของคำสั่งที่จะลบหนึ่งแถวออกจากตาราง Student

Cassandra ลบข้อมูล

Delete from University.Student where rollno=1;

หลังจากดำเนินการคำสั่ง CQL Delete สำเร็จแล้ว หนึ่งแถวจะถูกลบออกจากตาราง Student โดยที่ค่า rollno คือ 1

นี่คือสแน็ปช็อตที่แสดงสถานะฐานข้อมูลหลังจากลบข้อมูล

Cassandra ลบข้อมูล

อะไร Cassandra ไม่สนับสนุน

มีข้อจำกัดดังต่อไปนี้ Cassandra ภาษาคิวรี (CQL)

  1. CQL ไม่สนับสนุนแบบสอบถามรวมเช่น max, min, avg
  2. CQL ไม่สนับสนุนการจัดกลุ่มโดยการมีข้อสงสัย
  3. CQL ไม่รองรับการรวม
  4. CQL ไม่รองรับคำสั่ง OR
  5. CQL ไม่รองรับการสืบค้นแบบไวด์การ์ด
  6. CQL ไม่รองรับคำสั่ง Union, Intersection
  7. ไม่สามารถกรองคอลัมน์ในตารางโดยไม่สร้างดัชนี
  8. รองรับการค้นหามากกว่า (>) และน้อยกว่า (<) ในคอลัมน์คลัสเตอร์เท่านั้น Cassandra ภาษาคิวรีไม่เหมาะสำหรับวัตถุประสงค์ในการวิเคราะห์เนื่องจากมีข้อจำกัดมากมาย

Cassandra ในกรณีที่ข้อ

In Cassandraการดึงข้อมูลถือเป็นประเด็นละเอียดอ่อน คอลัมน์ถูกกรองเข้าไป Cassandra โดยการสร้างดัชนีบนคอลัมน์ที่ไม่ใช่คีย์หลัก

วากยสัมพันธ์

Select ColumnNames from KeyspaceName.TableName Where ColumnName1=Column1Value AND
	ColumnName2=Column2Value AND
	.
	.
	.

ตัวอย่าง

  • นี่คือสแน็ปช็อตที่แสดงการดึงข้อมูลจากตารางนักเรียนโดยไม่มีการกรองข้อมูล

Cassandra ในกรณีที่ข้อ

select * from University.Student;

ดึงข้อมูลสองระเบียนจากตารางนักเรียน

  • นี่คือภาพรวมที่แสดงการดึงข้อมูลจากนักเรียนพร้อมการกรองข้อมูล มีการเรียกข้อมูลหนึ่งระเบียน

ข้อมูลถูกกรองตามคอลัมน์ชื่อ บันทึกทั้งหมดจะถูกดึงออกมาซึ่งมีชื่อเท่ากับ Guru99

Cassandra ในกรณีที่ข้อ

select * from University. Student where name='Guru99';