Bahasa Pertanyaan Cassandra (CQL): Masukkan ke, Kemas kini, Padam (Contoh)

Isi kandungan:

Anonim

Dalam artikel ini, anda akan belajar-

  • Masukkan Data
  • Data Naik
  • Kemas kini Data
  • Padamkan Data
  • Cassandra Di mana Fasal

Masukkan Data

Perintah 'Masukkan ke' menulis data dalam lajur Cassandra dalam bentuk baris. Ia hanya akan menyimpan lajur yang diberikan oleh pengguna. Anda mesti menentukan hanya ruang utama utama.

Ia tidak akan mengambil ruang untuk nilai yang tidak diberikan. Tidak ada hasil yang dikembalikan selepas penyisipan.

Sintaks

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

Contohnya

Berikut adalah snapshot arahan yang dilaksanakan 'Masukkan ke dalam' yang akan memasukkan satu rekod dalam jadual Cassandra 'Pelajar'.

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

Setelah berjaya melaksanakan perintah 'Insert Into', satu baris akan disisipkan di Cassandra table Student dengan RollNo 2, Name Michael, dept CS dan Semester 2.

Inilah gambaran keadaan pangkalan data semasa.

Data Naik

Cassandra menaik. Upsert bermaksud bahawa Cassandra akan memasukkan baris jika kunci utama belum ada sebaliknya jika kunci utama sudah ada, ia akan mengemas kini baris itu.

Kemas kini Data

Perintah 'Update' digunakan untuk mengemas kini data dalam jadual Cassandra. Sekiranya tidak ada hasil yang dikembalikan setelah mengemas kini data, ini bermaksud data berjaya dikemas kini jika tidak, kesalahan akan dikembalikan. Nilai lajur diubah dalam klausa 'Set' sementara data disaring dengan klausa 'Di mana'.

Sintaks

Update KeyspaceName.TableNameSet ColumnName1=new Column1Value,ColumnName2=new Column2Value,ColumnName3=new Column3Value,… Where ColumnName=ColumnValue

Contohnya

Berikut adalah tangkapan skrin yang menunjukkan keadaan pangkalan data sebelum mengemas kini data.

Berikut adalah snapshot arahan 'Update' yang dilaksanakan yang mengemas kini rekod dalam jadual Pelajar.

Update University.StudentSet name='Hayden'Where rollno=1;

Setelah berjaya melaksanakan arahan 'Update Student', nama pelajar akan diubah dari 'Clark' menjadi 'Hayden' yang mempunyai rollno 1.

Berikut adalah tangkapan skrin yang menunjukkan keadaan pangkalan data setelah mengemas kini data.

Cassandra Padam Data

Perintah 'Delete' membuang keseluruhan baris atau beberapa lajur dari meja Pelajar. Apabila data dihapus, data tersebut tidak akan dihapus dari jadual dengan segera. Sebaliknya data yang dihapus ditandakan dengan batu nisan dan dikeluarkan setelah pemadatan.

Sintaks

Delete from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

Sintaks di atas akan menghapus satu atau lebih baris bergantung pada penapisan data di mana klausa.

Delete ColumnNames from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

Sintaks di atas akan menghapus beberapa lajur dari jadual.

Contohnya

Berikut adalah snapshot yang menunjukkan keadaan pangkalan data semasa sebelum menghapus data.

Berikut adalah petikan arahan yang akan mengeluarkan satu baris dari pelajar Jadual

Delete from University.Student where rollno=1;

Setelah berjaya melaksanakan perintah 'Delete', satu baris akan dihapus dari jadual Pelajar di mana nilai rollno adalah 1.

Berikut adalah snapshot yang menunjukkan keadaan pangkalan data setelah menghapus data.

Apa yang tidak disokong oleh Cassandra

Terdapat batasan berikut dalam bahasa pertanyaan Cassandra (CQL).

  1. CQL tidak menyokong pertanyaan agregasi seperti maksimum, min, purata
  2. CQL tidak menyokong kumpulan dengan, mempunyai pertanyaan.
  3. CQL tidak menyokong penyertaan.
  4. CQL tidak menyokong pertanyaan ATAU.
  5. CQL tidak menyokong pertanyaan wildcard.
  6. CQL tidak menyokong pertanyaan Union, Intersection.
  7. Lajur jadual tidak dapat disaring tanpa membuat indeks.
  8. Permintaan lebih besar daripada (>) dan kurang daripada (<) hanya disokong pada kolum pengelompokan.

    Bahasa pertanyaan Cassandra tidak sesuai untuk tujuan analisis kerana mempunyai banyak batasan.

Cassandra Di mana Fasal

Di Cassandra, pengambilan data adalah isu sensitif. Lajur disaring di Cassandra dengan membuat indeks pada lajur kunci bukan primer.

Sintaks

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

Contohnya

  • Berikut adalah gambar yang menunjukkan pengambilan data dari jadual Pelajar tanpa penyaringan data.
select * from University.Student;

Dua rekod diambil dari jadual Pelajar.

  • Berikut adalah gambar yang menunjukkan pengambilan data dari Pelajar dengan penyaringan data. Satu rekod diambil.

Data ditapis mengikut lajur nama. Semua rekod diambil yang mempunyai nama sama dengan Guru99.

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