Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Instructions DML (langage de manipulation de données) dans Amazon Keyspaces
Le langage de manipulation de données (DML) est l'ensemble des instructions CQL (Cassandra Query Language) que vous utilisez pour gérer les données dans les tables Amazon Keyspaces (pour Apache Cassandra). Vous utilisez des instructions DML pour ajouter, modifier ou supprimer des données dans une table.
Vous utilisez également les instructions DML pour interroger les données d'une table. (Notez que CQL ne prend pas en charge les jointures ou les sous-requêtes.)
SELECT
Utilisez une instruction SELECT pour interroger les données.
Syntaxe
select_statement ::= SELECT [ JSON ] ( select_clause | '*' ) FROM table_name [ WHERE 'where_clause' ] [ ORDER BY 'ordering_clause' ] [ LIMIT (integer | bind_marker) ] [ ALLOW FILTERING ] select_clause ::= selector [ AS identifier ] ( ',' selector [ AS identifier ] ) selector ::= column_name | term | CAST '(' selector AS cql_type ')' | function_name '(' [ selector ( ',' selector )* ] ')' where_clause ::= relation ( AND relation )* relation ::= column_name operator term TOKEN operator ::= '=' | '<' | '>' | '<=' | '>=' | IN | CONTAINS | CONTAINS KEY ordering_clause ::= column_name [ ASC | DESC ] ( ',' column_name [ ASC | DESC ] )*
Exemples
SELECT name, id, manager_id FROM "myGSGKeyspace".employees_tbl ; SELECT JSON name, id, manager_id FROM "myGSGKeyspace".employees_tbl ;
Pour un tableau qui fait correspondre les types de données codés en JSON aux types de données Amazon Keyspaces, consultez. Encodage JSON des types de données Amazon Keyspaces
Utilisation du IN
mot clé
Le IN
mot clé indique l'égalité pour une ou plusieurs valeurs. Il peut être appliqué à la clé de partition et à la colonne de clustering. Les résultats sont renvoyés dans l'ordre dans lequel les clés sont présentées dans le SELECT
relevé.
Exemples
SELECT * from
mykeyspace.mytable
WHERE primary.key1 IN (1,2) and clustering.key1 = 2; SELECT * frommykeyspace.mytable
WHERE primary.key1 IN (1,2) and clustering.key1 <= 2; SELECT * frommykeyspace.mytable
WHERE primary.key1 = 1 and clustering.key1 IN (1, 2); SELECT * frommykeyspace.mytable
WHERE primary.key1 <= 2 and clustering.key1 IN (1, 2) ALLOW FILTERING;
Pour plus d'informations sur le IN
mot clé et sur la manière dont Amazon Keyspaces traite l'instruction, consultez. Utilisation de l'INopérateur avec la SELECT déclaration dans Amazon Keyspaces
Résultats de commande
La ORDER BY
clause indique l'ordre de tri des résultats renvoyés. Il prend comme arguments une liste de noms de colonnes ainsi que l'ordre de tri de chaque colonne. Vous ne pouvez spécifier des colonnes de clustering que dans les clauses de commande. Les colonnes non groupées ne sont pas autorisées. Les options d'ordre de tri concernent ASC
l'ordre de tri croissant et DESC
décroissant. Si l'ordre de tri est omis, l'ordre par défaut de la colonne de clustering est utilisé. Pour les ordres de tri possibles, voirRésultats des commandes dans Amazon Keyspaces.
Exemple
SELECT name, id, division, manager_id FROM "myGSGKeyspace".employees_tbl WHERE id = '012-34-5678' ORDER BY division;
Lorsque vous utilisez ORDER BY
le IN
mot clé, les résultats sont classés dans une page. La réorganisation complète avec pagination désactivée n'est pas prise en charge.
JETON
Vous pouvez appliquer la TOKEN
fonction à la PARTITION KEY
colonne dans SELECT
et WHERE
aux clauses. Avec cette TOKEN
fonction, Amazon Keyspaces renvoie des lignes en fonction de la valeur du jeton mappé PARTITION_KEY
plutôt que de la valeur du. PARTITION KEY
TOKEN
les relations ne sont pas prises en charge avec le IN
mot clé.
Exemples
SELECT TOKEN(id) from
my_table
; SELECT TOKEN(id) frommy_table
WHERE TOKEN(id) > 100 and TOKEN(id) < 10000;
Fonction TTL
Vous pouvez utiliser la TTL
fonction avec l'SELECT
instruction pour récupérer le délai d'expiration en secondes enregistré pour une colonne. Si aucune TTL
valeur n'est définie, la fonction revientnull
.
Exemple
SELECT TTL(
my_column
) frommy_table
;
La TTL
fonction ne peut pas être utilisée sur des colonnes à plusieurs cellules telles que des collections.
WRITETIMEfonction
Vous pouvez utiliser la WRITETIME
fonction avec l'SELECT
instruction pour récupérer l'horodatage stocké sous forme de métadonnées pour la valeur d'une colonne uniquement si la table utilise des horodatages côté client. Pour plus d’informations, consultez Utilisation des horodatages côté client dans Amazon Keyspaces.
SELECT WRITETIME(
my_column
) frommy_table
;
La WRITETIME
fonction ne peut pas être utilisée sur des colonnes à plusieurs cellules telles que des collections.
Note
Pour des raisons de compatibilité avec le comportement établi du pilote Cassandra, les politiques d'autorisation basées sur les balises ne sont pas appliquées lorsque vous effectuez des opérations sur les tables système à l'aide d'appels d'API Cassandra Query Language (CQL) via les pilotes Cassandra et les outils de développement. Pour plus d’informations, consultez Accès aux ressources Amazon Keyspaces basé sur des balises.
INSERT
Utilisez l'instruction INSERT
pour ajouter une ligne à une table.
Syntaxe
insert_statement ::= INSERT INTO table_name ( names_values | json_clause ) [ IF NOT EXISTS ] [ USING update_parameter ( AND update_parameter )* ] names_values ::= names VALUES tuple_literal json_clause ::= JSON string [ DEFAULT ( NULL | UNSET ) ] names ::= '(' column_name ( ',' column_name )* ')'
Exemple
INSERT INTO "myGSGKeyspace".employees_tbl (id, name, project, region, division, role, pay_scale, vacation_hrs, manager_id) VALUES ('012-34-5678','Russ','NightFlight','US','Engineering','IC',3,12.5, '234-56-7890') ;
Paramètres de mise à jour
INSERT
prend en charge les valeurs suivantes comme suit update_parameter
:
TTL
— Une valeur temporelle en secondes. La valeur maximale configurable est de 630 720 000 secondes, soit l'équivalent de 20 ans.TIMESTAMP
— Unebigint
valeur représentant le nombre de microsecondes écoulées depuis l'heure de base standard connue sous le nom de epoch : 1er janvier 1970 à 00h00 GMT. Dans Amazon Keyspaces, un horodatage doit être compris entre 2 jours dans le passé et 5 minutes dans le futur.
Exemple
INSERT INTO
my_table
(userid, time, subject, body, user) VALUES (B79CB3BA-745E-5D9A-8903-4A02327A7E09, 96a29100-5e25-11ec-90d7-b5d91eceda0a, 'Message', 'Hello','205.212.123.123') USING TTL 259200;
Support JSON
Pour un tableau qui fait correspondre les types de données codés en JSON aux types de données Amazon Keyspaces, consultez. Encodage JSON des types de données Amazon Keyspaces
Vous pouvez utiliser le JSON
mot clé pour insérer une carte JSON
codée sous forme de ligne unique. Pour les colonnes qui existent dans le tableau mais qui sont omises dans l'instruction d'insertion JSON, utilisez-les DEFAULT UNSET
pour conserver les valeurs existantes. DEFAULT NULL
À utiliser pour écrire une valeur NULL dans chaque ligne de colonnes omises et remplacer les valeurs existantes (les frais d'écriture standard s'appliquent). DEFAULT
NULL
est l'option par défaut.
Exemple
INSERT INTO "myGSGKeyspace".employees_tbl JSON '{"id":"012-34-5678", "name": "Russ", "project": "NightFlight", "region": "US", "division": "Engineering", "role": "IC", "pay_scale": 3, "vacation_hrs": 12.5, "manager_id": "234-56-7890"}';
Si les données JSON contiennent des clés dupliquées, Amazon Keyspaces stocke la dernière valeur de la clé (similaire à Apache Cassandra). Dans l'exemple suivant, où se trouve la clé dupliquéeid
, la valeur 234-56-7890
est utilisée.
Exemple
INSERT INTO "myGSGKeyspace".employees_tbl JSON '{"id":"012-34-5678", "name": "Russ", "project": "NightFlight", "region": "US", "division": "Engineering", "role": "IC", "pay_scale": 3, "vacation_hrs": 12.5, "id": "234-56-7890"}';
UPDATE
Utilisez l'instruction UPDATE
pour modifier une ligne d'une table.
Syntaxe
update_statement ::= UPDATE table_name [ USING update_parameter ( AND update_parameter )* ] SET assignment ( ',' assignment )* WHERE where_clause [ IF ( EXISTS | condition ( AND condition )*) ] update_parameter ::= ( integer | bind_marker ) assignment ::= simple_selection '=' term | column_name '=' column_name ( '+' | '-' ) term | column_name '=' list_literal '+' column_name simple_selection ::= column_name | column_name '[' term ']' | column_name '.' `field_name condition ::= simple_selection operator term
Exemple
UPDATE "myGSGKeyspace".employees_tbl SET pay_scale = 5 WHERE id = '567-89-0123' AND division = 'Marketing' ;
Pour incrémenter un counter
, utilisez la syntaxe suivante. Pour plus d’informations, consultez Compteurs.
UPDATE ActiveUsers SET counter = counter + 1 WHERE user = A70FE1C0-5408-4AE3-BE34-8733E5K09F14 AND action = 'click';
Paramètres de mise à jour
UPDATE
prend en charge les valeurs suivantes comme suit update_parameter
:
TTL
— Une valeur temporelle en secondes. La valeur maximale configurable est de 630 720 000 secondes, soit l'équivalent de 20 ans.TIMESTAMP
— Unebigint
valeur représentant le nombre de microsecondes écoulées depuis l'heure de base standard connue sous le nom de epoch : 1er janvier 1970 à 00h00 GMT. Dans Amazon Keyspaces, un horodatage doit être compris entre 2 jours dans le passé et 5 minutes dans le futur.
Exemple
UPDATE
my_table
(userid, time, subject, body, user) VALUES (B79CB3BA-745E-5D9A-8903-4A02327A7E09, 96a29100-5e25-11ec-90d7-b5d91eceda0a, 'Message', 'Hello again','205.212.123.123') USING TIMESTAMP '2022-11-03 13:30:54+0400';
DELETE
Utilisez l'instruction DELETE
pour supprimer une ligne d'une table.
Syntaxe
delete_statement ::= DELETE [ simple_selection ( ',' simple_selection ) ] FROM table_name [ USING update_parameter ( AND update_parameter )* ] WHERE where_clause [ IF ( EXISTS | condition ( AND condition )*) ] simple_selection ::= column_name | column_name '[' term ']' | column_name '.' `field_name condition ::= simple_selection operator term
Où :
-
table_name
est la table qui contient la ligne à supprimer.
Exemple
DELETE manager_id FROM "myGSGKeyspace".employees_tbl WHERE id='789-01-2345' AND division='Executive' ;
DELETE
prend en charge la valeur suivante en tant que update_parameter
:
TIMESTAMP
— Unebigint
valeur représentant le nombre de microsecondes écoulées depuis l'heure de base standard connue sous le nom de epoch : 1er janvier 1970 à 00h00 GMT.