Apache Derby - Supprimer les données

L'instruction DELETE est utilisée pour supprimer des lignes d'une table. Tout comme l'instruction UPDATE, Apache Derby fournit deux types de suppression (syntaxe):searched supprimer et positioned supprimer.

L'instruction de suppression recherchée supprime toutes les colonnes spécifiées d'une table.

Syntaxe

La syntaxe de l'instruction DELETE est la suivante -

ij> DELETE FROM table_name WHERE condition;

Exemple

Supposons que nous ayons une table nommée employé avec 5 enregistrements comme indiqué ci-dessous -

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

L'instruction SQL DELETE suivante supprime l'enregistrement portant le nom Trupti.

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

Si vous obtenez le contenu de la table Employés, vous ne pouvez voir que quatre enregistrements comme indiqué ci-dessous -

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

Pour supprimer tous les enregistrements de la table, exécutez la même requête sans clause where.

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

Maintenant, si vous essayez d'obtenir le contenu de la table Employee, vous obtiendrez une table vide comme indiqué ci-dessous -

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

Supprimer les données à l'aide du programme JDBC

Cette section explique comment supprimer les enregistrements existants d'une table dans la base de données Apache Derby à l'aide de l'application JDBC.

Si vous souhaitez demander le serveur réseau Derby à l'aide du client réseau, assurez-vous que le serveur est opérationnel. Le nom de classe du pilote client réseau est org.apache.derby.jdbc.ClientDriver et l'URL est jdbc: derby: // localhost: 1527 /DATABASE_NAME;create = true; utilisateur =USER_NAME;passw ord =PASSWORD".

Suivez les étapes ci-dessous pour supprimer les enregistrements existants d'une table dans Apache Derby: / p>

Étape 1: enregistrer le pilote

Tout d'abord, vous devez enregistrer le pilote pour communiquer avec la base de données. leforName() méthode de la classe Classaccepte une valeur String représentant un nom de classe la charge dans la mémoire, qui l'enregistre automatiquement. Enregistrez le pilote en utilisant cette méthode.

Étape 2: Obtenez la connexion

En général, la première étape que nous faisons pour communiquer avec la base de données est de nous y connecter. leConnectionLa classe représente la connexion physique avec un serveur de base de données. Vous pouvez créer un objet de connexion en appelant legetConnection() méthode de la DriverManagerclasse. Créez une connexion à l'aide de cette méthode.

Étape 3: créer un objet instruction

Vous devez créer un Statement ou PreparedStatement or, CallableStatementobjets pour envoyer des instructions SQL à la base de données. Vous pouvez les créer en utilisant les méthodescreateStatement(), prepareStatement() and, prepareCall()respectivement. Créez l'un de ces objets en utilisant la méthode appropriée.

Étape 4: exécutez la requête

Après avoir créé une instruction, vous devez l'exécuter. leStatement classe fournit diverses méthodes pour exécuter une requête comme execute()pour exécuter une instruction qui renvoie plusieurs ensembles de résultats. leexecuteUpdate()La méthode exécute des requêtes comme INSERT, UPDATE, DELETE. leexecuteQuery()résultats de la méthode qui renvoie des données. Utilisez l'une de ces méthodes et exécutez l'instruction créée précédemment.

Exemple

L'exemple JDBC suivant montre comment supprimer les enregistrements existants d'une table dans Apache Derby à l'aide du programme JDBC. Ici, nous nous connectons à une base de données nommée sampleDB (créera si elle n'existe pas) en utilisant le pilote intégré.

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

Production

Lors de l'exécution du programme ci-dessus, vous obtiendrez la sortie suivante -

Number of records deleted are: 1