Apache Derby - Đặt hàng theo mệnh đề
Mệnh đề ORDER BY được sử dụng để sắp xếp nội dung của tập kết quả theo thứ tự sử dụng các từ khóa, ASC đại diện cho thứ tự tăng dần và DESC đại diện cho thứ tự giảm dần. Nếu bạn không đề cập đến một trong hai điều này, nội dung sẽ được sắp xếp theo thứ tự tăng dần theo mặc định.
Cú pháp
Sau đây là cú pháp của mệnh đề ORDER BY:
SELECT * FROM table_name ORDER BY column_name ASC|DESC.
Thí dụ
Giả sử chúng ta có một bảng có tên Nhân viên trong cơ sở dữ liệu với các bản ghi sau:
ID |NAME |SALARY |LOCATION
------------------------------------------------------------------------------
1 |Amit |30000 |Vijayawada
2 |Kalyan |40000 |Vishakhapatnam
3 |Renuka |50000 |Delhi
4 |Archana |15000 |Vijayawada
5 |Trupthi |45000 |Kochin
6 |Suchatra |33000 |Vijayawada
7 |Rahul |39000 |Lucknow
Truy vấn sau đây sắp xếp nội dung của bảng theo thứ tự tăng dần dựa trên tên của Nhân viên.
ij> SELECT * FROM Employees ORDER BY Name;
Điều này sẽ tạo ra kết quả sau:
ID |NAME |SALARY |LOCATION
---------------------------------------------------------------
1 |Amit |30000 |Hyderabad
4 |Archana |15000 |Mumbai
2 |Kalyan |40000 |Vishakhapatnam
7 |Rahul |39000 |Lucknow
3 |Renuka |50000 |Delhi
6 |Suchatra |33000 |Pune
5 |Trupthi |45000 |Kochin
7 rows selected
Tương tự, truy vấn sau sắp xếp nội dung của bảng theo thứ tự giảm dần dựa trên mức lương của Nhân viên -
ij> SELECT * FROM Employees ORDER BY Salary DESC;
Điều này sẽ tạo ra kết quả sau:
ID |NAME |SALARY |LOCATION
---------------------------------------------------------------
3 |Renuka |50000 |Delhi
5 |Trupthi |45000 |Kochin
2 |Kalyan |40000 |Vishakhapatnam
7 |Rahul |39000 |Lucknow
6 |Suchatra |33000 |Pune
1 |Amit |30000 |Hyderabad
4 |Archana |15000 |Mumbai
7 rows selected
Sắp xếp dữ liệu bằng chương trình JDBC
Phần này hướng dẫn bạn cách sắp xếp nội dung của một bảng trong Derby bằng cách sử dụng JDBC. Bạn có thể sắp xếp các bản ghi theo thứ tự bằng cách sử dụng mệnh đề ORDER BY và các từ khóa ASC (biểu thị thứ tự tăng dần) và DSC (biểu thị thứ tự giảm dần).
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 để sắp xếp các bản ghi của một bảng trong Apache Derby -
Bước 1: Đăng ký tài xế
Để giao tiếp với cơ sở dữ liệu, trước hết, bạn cần đăng ký trình điều khiển. 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ột 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 hoặc là, 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()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 sắp xếp các bản ghi 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.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class SortData {
public static void main(String args[]) throws SQLException, ClassNotFoundException {
//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'), "
+ "('Trupti', 45000, 'Kochin')";
//Executing the query
String query = "SELECT Location, SUM(Salary) " + "from Employees GROUP BY Location";
ResultSet rs = stmt.executeQuery(query);
while(rs.next()) {
System.out.println("Salary: "+rs.getString(1));
System.out.println("Location: "+rs.getString(2));
System.out.println(" ");
}
}
}
Đầu ra
Khi thực hiện chương trình trên, bạn sẽ nhận được kết quả sau:
Salary: Chennai
Location: 43000
Salary: Delhi
Location: 50000
Salary: Hyderabad
Location: 30000
Salary: Kochin
Location: 45000
Salary: Lucknow
Location: 39000
Salary: Mumbai
Location: 15000
Salary: Pune
Location: 33000