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