In dit artikel leert u:
- Gegevens invoegen
- Upsert-gegevens
- Gegevens bijwerken
- Verwijder data
- Cassandra Where-clausule
Gegevens invoegen
Commando 'Invoegen in' schrijft gegevens in Cassandra-kolommen in rijvorm. Het slaat alleen de kolommen op die door de gebruiker zijn opgegeven. U hoeft alleen de primaire sleutelkolom op te geven.
Het zal geen ruimte innemen voor niet opgegeven waarden. Er worden geen resultaten geretourneerd na het inbrengen.
Syntaxis
Insert into KeyspaceName.TableName(ColumnName1, ColumnName2, ColumnName3… )values (Column1Value, Column2Value, Column3Value… )
Voorbeeld
Hier is de momentopname van het uitgevoerde commando 'Invoegen in' dat één record zal invoegen in Cassandra-tabel 'Student'.
Insert into University.Student(RollNo,Name,dept,Semester) values(2,'Michael','CS', 2);
Na succesvolle uitvoering van het commando 'Invoegen in', wordt een rij ingevoegd in de Cassandra-tabel Student met RollNo 2, Naam Michael, afdeling CS en Semester 2.
Hier is de momentopname van de huidige databasestatus.
Upsert-gegevens
Cassandra doet upsert. Upsert betekent dat Cassandra een rij invoegt als er nog geen primaire sleutel bestaat, anders wordt die rij bijgewerkt als de primaire sleutel al bestaat.
Gegevens bijwerken
Het commando 'Update' wordt gebruikt om de gegevens in de Cassandra-tabel bij te werken. Als er geen resultaten worden geretourneerd na het bijwerken van gegevens, betekent dit dat de gegevens met succes zijn bijgewerkt, anders wordt er een fout geretourneerd. Kolomwaarden worden gewijzigd in 'Set'-clausule terwijl gegevens worden gefilterd met' Where'-clausule.
Syntaxis
Update KeyspaceName.TableNameSet ColumnName1=new Column1Value,ColumnName2=new Column2Value,ColumnName3=new Column3Value,… Where ColumnName=ColumnValue
Voorbeeld
Hier is de schermafbeelding die de databasestatus laat zien voordat de gegevens worden bijgewerkt.
Hier is de momentopname van het uitgevoerde commando 'Update' waarmee het record in de Student-tabel wordt bijgewerkt.
Update University.StudentSet name='Hayden'Where rollno=1;
Na succesvolle uitvoering van het commando 'Update Student', zal de naam van de student worden gewijzigd van 'Clark' in 'Hayden' met rolnr. 1.
Hier is de schermafbeelding die de databasestatus laat zien na het bijwerken van gegevens.
Cassandra Gegevens verwijderen
Commando 'Verwijderen' verwijdert een hele rij of enkele kolommen uit de tabel Student. Wanneer gegevens worden verwijderd, worden deze niet onmiddellijk uit de tabel verwijderd. In plaats daarvan worden verwijderde gegevens gemarkeerd met een grafsteen en worden ze verwijderd na verdichting.
Syntaxis
Delete from KeyspaceName.TableNameWhere ColumnName1=ColumnValue
De bovenstaande syntaxis verwijdert een of meer rijen, afhankelijk van gegevensfiltratie in de where-clausule.
Delete ColumnNames from KeyspaceName.TableNameWhere ColumnName1=ColumnValue
De bovenstaande syntaxis verwijdert enkele kolommen uit de tabel.
Voorbeeld
Hier is de momentopname die de huidige databasestatus laat zien voordat gegevens worden verwijderd.
Hier is de momentopname van de opdracht waarmee een rij uit de tabel Student wordt verwijderd.
Delete from University.Student where rollno=1;
Na succesvolle uitvoering van het commando 'Verwijderen', wordt één rij verwijderd uit de tabel Student waar rollno-waarde 1 is.
Hier is de momentopname die de databasestatus laat zien na het verwijderen van gegevens.
Wat Cassandra niet ondersteunt
Er zijn de volgende beperkingen in Cassandra Query Language (CQL).
- CQL ondersteunt geen aggregatiequery's zoals max, min, avg
- CQL ondersteunt geen group by, met queries.
- CQL ondersteunt geen joins.
- CQL ondersteunt geen OR-query's.
- CQL ondersteunt geen zoekopdrachten met jokertekens.
- CQL ondersteunt geen Union, Intersection-query's.
- Tabelkolommen kunnen niet worden gefilterd zonder de index te maken.
- De query groter dan (>) en kleiner dan (<) wordt alleen ondersteund op de clusterkolom.
De querytaal van Cassandra is niet geschikt voor analysedoeleinden, omdat er zoveel beperkingen aan verbonden zijn.
Cassandra Where-clausule
In Cassandra is het ophalen van gegevens een gevoelige kwestie. De kolom wordt in Cassandra gefilterd door een index te maken op niet-primaire sleutelkolommen.
Syntaxis
Select ColumnNames from KeyspaceName.TableName Where ColumnName1=Column1Value ANDColumnName2=Column2Value AND…
Voorbeeld
- Hier is de momentopname die het ophalen van gegevens uit de studententabel laat zien zonder gegevensfiltratie.
select * from University.Student;
Er worden twee records opgehaald uit de leerlingentabel.
- Hier is de momentopname die het ophalen van gegevens van Student met gegevensfiltratie laat zien. Er wordt één record opgehaald.
Gegevens worden gefilterd op naamkolom. Alle records worden opgehaald met een naam die gelijk is aan Guru99.
select * from University.Student where name='Guru99';