Cassandra Query Language (CQL): insérer dans, mettre à jour, supprimer (exemple)

Table des matières:

Anonim

Dans cet article, vous apprendrez-

  • Insérer des données
  • Données Upsert
  • Mettre à jour les données
  • Suprimmer les données
  • Clause Où Cassandra

Insérer des données

La commande «Insérer dans» écrit les données dans les colonnes Cassandra sous forme de lignes. Il ne stockera que les colonnes fournies par l'utilisateur. Vous devez nécessairement spécifier uniquement la colonne de clé primaire.

Cela ne prendra pas de place pour les valeurs non données. Aucun résultat n'est renvoyé après l'insertion.

Syntaxe

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

Exemple

Voici un instantané de la commande exécutée «Insérer dans» qui insérera un enregistrement dans la table Cassandra «Étudiant».

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

Après l'exécution réussie de la commande 'Insérer dans', une ligne sera insérée dans la table Cassandra Student with RollNo 2, Name Michael, dept CS et Semester 2.

Voici un instantané de l'état actuel de la base de données.

Données Upsert

Cassandra fait des upsert. Upsert signifie que Cassandra insérera une ligne si une clé primaire n'existe pas déjà, sinon si la clé primaire existe déjà, il mettra à jour cette ligne.

Mettre à jour les données

La commande 'Update' est utilisée pour mettre à jour les données de la table Cassandra. Si aucun résultat n'est renvoyé après la mise à jour des données, cela signifie que les données ont été mises à jour avec succès, sinon une erreur sera renvoyée. Les valeurs de colonne sont modifiées dans la clause 'Set' tandis que les données sont filtrées avec la clause 'Where'.

Syntaxe

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

Exemple

Voici la capture d'écran qui montre l'état de la base de données avant de mettre à jour les données.

Voici le cliché de la commande exécutée 'Update' qui met à jour l'enregistrement dans la table Student.

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

Après l'exécution réussie de la commande 'Update Student', le nom de l'étudiant passera de 'Clark' à 'Hayden' qui a rollno 1.

Voici la capture d'écran qui montre l'état de la base de données après la mise à jour des données.

Cassandra Supprimer les données

La commande 'Supprimer' supprime une ligne entière ou certaines colonnes de la table Student. Lorsque les données sont supprimées, elles ne sont pas supprimées du tableau immédiatement. Au lieu de cela, les données supprimées sont marquées d'une pierre tombale et sont supprimées après le compactage.

Syntaxe

Delete from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

La syntaxe ci-dessus supprimera une ou plusieurs lignes en fonction du filtrage des données dans la clause where.

Delete ColumnNames from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

La syntaxe ci-dessus supprimera certaines colonnes du tableau.

Exemple

Voici l'instantané qui montre l'état actuel de la base de données avant de supprimer les données.

Voici le cliché de la commande qui supprimera une ligne de la table Student.

Delete from University.Student where rollno=1;

Après l'exécution réussie de la commande 'Supprimer', une ligne sera supprimée de la table Student où la valeur rollno est 1.

Voici l'instantané qui montre l'état de la base de données après la suppression des données.

Ce que Cassandra ne prend pas en charge

Il existe les limitations suivantes dans le langage de requête Cassandra (CQL).

  1. CQL ne prend pas en charge les requêtes d'agrégation telles que max, min, avg
  2. CQL ne prend pas en charge le group by, ayant des requêtes.
  3. CQL ne prend pas en charge les jointures.
  4. CQL ne prend pas en charge les requêtes OR.
  5. CQL ne prend pas en charge les requêtes génériques.
  6. CQL ne prend pas en charge les requêtes Union, Intersection.
  7. Les colonnes de table ne peuvent pas être filtrées sans créer l'index.
  8. Les requêtes supérieures à (>) et inférieures à (<) ne sont prises en charge que sur la colonne de clustering.

    Le langage de requête Cassandra n'est pas adapté à des fins d'analyse car il présente de nombreuses limitations.

Clause Où Cassandra

Dans Cassandra, la récupération des données est une question sensible. La colonne est filtrée dans Cassandra en créant un index sur les colonnes de clé non primaire.

Syntaxe

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

Exemple

  • Voici l'instantané qui montre la récupération des données de la table Student sans filtrage des données.
select * from University.Student;

Deux enregistrements sont extraits de la table Student.

  • Voici l'instantané qui montre la récupération des données de Student avec filtrage des données. Un enregistrement est récupéré.

Les données sont filtrées par colonne de nom. Tous les enregistrements dont le nom est égal à Guru99 sont récupérés.

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