Cassandra Forespørgselssprog (CQL): Indsæt i, opdater (eksempel)

Indsæt data

Cassandra insert statement skriver data ind Cassandra kolonner i rækkeform. Cassandra indsæt forespørgsel gemmer kun de kolonner, som er givet af brugeren. Du skal nødvendigvis kun angive den primære nøglekolonne.

Det vil ikke tage plads til ikke-givne værdier. Ingen resultater returneres efter indsættelse.

Syntaks

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

Eksempel

Her er et øjebliksbillede af de henrettede Cassandra Indsæt i tabelforespørgsel, der vil indsætte én post i Cassandra tabel 'Student'.

Indsæt data

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

Efter vellykket udførelse af kommandoen Indsæt i Cassandra, vil der blive indsat en række i Cassandra tabel Elev med RollNo 2, Navn Michael, afd. CS og Semester 2.

Her er et øjebliksbillede af den aktuelle databasetilstand.

Indsæt data

Upsert Data

Cassandra gør oprør. Upsert betyder det Cassandra vil indsætte en række, hvis en primærnøgle ikke allerede eksisterer, ellers hvis primærnøgle allerede findes, vil den opdatere denne række.

Opdater data

Cassandra Opdateringsforespørgsel bruges til at opdatere dataene i Cassandra bord. Hvis der ikke returneres resultater efter opdatering af data, betyder det, at data er opdateret med succes, ellers vil der blive returneret en fejl. Kolonneværdier ændres i 'Set'-klausulen, mens data filtreres med 'Where'-klausulen.

Syntaks

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

Eksempel

Her er skærmbilledet, der viser databasetilstanden før opdatering af data.

Opdater data

Her er et øjebliksbillede af de henrettede Cassandra Opdater kommando, der opdaterer posten i elevtabellen.

Opdater data

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

Efter vellykket udførelse af opdateringsforespørgslen i Cassandra 'Opdater elev', elevens navn vil blive ændret fra 'Clark' til 'Hayden', der har rollno 1.

Her er skærmbilledet, der viser databasetilstanden efter opdatering af data.

Opdater data

Cassandra Slet data

Kommandoen 'Slet' fjerner en hel række eller nogle kolonner fra tabellen Elev. Når data slettes, slettes de ikke fra tabellen med det samme. I stedet markeres slettede data med en gravsten og fjernes efter komprimering.

Syntaks

Delete from KeyspaceName.TableName
	Where ColumnName1=ColumnValue

Ovenstående Cassandra slet rækkesyntaks vil slette en eller flere rækker afhængig af datafiltrering i where-klausulen.

Delete ColumnNames from KeyspaceName.TableName
	Where ColumnName1=ColumnValue

Ovenstående syntaks vil slette nogle kolonner fra tabellen.

Eksempel

Her er det øjebliksbillede, der viser den aktuelle databasetilstand før sletning af data.

Cassandra Slet data

Her er et øjebliksbillede af kommandoen, der fjerner en række fra tabellen Student.

Cassandra Slet data

Delete from University.Student where rollno=1;

Efter vellykket udførelse af CQL Delete-kommandoen slettes én række fra tabellen Student, hvor rollno-værdien er 1.

Her er det øjebliksbillede, der viser databasetilstanden efter sletning af data.

Cassandra Slet data

Hvad Cassandra understøtter ikke

Der er følgende begrænsninger i Cassandra forespørgselssprog (CQL).

  1. CQL understøtter ikke aggregeringsforespørgsler som max, min, avg
  2. CQL understøtter ikke grupper ved at have forespørgsler.
  3. CQL understøtter ikke joins.
  4. CQL understøtter ikke OR-forespørgsler.
  5. CQL understøtter ikke jokertegn-forespørgsler.
  6. CQL understøtter ikke Union, Intersection-forespørgsler.
  7. Tabelkolonner kan ikke filtreres uden at oprette indekset.
  8. Større end (>) og mindre end (<) forespørgsel understøttes kun på klyngekolonnen. Cassandra forespørgselssprog er ikke egnet til analyseformål, fordi det har så mange begrænsninger.

Cassandra Hvor Klausul

In Cassandra, er datahentning et følsomt emne. Kolonnen filtreres ind Cassandra ved at oprette et indeks på ikke-primære nøglekolonner.

Syntaks

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

Eksempel

  • Her er et øjebliksbillede, der viser datahentningen fra Student-tabellen uden datafiltrering.

Cassandra Hvor Klausul

select * from University.Student;

To poster hentes fra Elev-tabellen.

  • Her er det øjebliksbillede, der viser datahentningen fra Student med datafiltrering. Én post hentes.

Data filtreres efter navnekolonne. Alle posterne hentes, der har navn svarende til Guru99.

Cassandra Hvor Klausul

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