Cassandra - Eliminar datos
Eliminar datos de una tabla
Puede eliminar datos de una tabla usando el comando DELETE. Su sintaxis es la siguiente:
DELETE FROM <identifier> WHERE <condition>;
Ejemplo
Supongamos que hay una mesa en Cassandra llamada emp teniendo los siguientes datos -
emp_id | emp_name | emp_city | emp_phone | emp_sal |
---|---|---|---|---|
1 | RAM | Hyderabad | 9848022338 | 50000 |
2 | Robin | Hyderabad | 9848022339 | 40000 |
3 | Rahman | Chennai | 9848022330 | 45000 |
La siguiente declaración elimina la columna emp_sal de la última fila:
cqlsh:tutorialspoint> DELETE emp_sal FROM emp WHERE emp_id=3;
Verificación
Utilice la instrucción SELECT para verificar si los datos se han eliminado o no. Si verifica la tabla emp usando SELECT, producirá la siguiente salida:
cqlsh:tutorialspoint> select * from emp;
emp_id | emp_city | emp_name | emp_phone | emp_sal
--------+-----------+----------+------------+---------
1 | Hyderabad | ram | 9848022338 | 50000
2 | Delhi | robin | 9848022339 | 50000
3 | Chennai | rahman | 9848022330 | null
(3 rows)
Dado que hemos eliminado el salario de Rahman, observará un valor nulo en lugar del salario.
Eliminar una fila completa
El siguiente comando elimina una fila completa de una tabla.
cqlsh:tutorialspoint> DELETE FROM emp WHERE emp_id=3;
Verificación
Utilice la instrucción SELECT para verificar si los datos se han eliminado o no. Si verifica la tabla emp usando SELECT, producirá la siguiente salida:
cqlsh:tutorialspoint> select * from emp;
emp_id | emp_city | emp_name | emp_phone | emp_sal
--------+-----------+----------+------------+---------
1 | Hyderabad | ram | 9848022338 | 50000
2 | Delhi | robin | 9848022339 | 50000
(2 rows)
Dado que hemos eliminado la última fila, solo quedan dos filas en la tabla.
Eliminar datos mediante la API de Java
Puede eliminar datos en una tabla usando el método execute () de la clase Session. Siga los pasos que se indican a continuación para eliminar datos de una tabla utilizando la API de Java.
Paso 1: crear un objeto de clúster
Crea una instancia de Cluster.builder clase de com.datastax.driver.core paquete como se muestra a continuación.
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
Agregue un punto de contacto (dirección IP del nodo) usando el addContactPoint() método de Cluster.Builderobjeto. Este método devuelveCluster.Builder.
//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
Con el nuevo objeto generador, cree un objeto de clúster. Para hacerlo, tienes un método llamadobuild() en el Cluster.Builderclase. Utilice el siguiente código para crear un objeto de clúster.
//Building a cluster
Cluster cluster = builder.build();
Puede crear el objeto de clúster con una sola línea de código como se muestra a continuación.
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
Paso 2: crear un objeto de sesión
Cree una instancia del objeto Session utilizando el método connect () de la clase Cluster como se muestra a continuación.
Session session = cluster.connect();
Este método crea una nueva sesión y la inicializa. Si ya tiene un espacio de claves, puede establecerlo en el existente pasando el nombre del espacio de claves en formato de cadena a este método como se muestra a continuación.
Session session = cluster.connect(“ Your keyspace name ”);
Aquí estamos usando el KeySpace llamado tp. Por lo tanto, cree el objeto de sesión como se muestra a continuación.
Session session = cluster.connect(“tp”);
Paso 3: ejecutar la consulta
Puede ejecutar consultas CQL utilizando el método execute () de la clase Session. Pase la consulta en formato de cadena o como un objeto de clase Statement al método execute (). Todo lo que pase a este método en formato de cadena se ejecutará en elcqlsh.
En el siguiente ejemplo, estamos eliminando datos de una tabla llamada emp. Tienes que almacenar la consulta en una variable de cadena y pasarla al execute() método como se muestra a continuación.
String query1 = ”DELETE FROM emp WHERE emp_id=3; ”;
session.execute(query);
A continuación se muestra el programa completo para eliminar datos de una tabla en Cassandra usando la API de Java.
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
public class Delete_Data {
public static void main(String args[]){
//query
String query = "DELETE FROM emp WHERE emp_id=3;";
//Creating Cluster object
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//Creating Session object
Session session = cluster.connect("tp");
//Executing the query
session.execute(query);
System.out.println("Data deleted");
}
}
Guarde el programa anterior con el nombre de la clase seguido de .java, busque la ubicación donde está guardado. Compile y ejecute el programa como se muestra a continuación.
$javac Delete_Data.java
$java Delete_Data
En condiciones normales, debería producir la siguiente salida:
Data deleted