U ovom ćete članku naučiti-
- Umetni podatke
- Upsert Data
- Ažuriranje podataka
- Izbriši podatke
- Cassandra Gdje klauzula
Umetni podatke
Naredba 'Umetni u' zapisuje podatke u stupce Cassandre u obliku retka. Pohranit će samo one stupce koje daje korisnik. Morate navesti samo stupac primarnog ključa.
Neće biti prostora za zadane vrijednosti. Nakon umetanja ne vraćaju se rezultati.
Sintaksa
Insert into KeyspaceName.TableName(ColumnName1, ColumnName2, ColumnName3… )values (Column1Value, Column2Value, Column3Value… )
Primjer
Evo snimke izvršene naredbe 'Umetni u' koja će umetnuti jedan zapis u Cassandrinu tablicu 'Student'.
Insert into University.Student(RollNo,Name,dept,Semester) values(2,'Michael','CS', 2);
Nakon uspješnog izvršavanja naredbe 'Umetni u', jedan će se red umetnuti u tablicu Cassandra Student s RollNo 2, imenom Michael, odsjekom CS i semestarom 2.
Evo snimke trenutnog stanja baze podataka.
Upsert Data
Cassandra se potkrepi. Upsert znači da će Cassandra umetnuti redak ako primarni ključ već ne postoji, inače ako primarni ključ već postoji, ažurirat će taj red.
Ažuriranje podataka
Naredba 'Ažuriraj' koristi se za ažuriranje podataka u tablici Cassandra. Ako se nakon ažuriranja podataka ne vrate rezultati, to znači da su podaci uspješno ažurirani, inače će se vratiti pogreška. Vrijednosti stupaca mijenjaju se u klauzuli "Postavi", dok se podaci filtriraju klauzulom "Gdje".
Sintaksa
Update KeyspaceName.TableNameSet ColumnName1=new Column1Value,ColumnName2=new Column2Value,ColumnName3=new Column3Value,… Where ColumnName=ColumnValue
Primjer
Evo snimke zaslona koja prikazuje stanje baze podataka prije ažuriranja podataka.
Evo snimke izvršene naredbe 'Ažuriraj' koja ažurira zapis u tablici Student.
Update University.StudentSet name='Hayden'Where rollno=1;
Nakon uspješnog izvršavanja naredbe 'Ažuriraj učenika', ime učenika promijenit će se iz 'Clark' u 'Hayden' koji ima rollno 1.
Evo snimke zaslona koja prikazuje stanje baze podataka nakon ažuriranja podataka.
Cassandra Izbriši podatke
Naredba 'Delete' uklanja cijeli redak ili neke stupce iz tablice Student. Kada se podaci izbrišu, ne brišu se odmah iz tablice. Umjesto toga, izbrisani podaci označeni su nadgrobnom pločom i uklanjaju se nakon zbijanja.
Sintaksa
Delete from KeyspaceName.TableNameWhere ColumnName1=ColumnValue
Gornja sintaksa izbrisat će jedan ili više redaka, ovisi o filtraciji podataka u klauzuli where.
Delete ColumnNames from KeyspaceName.TableNameWhere ColumnName1=ColumnValue
Gornja sintaksa izbrisat će neke stupce iz tablice.
Primjer
Evo snimke koja prikazuje trenutno stanje baze podataka prije brisanja podataka.
Evo snimke naredbe koja će ukloniti jedan redak iz tablice Student.
Delete from University.Student where rollno=1;
Nakon uspješnog izvršavanja naredbe 'Delete', jedan će se redak izbrisati iz tablice Student gdje je vrijednost rollno 1.
Evo snimke koja prikazuje stanje baze podataka nakon brisanja podataka.
Ono što Cassandra ne podržava
Postoje sljedeća ograničenja u jeziku upita Cassandra (CQL).
- CQL ne podržava agregacijske upite kao što su max, min, avg
- CQL ne podržava grupiranje po, imajući upite.
- CQL ne podržava pridruživanja.
- CQL ne podržava niti upite.
- CQL ne podržava zamjenske upite.
- CQL ne podržava upite Union, Intersection.
- Stupci tablice ne mogu se filtrirati bez stvaranja indeksa.
- Upit veći od (>) i manji od (<) podržan je samo u stupcu grupiranja.
Jezik upita Cassandra nije prikladan za analitičke svrhe jer ima toliko ograničenja.
Cassandra Gdje klauzula
U Cassandri je preuzimanje podataka osjetljivo pitanje. Stupac se filtrira u Cassandri stvaranjem indeksa na stupcima koji nisu primarni ključ.
Sintaksa
Select ColumnNames from KeyspaceName.TableName Where ColumnName1=Column1Value ANDColumnName2=Column2Value AND…
Primjer
- Evo snimke koja prikazuje preuzimanje podataka iz studentske tablice bez filtriranja podataka.
select * from University.Student;
Iz studentske tablice dohvaćaju se dva zapisa.
- Evo snimke koja prikazuje preuzimanje podataka od Student s filtriranjem podataka. Dohvaća se jedan zapis.
Podaci se filtriraju prema stupcu imena. Dohvaćaju se svi zapisi s imenom jednakim Guru99.
select * from University.Student where name='Guru99';