Cassandra Query Language (CQL): Indsæt i, opdater, slet (eksempel)

Indholdsfortegnelse:

Anonim

I denne artikel lærer du-

  • Indsæt data
  • Opsert data
  • Opdater data
  • Slet data
  • Cassandra hvor klausul

Indsæt data

Kommandoen 'Indsæt i' skriver data i Cassandra-kolonner i rækkeform. Det gemmer kun de kolonner, der er givet af brugeren. Du skal nødvendigvis angive kun den primære nøglekolonne.

Det tager ikke 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 snapshotet af den udførte kommando 'Indsæt i', der indsætter en post i Cassandra-tabellen 'Studerende'.

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

Efter vellykket udførelse af kommandoen 'Indsæt i' indsættes en række i Cassandra-tabellen Student med RollNo 2, Navn Michael, afd. CS og Semester 2.

Her er øjebliksbillede af den aktuelle databasetilstand.

Opsert data

Cassandra gør upsert. Upsert betyder, at Cassandra vil indsætte en række, hvis en primær nøgle ikke allerede findes, ellers hvis den primære nøgle allerede findes, vil den opdatere den række.

Opdater data

Kommando 'Opdatering' bruges til at opdatere dataene i Cassandra-tabellen. Hvis der ikke returneres nogen resultater efter opdatering af data, betyder det, at data er opdateret, ellers returneres en fejl. Kolonneværdier ændres i 'Set' -klausulen, mens data filtreres med 'Where' -klausulen.

Syntaks

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

Eksempel

Her er skærmbilledet, der viser databasetilstanden, inden data opdateres.

Her er øjebliksbillede af den udførte kommando 'Opdater', der opdaterer posten i studenttabellen.

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

Efter vellykket udførelse af kommandoen 'Opdater elev', vil elevers navn blive ændret fra 'Clark' til 'Hayden', der har nummer 1.

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

Cassandra Slet data

Kommando 'Slet' fjerner en hel række eller nogle kolonner fra tabellen Elev. Når data slettes, slettes de ikke straks fra tabellen. I stedet er slettede data markeret med en gravsten og fjernes efter komprimering.

Syntaks

Delete from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

Ovenstående syntaks sletter en eller flere rækker afhænger af datafiltrering i hvor klausul.

Delete ColumnNames from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

Ovenstående syntaks sletter nogle kolonner fra tabellen.

Eksempel

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

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

Delete from University.Student where rollno=1;

Efter vellykket udførelse af kommandoen 'Slet' slettes en række fra tabellen Student, hvor rollno-værdi er 1.

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

Hvad Cassandra ikke understøtter

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

  1. CQL understøtter ikke aggregeringsforespørgsler som max, min, gennemsnit
  2. CQL understøtter ikke gruppe ved at have forespørgsler.
  3. CQL understøtter ikke sammenføjninger.
  4. CQL understøtter ikke ELLER forespørgsler.
  5. CQL understøtter ikke wildcard-forespørgsler.
  6. CQL understøtter ikke forespørgsler fra Union, kryds.
  7. Tabelkolonner kan ikke filtreres uden oprettelse af indekset.
  8. Større end (>) og mindre end (<) forespørgsel understøttes kun i klyngekolonne.

    Cassandra-forespørgselssprog er ikke egnet til analyseformål, fordi det har så mange begrænsninger.

Cassandra hvor klausul

I Cassandra er datahentning et følsomt problem. Kolonnen filtreres i Cassandra ved at oprette et indeks på ikke-primære nøglekolonner.

Syntaks

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

Eksempel

  • Her er det øjebliksbillede, der viser datahentning fra studenttabel uden datafiltrering.
select * from University.Student;

To poster hentes fra studenttabellen.

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

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

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