Apache Derby - Elimina dati

L'istruzione DELETE viene utilizzata per eliminare le righe di una tabella. Proprio come l'istruzione UPDATE, Apache Derby fornisce due tipi di eliminazione (sintassi):searched elimina e positioned Elimina.

L'istruzione di eliminazione ricercata elimina tutte le colonne specificate di una tabella.

Sintassi

La sintassi dell'istruzione DELETE è la seguente:

ij> DELETE FROM table_name WHERE condition;

Esempio

Supponiamo di avere una tabella denominata dipendente con 5 record come mostrato di seguito:

ID |NAME |SALARY |LOCATION
----------------------------------------------------------------------------
1 |Amit |30000 |Hyderabad
2 |Kalyan |40000 |Vishakhapatnam
3 |Renuka |50000 |Delhi
4 |Archana |15000 |Mumbai
5 |Trupti |45000 |Kochin
5 rows selected

La seguente istruzione SQL DELETE cancella il record con il nome Trupti.

ij> DELETE FROM Employees WHERE Name = 'Trupti';
1 row inserted/updated/deleted

Se ottieni il contenuto della tabella Dipendenti, puoi vedere solo quattro record come mostrato di seguito:

ID |NAME |SALARY |LOCATION
----------------------------------------------------------------------------
1 |Amit |30000 |Hyderabad
2 |Kalyan |40000 |Vishakhapatnam
3 |Renuka |50000 |Delhi
4 |Archana |15000 |Mumbai 
4 rows selected

Per eliminare tutti i record nella tabella, eseguire la stessa query senza la clausola where.

ij> DELETE FROM Employees;
4 rows inserted/updated/deleted

Ora, se provi a ottenere il contenuto della tabella Employee, otterrai una tabella vuota come indicato di seguito -

ij> select * from employees;
ID |NAME |SALARY |LOCATION
--------------------------------------------------------
0 rows selected

Elimina i dati utilizzando il programma JDBC

Questa sezione spiega come eliminare i record esistenti di una tabella nel database Apache Derby utilizzando l'applicazione JDBC.

Se desideri richiedere il server di rete Derby utilizzando il client di rete, assicurati che il server sia attivo e funzionante. Il nome della classe per il driver del client di rete è org.apache.derby.jdbc.ClientDriver e l'URL è jdbc: derby: // localhost: 1527 /DATABASE_NAME;creare = vero; utente =USER_NAME;passw ord =PASSWORD".

Seguire i passaggi indicati di seguito per eliminare i record esistenti di una tabella in Apache Derby: / p>

Passaggio 1: registra il driver

In primo luogo, è necessario registrare il driver per comunicare con il database. IlforName() metodo della classe Classaccetta un valore String che rappresenta il nome di una classe lo carica nella memoria, che lo registra automaticamente. Registra il driver utilizzando questo metodo.

Passaggio 2: ottieni la connessione

In generale, il primo passo che facciamo per comunicare con il database è connetterci con esso. IlConnectionclass rappresenta la connessione fisica con un server di database. È possibile creare un oggetto connessione richiamando il filegetConnection() metodo del DriverManagerclasse. Crea una connessione usando questo metodo.

Passaggio 3: creare un oggetto istruzione

Devi creare un file Statement o PreparedStatement or, CallableStatementoggetti per inviare istruzioni SQL al database. Puoi crearli usando i metodicreateStatement(), prepareStatement() and, prepareCall()rispettivamente. Crea uno di questi oggetti utilizzando il metodo appropriato.

Passaggio 4: eseguire la query

Dopo aver creato un'istruzione, è necessario eseguirla. IlStatement class fornisce vari metodi per eseguire una query come il execute()metodo per eseguire un'istruzione che restituisce più di un set di risultati. IlexecuteUpdate()metodo esegue query come INSERT, UPDATE, DELETE. IlexecuteQuery()risultati del metodo che restituisce dati. Utilizzare uno di questi metodi ed eseguire l'istruzione creata in precedenza.

Esempio

Il seguente esempio JDBC dimostra come eliminare i record esistenti di una tabella in Apache Derby utilizzando il programma JDBC. Qui, ci stiamo connettendo a un database denominato sampleDB (creerà se non esiste) utilizzando il driver incorporato.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DeleteData {
   public static void main(String args[]) throws Exception {
      //Registering the driver
      Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
      //Getting the Connection object
      String URL = "jdbc:derby:sampleDB;create=true";
      Connection conn = DriverManager.getConnection(URL);

      //Creating the Statement object
      Statement stmt = conn.createStatement();
      //Creating a table and populating it
      String query = "CREATE TABLE Employees("
         + "Id INT NOT NULL GENERATED ALWAYS AS IDENTITY, "
         + "Name VARCHAR(255), Salary INT NOT NULL, "
         + "Location VARCHAR(255), "
         + "PRIMARY KEY (Id))";
      String query = "INSERT INTO Employees("
         + "Name, Salary, Location) VALUES "
         + "('Amit', 30000, 'Hyderabad'), "
         + "('Kalyan', 40000, 'Vishakhapatnam'), "
         + "('Renuka', 50000, 'Delhi'), "
         + "('Archana', 15000, 'Mumbai'), "
         + "('Trupthi', 45000, 'Kochin'), "
         + "('Suchatra', 33000, 'Pune'), "
         + "('Rahul', 39000, 'Lucknow'), "
         + "('Trupthi', 45000, 'Kochin')";
      //Executing the query
      String query = "DELETE FROM Employees WHERE Name = 'Trupthi'";
      int num = stmt.executeUpdate(query);
      System.out.println("Number of records deleted are: "+num);
   }
}

Produzione

Eseguendo il programma sopra, otterrai il seguente output:

Number of records deleted are: 1