Cassandra Forespørgselssprog (CQL): Indsæt i, opdater (eksempel)
Indsæt data
Cassandra insert statement skriver data ind Cassandra kolonner i rækkeform. Cassandra indsæt forespørgsel gemmer kun de kolonner, som er givet af brugeren. Du skal nødvendigvis kun angive den primære nøglekolonne.
Det vil ikke tage 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 et øjebliksbillede af de henrettede Cassandra Indsæt i tabelforespørgsel, der vil indsætte én post i Cassandra tabel 'Student'.
Insert into University.Student(RollNo,Name,dept,Semester) values(2,'Michael','CS', 2);
Efter vellykket udførelse af kommandoen Indsæt i Cassandra, vil der blive indsat en række i Cassandra tabel Elev med RollNo 2, Navn Michael, afd. CS og Semester 2.
Her er et øjebliksbillede af den aktuelle databasetilstand.
Upsert Data
Cassandra gør oprør. Upsert betyder det Cassandra vil indsætte en række, hvis en primærnøgle ikke allerede eksisterer, ellers hvis primærnøgle allerede findes, vil den opdatere denne række.
Opdater data
Cassandra Opdateringsforespørgsel bruges til at opdatere dataene i Cassandra bord. Hvis der ikke returneres resultater efter opdatering af data, betyder det, at data er opdateret med succes, ellers vil der blive returneret en fejl. Kolonneværdier ændres i 'Set'-klausulen, mens data filtreres med 'Where'-klausulen.
Syntaks
Update KeyspaceName.TableName Set ColumnName1=new Column1Value, ColumnName2=new Column2Value, ColumnName3=new Column3Value, . . . Where ColumnName=ColumnValue
Eksempel
Her er skærmbilledet, der viser databasetilstanden før opdatering af data.
Her er et øjebliksbillede af de henrettede Cassandra Opdater kommando, der opdaterer posten i elevtabellen.
Update University.Student Set name='Hayden' Where rollno=1;
Efter vellykket udførelse af opdateringsforespørgslen i Cassandra 'Opdater elev', elevens navn vil blive ændret fra 'Clark' til 'Hayden', der har rollno 1.
Her er skærmbilledet, der viser databasetilstanden efter opdatering af data.
Cassandra Slet data
Kommandoen 'Slet' fjerner en hel række eller nogle kolonner fra tabellen Elev. Når data slettes, slettes de ikke fra tabellen med det samme. I stedet markeres slettede data med en gravsten og fjernes efter komprimering.
Syntaks
Delete from KeyspaceName.TableName Where ColumnName1=ColumnValue
Ovenstående Cassandra slet rækkesyntaks vil slette en eller flere rækker afhængig af datafiltrering i where-klausulen.
Delete ColumnNames from KeyspaceName.TableName Where ColumnName1=ColumnValue
Ovenstående syntaks vil slette nogle kolonner fra tabellen.
Eksempel
Her er det øjebliksbillede, der viser den aktuelle databasetilstand før sletning af data.
Her er et øjebliksbillede af kommandoen, der fjerner en række fra tabellen Student.
Delete from University.Student where rollno=1;
Efter vellykket udførelse af CQL Delete-kommandoen slettes én række fra tabellen Student, hvor rollno-værdien er 1.
Her er det øjebliksbillede, der viser databasetilstanden efter sletning af data.
Hvad Cassandra understøtter ikke
Der er følgende begrænsninger i Cassandra forespørgselssprog (CQL).
- CQL understøtter ikke aggregeringsforespørgsler som max, min, avg
- CQL understøtter ikke grupper ved at have forespørgsler.
- CQL understøtter ikke joins.
- CQL understøtter ikke OR-forespørgsler.
- CQL understøtter ikke jokertegn-forespørgsler.
- CQL understøtter ikke Union, Intersection-forespørgsler.
- Tabelkolonner kan ikke filtreres uden at oprette indekset.
- Større end (>) og mindre end (<) forespørgsel understøttes kun på klyngekolonnen. Cassandra forespørgselssprog er ikke egnet til analyseformål, fordi det har så mange begrænsninger.
Cassandra Hvor Klausul
In Cassandra, er datahentning et følsomt emne. Kolonnen filtreres ind Cassandra ved at oprette et indeks på ikke-primære nøglekolonner.
Syntaks
Select ColumnNames from KeyspaceName.TableName Where ColumnName1=Column1Value AND ColumnName2=Column2Value AND . . .
Eksempel
- Her er et øjebliksbillede, der viser datahentningen fra Student-tabellen uden datafiltrering.
select * from University.Student;
To poster hentes fra Elev-tabellen.
- Her er det øjebliksbillede, der viser datahentningen fra Student med datafiltrering. Én post hentes.
Data filtreres efter navnekolonne. Alle posterne hentes, der har navn svarende til Guru99.
select * from University. Student where name='Guru99';