Cassandra Frågespråk (CQL): Infoga i, uppdatera (exempel)

Infoga data

Ocuco-landskapet Cassandra infoga uttalande skriver data in Cassandra kolumner i radform. Cassandra infoga fråga lagrar endast de kolumner som ges av användaren. Du måste nödvändigtvis endast ange primärnyckelkolumnen.

Det kommer inte att ta något utrymme för icke givna värden. Inga resultat returneras efter infogning.

syntax

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

Exempelvis

Här är ögonblicksbilden av de avrättade Cassandra Infoga i tabellfråga som kommer att infoga en post i Cassandra tabell 'Student'.

Infoga data

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

Efter framgångsrik exekvering av kommandot Insert into Cassandra, kommer en rad att infogas i Cassandra tabell Student med RollNo 2, Namn Michael, avd CS och Termin 2.

Här är ögonblicksbilden av det aktuella databastillståndet.

Infoga data

Upsert Data

Cassandra upprör. Upsert betyder det Cassandra kommer att infoga en rad om en primärnyckel inte redan finns, annars uppdateras den raden om primärnyckeln redan finns.

Uppdatera data

Ocuco-landskapet Cassandra Uppdateringsfrågan används för att uppdatera data i Cassandra bord. 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.TableName 
Set ColumnName1=new Column1Value,
      ColumnName2=new Column2Value,
      ColumnName3=new Column3Value,
       .
       .
       .
Where ColumnName=ColumnValue

Exempelvis

Här är skärmdumpen som visar databastillståndet innan du uppdaterar data.

Uppdatera data

Här är ögonblicksbilden av de avrättade Cassandra Uppdatera kommando som uppdaterar posten i elevtabellen.

Uppdatera data

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

Efter framgångsrik körning av uppdateringsfrågan i Cassandra 'Update Student', studentnamn kommer att ändras från 'Clark' till 'Hayden' som har rollno 1.

Här är skärmdumpen som visar databastillståndet efter uppdatering av data.

Uppdatera data

Cassandra Radera data

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

syntax

Delete from KeyspaceName.TableName
	Where ColumnName1=ColumnValue

Ovanstående Cassandra ta bort radsyntax kommer att ta bort en eller flera rader beroende på datafiltrering i where-satsen.

Delete ColumnNames from KeyspaceName.TableName
	Where ColumnName1=ColumnValue

Ovanstående syntax kommer att ta bort några kolumner från tabellen.

Exempelvis

Här är ögonblicksbilden som visar det aktuella databastillståndet innan data raderas.

Cassandra Radera data

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

Cassandra Radera data

Delete from University.Student where rollno=1;

Efter framgångsrik exekvering av CQL Delete-kommandot kommer en rad att tas bort från tabellen Student där rollno-värdet är 1.

Här är ögonblicksbilden som visar databastillståndet efter radering av data.

Cassandra Radera data

Vad Cassandra stöder inte

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

  1. CQL stöder inte aggregeringsfrågor som max, min, avg
  2. CQL stöder inte gruppera genom att ha frågor.
  3. CQL stöder inte joins.
  4. CQL stöder inte OR-frågor.
  5. CQL stöder inte jokerteckenfrågor.
  6. CQL stöder inte Union, Intersection-frågor.
  7. Tabellkolumner kan inte filtreras utan att skapa indexet.
  8. Större än (>) och mindre än (<) fråga 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 Var Clause

In Cassandra, är datahämtning en känslig fråga. Kolumnen filtreras in Cassandra genom att skapa ett index på icke-primära nyckelkolumner.

syntax

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

Exempelvis

  • Här är ögonblicksbilden som visar datahämtningen från Studenttabellen utan datafiltrering.

Cassandra Var Clause

select * from University.Student;

Två poster hämtas från Studenttabell.

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

Data filtreras efter namnkolumn. Alla poster hämtas som har ett namn som är lika med Guru99.

Cassandra Var Clause

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