Apache Derby - เรียงตามข้อ
คำสั่ง ORDER BY ใช้เพื่อจัดเรียงเนื้อหาของผลลัพธ์ที่กำหนดตามลำดับที่ใช้คำสำคัญ ASC แสดงลำดับจากน้อยไปมากและ DESC ที่แสดงลำดับจากมากไปหาน้อย หากคุณไม่ได้กล่าวถึงสิ่งเหล่านี้เนื้อหาจะถูกจัดเรียงจากน้อยไปหามากตามค่าเริ่มต้น
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์ของคำสั่ง ORDER BY -
SELECT * FROM table_name ORDER BY column_name ASC|DESC.
ตัวอย่าง
สมมติว่าเรามีตารางชื่อพนักงานในฐานข้อมูลพร้อมบันทึกต่อไปนี้ -
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
แบบสอบถามต่อไปนี้จัดเรียงเนื้อหาของตารางจากน้อยไปหามากตามชื่อของพนักงาน
ij> SELECT * FROM Employees ORDER BY Name;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
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
ในทำนองเดียวกันแบบสอบถามต่อไปนี้จัดเรียงเนื้อหาของตารางตามลำดับจากมากไปหาน้อยตามเงินเดือนของพนักงาน -
ij> SELECT * FROM Employees ORDER BY Salary DESC;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
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
การจัดเรียงข้อมูลโดยใช้โปรแกรม JDBC
ส่วนนี้จะสอนวิธีการเรียงลำดับเนื้อหาของตารางใน Derby โดยใช้ JDBC คุณสามารถจัดเรียงระเบียนตามลำดับโดยใช้คำสั่ง ORDER BY และคำสำคัญ ASC (แสดงลำดับจากน้อยไปหามาก) และ DSC (แสดงถึงลำดับจากมากไปหาน้อย)
หากคุณต้องการขอเซิร์ฟเวอร์เครือข่าย Derby โดยใช้ไคลเอนต์เครือข่ายตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์เปิดใช้งานแล้ว ชื่อคลาสสำหรับไดรเวอร์ไคลเอ็นต์เครือข่ายคือ org.apache.derby.jdbc.ClientDriver และ URL คือ jdbc: derby: // localhost: 1527 /DATABASE_NAME;สร้าง = true; ผู้ใช้ =USER_NAME;passw ord =PASSWORD".
ทำตามขั้นตอนด้านล่างเพื่อจัดเรียงระเบียนของตารางใน Apache Derby -
ขั้นตอนที่ 1: ลงทะเบียนไดรเวอร์
ในการสื่อสารกับฐานข้อมูลก่อนอื่นคุณต้องลงทะเบียนไดรเวอร์ forName() วิธีการของคลาส Classยอมรับค่า String ที่แสดงชื่อคลาสจะโหลดเข้าสู่หน่วยความจำซึ่งจะลงทะเบียนโดยอัตโนมัติ ลงทะเบียนไดรเวอร์โดยใช้วิธีนี้
ขั้นตอนที่ 2: รับการเชื่อมต่อ
โดยทั่วไปขั้นตอนแรกที่เราทำในการสื่อสารกับฐานข้อมูลคือการเชื่อมต่อกับฐานข้อมูล Connectionคลาสแสดงถึงการเชื่อมต่อทางกายภาพกับเซิร์ฟเวอร์ฐานข้อมูล คุณสามารถสร้างวัตถุการเชื่อมต่อโดยเรียกใช้ไฟล์ getConnection() วิธีการของ DriverManagerชั้นเรียน สร้างการเชื่อมต่อโดยใช้วิธีนี้ขั้นตอนที่ 3: สร้างวัตถุคำสั่ง
คุณต้องสร้างไฟล์ Statement หรือ PreparedStatement หรือ, CallableStatementวัตถุที่จะส่งคำสั่ง SQL ไปยังฐานข้อมูล คุณสามารถสร้างสิ่งเหล่านี้โดยใช้วิธีการcreateStatement(), prepareStatement() and, prepareCall()ตามลำดับ สร้างวัตถุเหล่านี้โดยใช้วิธีการที่เหมาะสม
ขั้นตอนที่ 4: ดำเนินการค้นหา
หลังจากสร้างคำสั่งแล้วคุณต้องดำเนินการ Statement คลาสมีวิธีการต่างๆในการดำเนินการสืบค้นเช่นไฟล์ execute()วิธีการดำเนินการคำสั่งที่ส่งคืนชุดผลลัพธ์มากกว่าหนึ่งชุด executeUpdate()วิธีดำเนินการค้นหาเช่น INSERT, UPDATE, DELETE executeQuery()วิธีการส่งคืนข้อมูล ใช้วิธีใดวิธีหนึ่งเหล่านี้และดำเนินการตามคำสั่งที่สร้างขึ้นก่อนหน้านี้
ตัวอย่าง
ตัวอย่าง JDBC ต่อไปนี้สาธิตวิธีการเรียงลำดับเร็กคอร์ดของตารางใน Apache Derby โดยใช้โปรแกรม JDBC ที่นี่เรากำลังเชื่อมต่อกับฐานข้อมูลชื่อ sampleDB (จะสร้างหากไม่มีอยู่) โดยใช้ไดรเวอร์ที่ฝังไว้
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(" ");
}
}
}
เอาต์พุต
ในการรันโปรแกรมข้างต้นคุณจะได้รับผลลัพธ์ต่อไปนี้ -
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