Apache Derby - Daten löschen
Die DELETE-Anweisung wird verwendet, um Zeilen einer Tabelle zu löschen. Genau wie die UPDATE-Anweisung bietet Apache Derby zwei Arten von Löschen (Syntax):searched löschen und positioned löschen.
Die gesuchte delete-Anweisung löscht alle angegebenen Spalten einer Tabelle.
Syntax
Die Syntax der DELETE-Anweisung lautet wie folgt:
ij> DELETE FROM table_name WHERE condition;
Beispiel
Nehmen wir an, wir haben eine Tabelle mit dem Namen "Mitarbeiter" mit 5 Datensätzen (siehe unten).
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
Die folgende SQL DELETE-Anweisung löscht den Datensatz mit dem Namen Trupti.
ij> DELETE FROM Employees WHERE Name = 'Trupti';
1 row inserted/updated/deleted
Wenn Sie den Inhalt der Tabelle "Mitarbeiter" erhalten, werden nur vier Datensätze angezeigt (siehe unten).
ID |NAME |SALARY |LOCATION
----------------------------------------------------------------------------
1 |Amit |30000 |Hyderabad
2 |Kalyan |40000 |Vishakhapatnam
3 |Renuka |50000 |Delhi
4 |Archana |15000 |Mumbai
4 rows selected
Führen Sie dieselbe Abfrage ohne where-Klausel aus, um alle Datensätze in der Tabelle zu löschen.
ij> DELETE FROM Employees;
4 rows inserted/updated/deleted
Wenn Sie nun versuchen, den Inhalt der Employee-Tabelle abzurufen, erhalten Sie eine leere Tabelle wie unten angegeben -
ij> select * from employees;
ID |NAME |SALARY |LOCATION
--------------------------------------------------------
0 rows selected
Daten mit dem JDBC-Programm löschen
In diesem Abschnitt wird erläutert, wie Sie die vorhandenen Datensätze einer Tabelle in der Apache Derby-Datenbank mithilfe der JDBC-Anwendung löschen.
Wenn Sie den Derby-Netzwerkserver über den Netzwerkclient anfordern möchten, stellen Sie sicher, dass der Server betriebsbereit ist. Der Klassenname für den Netzwerkclienttreiber lautet org.apache.derby.jdbc.ClientDriver und die URL lautet jdbc: derby: // localhost: 1527 /DATABASE_NAME;create = true; user =USER_NAME;passw ord =PASSWORD".
Führen Sie die folgenden Schritte aus, um die vorhandenen Datensätze einer Tabelle in Apache Derby zu löschen: / p>
Schritt 1: Registrieren Sie den Treiber
Zunächst müssen Sie den Treiber registrieren, um mit der Datenbank zu kommunizieren. DasforName() Methode der Klasse ClassAkzeptiert einen String-Wert, der einen Klassennamen darstellt, lädt ihn in den Speicher, der ihn automatisch registriert. Registrieren Sie den Treiber mit dieser Methode.
Schritt 2: Stellen Sie die Verbindung her
Im Allgemeinen besteht der erste Schritt zur Kommunikation mit der Datenbank darin, eine Verbindung mit der Datenbank herzustellen. DasConnectionKlasse repräsentiert die physische Verbindung mit einem Datenbankserver. Sie können ein Verbindungsobjekt erstellen, indem Sie das aufrufengetConnection() Methode der DriverManagerKlasse. Erstellen Sie mit dieser Methode eine Verbindung.
Schritt 3: Erstellen Sie ein Anweisungsobjekt
Sie müssen eine erstellen Statement oder PreparedStatement or, CallableStatementObjekte zum Senden von SQL-Anweisungen an die Datenbank. Sie können diese mit den Methoden erstellencreateStatement(), prepareStatement() and, prepareCall()beziehungsweise. Erstellen Sie eines dieser Objekte mit der entsprechenden Methode.
Schritt 4: Führen Sie die Abfrage aus
Nachdem Sie eine Anweisung erstellt haben, müssen Sie sie ausführen. DasStatement Klasse bietet verschiedene Methoden, um eine Abfrage wie die auszuführen execute()Methode zum Ausführen einer Anweisung, die mehr als eine Ergebnismenge zurückgibt. DasexecuteUpdate()Methode führt Abfragen wie INSERT, UPDATE, DELETE aus. DasexecuteQuery()Methodenergebnisse, die Daten zurückgeben. Verwenden Sie eine dieser Methoden und führen Sie die zuvor erstellte Anweisung aus.
Beispiel
Das folgende JDBC-Beispiel zeigt, wie die vorhandenen Datensätze einer Tabelle in Apache Derby mit dem JDBC-Programm gelöscht werden. Hier stellen wir mithilfe des eingebetteten Treibers eine Verbindung zu einer Datenbank mit dem Namen sampleDB her (wird erstellt, wenn sie nicht vorhanden ist).
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);
}
}
Ausgabe
Wenn Sie das obige Programm ausführen, erhalten Sie die folgende Ausgabe:
Number of records deleted are: 1