DMLdeclaraciones (lenguaje de manipulación de datos) en Amazon Keyspaces - Amazon Keyspaces (para Apache Cassandra)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

DMLdeclaraciones (lenguaje de manipulación de datos) en Amazon Keyspaces

El lenguaje de manipulación de datos (DML) es el conjunto de sentencias de Cassandra Query Language (CQL) que se utilizan para gestionar los datos en las tablas de Amazon Keyspaces (para Apache Cassandra). DMLLas sentencias se utilizan para añadir, modificar o eliminar datos de una tabla.

También se utilizan DML sentencias para consultar los datos de una tabla. (Ten en cuenta que CQL no admite uniones ni subconsultas).

SELECT

Usa una SELECT sentencia para consultar datos.

Sintaxis

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 ] )*

Ejemplos

SELECT name, id, manager_id FROM "myGSGKeyspace".employees_tbl ; SELECT JSON name, id, manager_id FROM "myGSGKeyspace".employees_tbl ;

Para ver una tabla que asigna tipos de datos JSON codificados a tipos de datos de Amazon Keyspaces, consulte. JSONcodificación de los tipos de datos de Amazon Keyspaces

Uso de la palabra clave IN

La palabra clave IN especifica la igualdad de uno o más valores. Se puede aplicar a la clave de partición y a la columna de agrupación. Los resultados se devuelven en el orden en que se presentan las claves en la instrucción SELECT.

Ejemplos

SELECT * from mykeyspace.mytable WHERE primary.key1 IN (1,2) and clustering.key1 = 2; SELECT * from mykeyspace.mytable WHERE primary.key1 IN (1,2) and clustering.key1 <= 2; SELECT * from mykeyspace.mytable WHERE primary.key1 = 1 and clustering.key1 IN (1, 2); SELECT * from mykeyspace.mytable WHERE primary.key1 <= 2 and clustering.key1 IN (1, 2) ALLOW FILTERING;

Para obtener más información sobre la palabra clave IN y la forma en que Amazon Keyspaces procesa la instrucción, consulte Uso del operador IN con la instrucción SELECT en Amazon Keyspaces.

Ordenación de los resultados

La cláusula ORDER BY especifica el orden de clasificación de los resultados devueltos. Toma como argumentos una lista de nombres de columnas junto con el orden de clasificación de cada columna. Solo puede especificar columnas de agrupación en las cláusulas de ordenación. Las columnas no agrupadas no están permitidas. Las opciones de ordenación son ASC para ordenación ascendente y DESC para ordenación descendente. Si se omite el orden de clasificación, se utiliza el orden predeterminado de la columna de agrupación. Acerca de los posibles criterios de ordenación, consulte. Ordenación de resultados en Amazon Keyspaces

Ejemplo

SELECT name, id, division, manager_id FROM "myGSGKeyspace".employees_tbl WHERE id = '012-34-5678' ORDER BY division;

Al utilizar ORDER BY con la palabra clave IN, los resultados se ordenan dentro de una página. No se admite la reordenación completa con la paginación deshabilitada.

TOKEN

Puede aplicar la función TOKEN a la columna PARTITION KEY en las cláusulas SELECT y WHERE. Con la función TOKEN, Amazon Keyspaces devuelve filas basadas en el valor del token asignado de la PARTITION_KEY en lugar de en el valor de la PARTITION KEY.

Las relaciones TOKEN no se admiten con la palabra clave IN.

Ejemplos

SELECT TOKEN(id) from my_table; SELECT TOKEN(id) from my_table WHERE TOKEN(id) > 100 and TOKEN(id) < 10000;

TTLfunción

Puede utilizar la función TTL con la instrucción SELECT para recuperar el tiempo de caducidad en segundos que se almacena para una columna. Si no se establece ningún valor TTL, la función devuelve null.

Ejemplo

SELECT TTL(my_column) from my_table;

La función TTL no se puede utilizar en columnas multicelda, como las colecciones.

Función de WRITETIME

Puede utilizar la función WRITETIME con la instrucción SELECT para recuperar la marca de tiempo que se almacena como metadatos para el valor de una columna solo si la tabla utiliza marcas de tiempo en el lado del cliente. Para obtener más información, consulte Funcionamiento de las marcas de tiempo del lado del cliente en Amazon Keyspaces.

SELECT WRITETIME(my_column) from my_table;

La función WRITETIME no se puede utilizar en columnas multicelda, como las colecciones.

nota

Para garantizar la compatibilidad con el comportamiento establecido de los controladores de Cassandra, las políticas de autorización basadas en etiquetas no se aplican cuando se realizan operaciones en las tablas del sistema mediante API llamadas al lenguaje de consulta de Cassandra (CQL) a través de los controladores y las herramientas de desarrollo de Cassandra. Para obtener más información, consulte Acceso a recursos de Amazon Keyspaces basado en etiquetas.

INSERT

Utilice la instrucción INSERT para añadir una fila a una tabla.

Sintaxis

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 )* ')'

Ejemplo

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') ;

Actualización de parámetros

INSERT admite los siguientes valores como update_parameter:

  • TTL: un valor de tiempo en segundos. El valor máximo configurable es de 630 720 000 segundos, lo que equivale a 20 años.

  • TIMESTAMP— Un bigint valor que representa el número de microsegundos transcurridos desde la hora base estándar conocida comoepoch: 1 de enero de 1970 a las 00:00:00 horas. GMT Una marca de tiempo en Amazon Keyspaces debe estar comprendida entre 2 días en el pasado y 5 minutos en el futuro.

Ejemplo

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;

JSONsoporte

Para ver una tabla que asigna tipos de datos JSON codificados a tipos de datos de Amazon Keyspaces, consulte. JSONcodificación de los tipos de datos de Amazon Keyspaces

Puede utilizar la palabra clave JSON para insertar un mapa codificado con JSON como una única fila. En el caso de las columnas que existen en la tabla pero que se omiten en la instrucción de JSON inserción, utilícelas DEFAULT UNSET para conservar los valores existentes. Se utiliza DEFAULT NULL para escribir un NULL valor en cada fila de columnas omitidas y sobrescribir los valores existentes (se aplican los cargos de escritura estándar). DEFAULT NULLes la opción por defecto.

Ejemplo

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 los JSON datos contienen claves duplicadas, Amazon Keyspaces almacena el último valor de la clave (similar a Apache Cassandra). En el siguiente ejemplo, en el que la clave duplicada es id, se utiliza el valor 234-56-7890.

Ejemplo

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

Utilice la instrucción UPDATE para modificar una fila en una tabla.

Sintaxis

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

Ejemplo

UPDATE "myGSGKeyspace".employees_tbl SET pay_scale = 5 WHERE id = '567-89-0123' AND division = 'Marketing' ;

Para incrementar un counter, utilice la siguiente sintaxis. Para obtener más información, consulte Contadores.

UPDATE ActiveUsers SET counter = counter + 1 WHERE user = A70FE1C0-5408-4AE3-BE34-8733E5K09F14 AND action = 'click';

Actualización de parámetros

UPDATE admite los siguientes valores como update_parameter:

  • TTL: un valor de tiempo en segundos. El valor máximo configurable es de 630 720 000 segundos, lo que equivale a 20 años.

  • TIMESTAMP— Un bigint valor que representa el número de microsegundos transcurridos desde la hora base estándar conocida comoepoch: 1 de enero de 1970 a las 00:00:00 horas. GMT Una marca de tiempo en Amazon Keyspaces debe estar comprendida entre 2 días en el pasado y 5 minutos en el futuro.

Ejemplo

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

Utilice la instrucción DELETE para eliminar una fila en una tabla.

Sintaxis

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

Donde:

  • table_name es la tabla que contiene la fila que desea eliminar.

Ejemplo

DELETE manager_id FROM "myGSGKeyspace".employees_tbl WHERE id='789-01-2345' AND division='Executive' ;

DELETE admite el siguiente valor como update_parameter:

  • TIMESTAMP— Un bigint valor que representa el número de microsegundos desde la hora base estándar, conocida comoepoch: 1 de enero de 1970 a las 00:00:00 GMT