Cassandra Query Language (CQL): Insert In, Update, Delete (Exempel)

Innehållsförteckning:

Anonim

I den här artikeln kommer du att lära dig-

  • Infoga data
  • Uppsatt data
  • Uppdatera data
  • Ta bort data
  • Cassandra Where Clause

Infoga data

Kommandot 'Infoga i' skriver data i Cassandra-kolumner i radform. Den lagrar endast de kolumner som ges av användaren. Du måste nödvändigtvis bara ange den primära nyckelkolumnen.

Det tar inget utrymme för icke givna värden. Inga resultat returneras efter införandet.

Syntax

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

Exempel

Här är ögonblicksbilden av det körda kommandot 'Insert in' som infogar en post i Cassandra-tabellen 'Student'.

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

Efter framgångsrikt körning av kommandot 'Insert In' kommer en rad att infogas i Cassandra-tabellen Student med RollNo 2, Namn Michael, avdelning CS och Semester 2.

Här är ögonblicksbilden av det aktuella databasläget.

Uppsatt data

Cassandra vänder upp. Upsert innebär att Cassandra kommer att infoga en rad om en primär nyckel inte redan finns annars om primär nyckel redan finns kommer den att uppdatera den raden.

Uppdatera data

Kommando 'Uppdatering' används för att uppdatera data i Cassandra-tabellen. Om inga resultat returneras efter uppdatering av data betyder det att data har uppdaterats, annars kommer ett fel att returneras. Kolumnvärden ändras i "Set" -satsen medan data filtreras med "Where" -satsen.

Syntax

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

Exempel

Här är skärmdumpen som visar databasens tillstånd innan data uppdateras.

Här är ögonblicksbilden av det körda kommandot 'Uppdatera' som uppdaterar posten i studenttabellen.

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

Efter framgångsrikt körning av kommandot 'Uppdatera student' ändras studentnamnet från 'Clark' till 'Hayden' som har nummer 1.

Här är skärmdumpen som visar databasens tillstånd efter uppdatering av data.

Cassandra Radera data

Kommandot 'Radera' tar bort en hel rad eller några kolumner från tabellen Student. När data raderas raderas de inte direkt från tabellen. Istället raderas data med en gravsten och tas bort efter komprimering.

Syntax

Delete from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

Ovanstående syntax raderar en eller flera rader beroende på datafiltrering i var klausul.

Delete ColumnNames from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

Ovanstående syntax tar bort några kolumner från tabellen.

Exempel

Här är ögonblicksbilden som visar det aktuella databasläget innan data tas bort.

Här är ögonblicksbilden av kommandot som tar bort en rad från tabellen Student.

Delete from University.Student where rollno=1;

Efter framgångsrikt körning av kommandot 'Radera' kommer en rad att raderas från tabellen Student där rollnr-värdet är 1.

Här är ögonblicksbilden som visar databasens tillstånd efter borttagning av data.

Vad Cassandra inte stöder

Det finns följande begränsningar i Cassandra frågespråk (CQL).

  1. CQL stöder inte aggregeringsfrågor som max, min, genomsnitt
  2. CQL stöder inte grupp genom att ha frågor.
  3. CQL stöder inte anslutningar.
  4. CQL stöder inte ELLER-frågor.
  5. CQL stöder inte jokerteckenfrågor.
  6. CQL stöder inte frågor från Union, korsning.
  7. Tabellkolumner kan inte filtreras utan att skapa index.
  8. Frågan större än (>) och mindre än (<) stöds endast i klustringskolumnen.

    Cassandra frågespråk är inte lämpligt för analysändamål eftersom det har så många begränsningar.

Cassandra Where Clause

I Cassandra är datainhämtning en känslig fråga. Kolumnen filtreras i Cassandra genom att skapa ett index på icke-primära nyckelkolumner.

Syntax

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

Exempel

  • Här är ögonblicksbilden som visar datainhämtningen från studenttabellen utan datafiltrering.
select * from University.Student;

Två poster hämtas från studenttabellen.

  • Här är ögonblicksbilden som visar datainhämtningen från Student med datafiltrering. En post hämtas.

Data filtreras efter namnkolumn. Alla poster hämtas som har samma namn som Guru99.

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