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
ไวยากรณ์ข้างต้นจะลบบางคอลัมน์ออกจากตาราง
ตัวอย่าง
นี่คือสแน็ปช็อตที่แสดงสถานะฐานข้อมูลปัจจุบันก่อนที่จะลบข้อมูล
นี่คือภาพรวมของคำสั่งที่จะลบหนึ่งแถวออกจากตาราง Student
Delete from University.Student where rollno=1;
หลังจากดำเนินการคำสั่ง CQL Delete สำเร็จแล้ว หนึ่งแถวจะถูกลบออกจากตาราง Student โดยที่ค่า rollno คือ 1
นี่คือสแน็ปช็อตที่แสดงสถานะฐานข้อมูลหลังจากลบข้อมูล
อะไร Cassandra ไม่สนับสนุน
มีข้อจำกัดดังต่อไปนี้ Cassandra ภาษาคิวรี (CQL)
- CQL ไม่สนับสนุนแบบสอบถามรวมเช่น max, min, avg
- CQL ไม่สนับสนุนการจัดกลุ่มโดยการมีข้อสงสัย
- CQL ไม่รองรับการรวม
- CQL ไม่รองรับคำสั่ง OR
- CQL ไม่รองรับการสืบค้นแบบไวด์การ์ด
- CQL ไม่รองรับคำสั่ง Union, Intersection
- ไม่สามารถกรองคอลัมน์ในตารางโดยไม่สร้างดัชนี
- รองรับการค้นหามากกว่า (>) และน้อยกว่า (<) ในคอลัมน์คลัสเตอร์เท่านั้น Cassandra ภาษาคิวรีไม่เหมาะสำหรับวัตถุประสงค์ในการวิเคราะห์เนื่องจากมีข้อจำกัดมากมาย
Cassandra ในกรณีที่ข้อ
In Cassandraการดึงข้อมูลถือเป็นประเด็นละเอียดอ่อน คอลัมน์ถูกกรองเข้าไป Cassandra โดยการสร้างดัชนีบนคอลัมน์ที่ไม่ใช่คีย์หลัก
วากยสัมพันธ์
Select ColumnNames from KeyspaceName.TableName Where ColumnName1=Column1Value AND ColumnName2=Column2Value AND . . .
ตัวอย่าง
- นี่คือสแน็ปช็อตที่แสดงการดึงข้อมูลจากตารางนักเรียนโดยไม่มีการกรองข้อมูล
select * from University.Student;
ดึงข้อมูลสองระเบียนจากตารางนักเรียน
- นี่คือภาพรวมที่แสดงการดึงข้อมูลจากนักเรียนพร้อมการกรองข้อมูล มีการเรียกข้อมูลหนึ่งระเบียน
ข้อมูลถูกกรองตามคอลัมน์ชื่อ บันทึกทั้งหมดจะถูกดึงออกมาซึ่งมีชื่อเท่ากับ Guru99
select * from University. Student where name='Guru99';