Cassandra - Collections CQL
CQL offre la possibilité d'utiliser les types de données Collection. En utilisant ces types de collection, vous pouvez stocker plusieurs valeurs dans une seule variable. Ce chapitre explique comment utiliser les collections dans Cassandra.
liste
La liste est utilisée dans les cas où
- l'ordre des éléments doit être maintenu, et
- une valeur doit être stockée plusieurs fois.
Vous pouvez obtenir les valeurs d'un type de données de liste à l'aide de l'index des éléments de la liste.
Créer une table avec une liste
Vous trouverez ci-dessous un exemple pour créer un exemple de table avec deux colonnes, nom et e-mail. Pour stocker plusieurs e-mails, nous utilisons la liste.
cqlsh:tutorialspoint> CREATE TABLE data(name text PRIMARY KEY, email list<text>);
Insertion de données dans une liste
Lors de l'insertion de données dans les éléments d'une liste, entrez toutes les valeurs séparées par une virgule entre crochets [] comme indiqué ci-dessous.
cqlsh:tutorialspoint> INSERT INTO data(name, email) VALUES ('ramu',
['[email protected]','[email protected]'])
Mettre à jour une liste
Vous trouverez ci-dessous un exemple pour mettre à jour le type de données de liste dans une table appelée data. Ici, nous ajoutons un autre e-mail à la liste.
cqlsh:tutorialspoint> UPDATE data
... SET email = email +['[email protected]']
... where name = 'ramu';
Vérification
Si vous vérifiez la table à l'aide de l'instruction SELECT, vous obtiendrez le résultat suivant -
cqlsh:tutorialspoint> SELECT * FROM data;
name | email
------+--------------------------------------------------------------
ramu | ['[email protected]', '[email protected]', '[email protected]']
(1 rows)
ENSEMBLE
Set est un type de données utilisé pour stocker un groupe d'éléments. Les éléments d'un ensemble seront renvoyés dans un ordre trié.
Créer une table avec un ensemble
L'exemple suivant crée un exemple de table avec deux colonnes, nom et téléphone. Pour stocker plusieurs numéros de téléphone, nous utilisons set.
cqlsh:tutorialspoint> CREATE TABLE data2 (name text PRIMARY KEY, phone set<varint>);
Insertion de données dans un ensemble
Lors de l'insertion de données dans les éléments d'un ensemble, entrez toutes les valeurs séparées par une virgule entre accolades {} comme indiqué ci-dessous.
cqlsh:tutorialspoint> INSERT INTO data2(name, phone)VALUES ('rahman', {9848022338,9848022339});
Mettre à jour un ensemble
Le code suivant montre comment mettre à jour un ensemble dans une table nommée data2. Ici, nous ajoutons un autre numéro de téléphone à l'ensemble.
cqlsh:tutorialspoint> UPDATE data2
... SET phone = phone + {9848022330}
... where name = 'rahman';
Vérification
Si vous vérifiez la table à l'aide de l'instruction SELECT, vous obtiendrez le résultat suivant -
cqlsh:tutorialspoint> SELECT * FROM data2;
name | phone
--------+--------------------------------------
rahman | {9848022330, 9848022338, 9848022339}
(1 rows)
CARTE
Map est un type de données utilisé pour stocker une paire d'éléments clé-valeur.
Créer une table avec une carte
L'exemple suivant montre comment créer un exemple de table avec deux colonnes, nom et adresse. Pour stocker plusieurs valeurs d'adresse, nous utilisons map.
cqlsh:tutorialspoint> CREATE TABLE data3 (name text PRIMARY KEY, address
map<timestamp, text>);
Insertion de données dans une carte
Lors de l'insertion de données dans les éléments d'une carte, saisissez tous les key : value paires séparées par une virgule entre accolades {} comme indiqué ci-dessous.
cqlsh:tutorialspoint> INSERT INTO data3 (name, address)
VALUES ('robin', {'home' : 'hyderabad' , 'office' : 'Delhi' } );
Mettre à jour un ensemble
Le code suivant montre comment mettre à jour le type de données de carte dans une table nommée data3. Ici, nous modifions la valeur du bureau principal, c'est-à-dire que nous changeons l'adresse du bureau d'une personne nommée robin.
cqlsh:tutorialspoint> UPDATE data3
... SET address = address+{'office':'mumbai'}
... WHERE name = 'robin';
Vérification
Si vous vérifiez la table à l'aide de l'instruction SELECT, vous obtiendrez le résultat suivant -
cqlsh:tutorialspoint> select * from data3;
name | address
-------+-------------------------------------------
robin | {'home': 'hyderabad', 'office': 'mumbai'}
(1 rows)