Cassandra Query Language (CQL): Sett inn, oppdater, slett (eksempel)

Innholdsfortegnelse:

Anonim

I denne artikkelen vil du lære-

  • Sett inn data
  • Upsert Data
  • Oppdater data
  • Slett data
  • Cassandra hvor klausul

Sett inn data

Kommandoen 'Sett inn i' skriver data i Cassandra-kolonner i radform. Den lagrer bare de kolonnene som er gitt av brukeren. Du må nødvendigvis spesifisere bare den primære nøkkelkolonnen.

Det tar ikke plass for ikke gitte verdier. Ingen resultater returneres etter innsetting.

Syntaks

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

Eksempel

Her er øyeblikksbildet av den utførte kommandoen 'Sett inn i' som vil sette inn en post i Cassandra-tabellen 'Student'.

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

Etter vellykket utførelse av kommandoen 'Sett inn', vil en rad bli satt inn i Cassandra-tabellen Student med RollNo 2, Navn Michael, avd. CS og Semester 2.

Her er øyeblikksbildet av gjeldende databasetilstand.

Upsert Data

Cassandra gjør upsert. Upsert betyr at Cassandra vil sette inn en rad hvis en primærnøkkel ikke allerede eksisterer ellers hvis primærnøkkel allerede eksisterer, vil den oppdatere den raden.

Oppdater data

Kommando 'Update' brukes til å oppdatere dataene i Cassandra-tabellen. Hvis ingen resultater returneres etter oppdatering av data, betyr det at data er oppdatert, ellers returneres en feil. Kolonneverdier endres i Set-setningen mens data blir filtrert med "Where" -satsen.

Syntaks

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

Eksempel

Her er skjermbildet som viser databasetilstanden før du oppdaterer data.

Her er øyeblikksbildet av den utførte kommandoen 'Oppdater' som oppdaterer posten i Student-tabellen.

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

Etter vellykket gjennomføring av kommandoen 'Oppdater student', vil studentnavnet endres fra 'Clark' til 'Hayden' som har nummer 1.

Her er skjermbildet som viser databasetilstanden etter oppdatering av data.

Cassandra Slett data

Kommando 'Slett' fjerner en hel rad eller noen kolonner fra tabellen Student. Når data slettes, slettes de ikke umiddelbart fra tabellen. I stedet er slettede data merket med en gravstein og blir fjernet etter komprimering.

Syntaks

Delete from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

Ovennevnte syntaks vil slette en eller flere rader, avhengig av datafiltrering i hvor klausul.

Delete ColumnNames from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

Syntaksen ovenfor vil slette noen kolonner fra tabellen.

Eksempel

Her er øyeblikksbildet som viser gjeldende databasetilstand før du sletter data.

Her er øyeblikksbildet av kommandoen som vil fjerne en rad fra tabellen Student.

Delete from University.Student where rollno=1;

Etter vellykket utføring av kommandoen 'Slett', vil en rad bli slettet fra tabellen Student der rollno-verdien er 1.

Her er øyeblikksbildet som viser databasetilstanden etter sletting av data.

Hva Cassandra ikke støtter

Det er følgende begrensninger i Cassandra spørrespråk (CQL).

  1. CQL støtter ikke aggregeringsspørsmål som max, min, avg
  2. CQL støtter ikke gruppe etter å ha spørsmål.
  3. CQL støtter ikke sammenkoblinger.
  4. CQL støtter ikke ELLER-spørsmål.
  5. CQL støtter ikke jokertegnspørsmål.
  6. CQL støtter ikke Union, Intersection-spørsmål.
  7. Tabellkolonner kan ikke filtreres uten å lage indeksen.
  8. Større enn (>) og mindre enn (<) spørring støttes bare i klyngekolonne.

    Cassandra-spørrespråket er ikke egnet for analyseformål fordi det har så mange begrensninger.

Cassandra hvor klausul

I Cassandra er datainnhenting et følsomt problem. Kolonnen blir filtrert i Cassandra ved å lage en indeks på ikke-primære nøkkelkolonner.

Syntaks

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

Eksempel

  • Her er øyeblikksbildet som viser datahenting fra studenttabellen uten datafiltrering.
select * from University.Student;

To poster hentes fra studenttabellen.

  • Her er øyeblikksbildet som viser datahenting fra Student med datafiltrering. Én plate blir hentet.

Data filtreres etter navnekolonne. Alle postene blir hentet som har navnet lik Guru99.

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