Cassandra : Gestion de données (INSERT et SELECT)

l'UTC pour tous ! V3

On continue !

On souhaite maintenant stocker dans la base, les numéros de téléphones des étudiants, évidemment, les étudiants ont plusieurs numéros sur lesquels ils peuvent être contactés.

Question

Comment pouvons-nous gérer les numéros de téléphones dans la base ?

Indice

Cassandra ne supporte pas les jointures.

Solution

On peut soit insérer une colonne à chaque étudiant pour chaque numéro de téléphone OU on peut créer une collection pour chaque étudiant regroupant leurs numéros de téléphone.

Question

Modifiez la famille de colonnes pour ajouter une collection de numéros de téléphone sachant qu'un numéro de téléphone est constitué uniquement d'un varchar.

Indice

Utilisez la syntaxe ALTER TABLE nom_table ADD...

Indice

Utilisez une collection de type SET.

Solution
1
ALTER TABLE UTCeen ADD telephones set<varchar>;

Question

Mettez à jour la collection de téléphone d'un UTCeen en y ajoutant les numéros de téléphone "0102030405" et "0605020301".

Indice

UPDATE <nom table> SET <nom collection> = <nom collection> + {'numero1','numero2', ...} WHERE <clé_primaire> = <id> ;

Solution
1
 UPDATE UTCeen SET telephones = telephones + {'0102030405','0605020301'} WHERE id = <id au choix>;

Question

Cherchez les lignes dont la colonne "téléphones" contient "0102030405".

Indice

Créez le second index.

Indice

Comme la colonne "téléphones" est un set, utilisez la syntaxe CONTAINS.

Solution
1
create index on utceen(telephones);
2
select * from utceen where telephones contains '0102030405';

Question

Enlevez le numéro "0102030405" de la collection de l'UTCeen.

Indice

Utilisez la clause UPDATE.

Indice

Un seul : utilisez SET <nom colonne> = <nom colonne> - {<numero à enlever>} WHERE id=<id>.

Tous :

  • UPDATE ... SET ...

  • DELETE.

Solution

Pour enlever le numéro "0102030405" :

1
UPDATE UTCeen SET telephones = telephones - {'0102030405'} WHERE id=<id de votre choix>;

Pour enlever tous les numéros, on a 2 possibilités :

1
UPDATE UTCeen SET telephones = {} WHERE id=<id de votre choix>;
2
ou
3
DELETE telephones FROM UTCeen WHERE id=<id de votre choix>;
PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Sofian Toujja, Mathieu Moulin, Emilie Confais, Alaeddine Hajjem, David Martins, 2014-2017 (Contributions : Stéphane Crozat, les étudiants de l'UTC) Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)