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'.
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.
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.
Här är ögonblicksbilden av de avrättade Cassandra Uppdatera kommando som uppdaterar posten i elevtabellen.
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.
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.
Här är ögonblicksbilden av kommandot som tar bort en rad från tabellen Student.
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.
Vad Cassandra stöder inte
Det finns följande begränsningar i Cassandra frågespråk (CQL).
- CQL stöder inte aggregeringsfrågor som max, min, avg
- CQL stöder inte gruppera genom att ha frågor.
- CQL stöder inte joins.
- CQL stöder inte OR-frågor.
- CQL stöder inte jokerteckenfrågor.
- CQL stöder inte Union, Intersection-frågor.
- Tabellkolumner kan inte filtreras utan att skapa indexet.
- 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.
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.
select * from University. Student where name='Guru99';