Apache Derby - Xóa dữ liệu

Câu lệnh DELETE được sử dụng để xóa các hàng của bảng. Cũng giống như câu lệnh UPDATE, Apache Derby cung cấp hai kiểu Delete (cú pháp):searched xóa và positioned xóa bỏ.

Câu lệnh xóa được tìm kiếm sẽ xóa tất cả các cột được chỉ định của bảng.

Cú pháp

Cú pháp của câu lệnh DELETE như sau:

ij> DELETE FROM table_name WHERE condition;

Thí dụ

Giả sử chúng ta có một bảng tên là nhân viên với 5 bản ghi như hình dưới đây -

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

Câu lệnh SQL DELETE sau đây xóa bản ghi có tên Trupti.

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

Nếu bạn nhận được nội dung của bảng Nhân viên, bạn chỉ có thể thấy bốn bản ghi như được hiển thị bên dưới:

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

Để xóa tất cả các bản ghi trong bảng, hãy thực hiện cùng một truy vấn mà không có mệnh đề where.

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

Bây giờ, nếu bạn cố gắng lấy nội dung của bảng Nhân viên, bạn sẽ nhận được một bảng trống như dưới đây:

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

Xóa dữ liệu bằng chương trình JDBC

Phần này giải thích cách xóa các bản ghi hiện có của một bảng trong cơ sở dữ liệu Apache Derby bằng ứng dụng JDBC.

Nếu bạn muốn yêu cầu máy chủ mạng Derby sử dụng máy khách mạng, hãy đảm bảo rằng máy chủ đang hoạt động. Tên lớp cho trình điều khiển máy khách mạng là org.apache.derby.jdbc.ClientDriver và URL là jdbc: derby: // localhost: 1527 /DATABASE_NAME;create = true; user =USER_NAME;passw ord =PASSWORD".

Làm theo các bước dưới đây để xóa các bản ghi hiện có của một bảng trong Apache Derby: / p>

Bước 1: Đăng ký tài xế

Trước tiên, bạn cần đăng ký trình điều khiển để giao tiếp với cơ sở dữ liệu. CácforName() phương pháp của lớp Classchấp nhận một giá trị Chuỗi đại diện cho một tên lớp sẽ tải nó vào bộ nhớ, nó sẽ tự động đăng ký nó. Đăng ký trình điều khiển bằng cách sử dụng phương pháp này.

Bước 2: Nhận kết nối

Nói chung, bước đầu tiên chúng ta làm để giao tiếp với cơ sở dữ liệu là kết nối với nó. CácConnectionlớp đại diện cho kết nối vật lý với máy chủ cơ sở dữ liệu. Bạn có thể tạo một đối tượng kết nối bằng cách gọigetConnection() phương pháp của DriverManagerlớp học. Tạo kết nối bằng phương pháp này.

Bước 3: Tạo đối tượng câu lệnh

Bạn cần tạo một Statement hoặc là PreparedStatement or, CallableStatementđối tượng để gửi câu lệnh SQL đến cơ sở dữ liệu. Bạn có thể tạo chúng bằng các phương phápcreateStatement(), prepareStatement() and, prepareCall()tương ứng. Tạo một trong hai đối tượng này bằng phương pháp thích hợp.

Bước 4: Thực hiện truy vấn

Sau khi tạo một câu lệnh, bạn cần thực thi nó. CácStatement lớp cung cấp các phương thức khác nhau để thực hiện một truy vấn như execute()để thực hiện một câu lệnh trả về nhiều hơn một tập kết quả. CácexecuteUpdate()phương thức thực hiện các truy vấn như INSERT, UPDATE, DELETE. CácexecuteQuery()kết quả phương thức trả về dữ liệu. Sử dụng một trong hai phương pháp này và thực hiện câu lệnh đã tạo trước đó.

Thí dụ

Ví dụ sau JDBC trình bày cách xóa các bản ghi hiện có của một bảng trong Apache Derby bằng cách sử dụng chương trình JDBC. Ở đây, chúng tôi đang kết nối với cơ sở dữ liệu có tên sampleDB (sẽ tạo nếu nó không tồn tại) bằng cách sử dụng trình điều khiển nhúng.

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

Đầu ra

Khi thực hiện chương trình trên, bạn sẽ nhận được kết quả sau:

Number of records deleted are: 1