Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
DMListruzioni (linguaggio di manipolazione dei dati) in Amazon Keyspaces
Data manipulation language (DML) è l'insieme di istruzioni Cassandra Query Language (CQL) che usi per gestire i dati nelle tabelle Amazon Keyspaces (per Apache Cassandra). DMLLe istruzioni vengono utilizzate per aggiungere, modificare o eliminare dati in una tabella.
DMLLe istruzioni vengono utilizzate anche per interrogare i dati in una tabella. (Tieni presente che CQL non supporta join o sottoquery).
SELECT
Usa un'SELECTistruzione per interrogare i dati.
Sintassi
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 ] )*
Examples (Esempi)
SELECT name, id, manager_id FROM "myGSGKeyspace".employees_tbl ; SELECT JSON name, id, manager_id FROM "myGSGKeyspace".employees_tbl ;
Per una tabella che mappa i tipi JSON di dati con codifica ai tipi di dati di Amazon Keyspaces, consulta. JSONcodifica dei tipi di dati di Amazon Keyspaces
Utilizzo della parola chiave IN
La IN
parola chiave specifica l'uguaglianza per uno o più valori. Può essere applicata alla chiave di partizione e alla colonna di clustering. I risultati vengono restituiti nell'ordine in cui le chiavi sono presentate nell'SELECT
istruzione.
Examples (Esempi)
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;
Per ulteriori informazioni sulla IN
parola chiave e su come Amazon Keyspaces elabora l'istruzione, consulta. Usa l'INoperatore con l'SELECTistruzione in una query in Amazon Keyspaces
Ordinamento dei risultati
La ORDER BY
clausola specifica l'ordinamento dei risultati restituiti. Prende come argomenti un elenco di nomi di colonna insieme all'ordinamento per ogni colonna. È possibile specificare le colonne di raggruppamento solo nelle clausole di ordinamento. Le colonne non raggruppate non sono consentite. Le opzioni di ordinamento sono ASC
per l'ordinamento crescente e DESC
per l'ordinamento decrescente. Se l'ordinamento viene omesso, viene utilizzato l'ordinamento predefinito della colonna di raggruppamento. Per i possibili tipi di ordinamento, vedere. Ordina i risultati con ORDER BY in Amazon Keyspaces
Esempio
SELECT name, id, division, manager_id FROM "myGSGKeyspace".employees_tbl WHERE id = '012-34-5678' ORDER BY division;
Quando si utilizza ORDER BY
con la IN
parola chiave, i risultati vengono ordinati all'interno di una pagina. Il riordino completo con impaginazione disabilitata non è supportato.
TOKEN
È possibile applicare la TOKEN
funzione alla PARTITION KEY
colonna e alle clausole. SELECT
WHERE
Con la TOKEN
funzione, Amazon Keyspaces restituisce le righe in base al valore del token mappato di PARTITION_KEY
anziché al valore di. PARTITION KEY
TOKEN
le relazioni non sono supportate con la IN
parola chiave.
Examples (Esempi)
SELECT TOKEN(id) from
my_table
; SELECT TOKEN(id) frommy_table
WHERE TOKEN(id) > 100 and TOKEN(id) < 10000;
TTLfunzione
È possibile utilizzare la TTL
funzione con l'SELECT
istruzione per recuperare il tempo di scadenza in secondi memorizzato per una colonna. Se non è impostato alcun TTL
valore, la funzione restituiscenull
.
Esempio
SELECT TTL(
my_column
) frommy_table
;
La TTL
funzione non può essere utilizzata su colonne a celle multiple come le raccolte.
WRITETIME funzione
È possibile utilizzare la WRITETIME
funzione con l'SELECT
istruzione per recuperare il timestamp archiviato come metadati per il valore di una colonna solo se la tabella utilizza timestamp lato client. Per ulteriori informazioni, consulta Timestamp lato client in Amazon Keyspaces.
SELECT WRITETIME(
my_column
) frommy_table
;
La WRITETIME
funzione non può essere utilizzata su colonne a celle multiple come le raccolte.
Nota
Per motivi di compatibilità con il comportamento consolidato dei driver Cassandra, le politiche di autorizzazione basate su tag non vengono applicate quando si eseguono operazioni sulle tabelle di sistema utilizzando API chiamate Cassandra Query Language (CQL) tramite i driver Cassandra e gli strumenti di sviluppo. Per ulteriori informazioni, consulta Accesso alle risorse Amazon Keyspaces basato su tag.
INSERT
Utilizzate l'INSERT
istruzione per aggiungere una riga a una tabella.
Sintassi
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 )* ')'
Esempio
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') ;
Aggiorna i parametri
INSERT
supporta i seguenti valori comeupdate_parameter
:
TTL
— Un valore temporale in secondi. Il valore massimo configurabile è 630.720.000 secondi, che equivale a 20 anni.TIMESTAMP
— Unbigint
valore che rappresenta il numero di microsecondi trascorsi dall'ora base standard nota come epoch: 1° gennaio 1970 alle GMT 00:00. Un timestamp in Amazon Keyspaces deve essere compreso tra 2 giorni passati e 5 minuti futuri.
Esempio
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;
JSONsupporto
Per una tabella che mappa i tipi JSON di dati con codifica ai tipi di dati di Amazon Keyspaces, consulta. JSONcodifica dei tipi di dati di Amazon Keyspaces
Puoi usare la JSON
parola chiave per inserire una mappa con JSON
codifica come riga singola. Per le colonne che esistono nella tabella ma sono omesse nell'istruzione JSON insert, utilizzate DEFAULT UNSET
per preservare i valori esistenti. DEFAULT NULL
Utilizzatelo per scrivere un NULL valore in ogni riga di colonne omesse e sovrascrivere i valori esistenti (si applicano le tariffe di scrittura standard). DEFAULT
NULL
è l'opzione predefinita.
Esempio
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"}';
Se i JSON dati contengono chiavi duplicate, Amazon Keyspaces memorizza l'ultimo valore per la chiave (simile a Apache Cassandra). Nell'esempio seguente, dove si trova la chiave duplicataid
, viene utilizzato il valore. 234-56-7890
Esempio
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
Utilizzate l'UPDATE
istruzione per modificare una riga in una tabella.
Sintassi
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
Esempio
UPDATE "myGSGKeyspace".employees_tbl SET pay_scale = 5 WHERE id = '567-89-0123' AND division = 'Marketing' ;
Per incrementare acounter
, utilizzare la seguente sintassi. Per ulteriori informazioni, consulta Contatori.
UPDATE ActiveUsers SET counter = counter + 1 WHERE user = A70FE1C0-5408-4AE3-BE34-8733E5K09F14 AND action = 'click';
Aggiorna i parametri
UPDATE
supporta i seguenti valori comeupdate_parameter
:
TTL
— Un valore temporale in secondi. Il valore massimo configurabile è 630.720.000 secondi, che equivale a 20 anni.TIMESTAMP
— Unbigint
valore che rappresenta il numero di microsecondi trascorsi dall'ora base standard nota come epoch: 1° gennaio 1970 alle GMT 00:00. Un timestamp in Amazon Keyspaces deve essere compreso tra 2 giorni passati e 5 minuti futuri.
Esempio
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
Usa l'DELETE
istruzione per rimuovere una riga da una tabella.
Sintassi
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
Dove:
-
table_name
è la tabella che contiene la riga da eliminare.
Esempio
DELETE manager_id FROM "myGSGKeyspace".employees_tbl WHERE id='789-01-2345' AND division='Executive' ;
DELETE
supporta il seguente valore comeupdate_parameter
:
TIMESTAMP
— Unbigint
valore che rappresenta il numero di microsecondi trascorsi dal tempo base standard noto come epoch: 1° gennaio 1970 alle GMT 00:00.