Apache Derby - Order By Clause

La clausola ORDER BY viene utilizzata per disporre il contenuto del set di risultati nell'ordine in cui utilizza le parole chiave, ASC che rappresenta l'ordine crescente e DESC che rappresenta l'ordine discendente. Se non si menziona nessuno di questi, i contenuti verranno disposti in ordine crescente per impostazione predefinita.

Sintassi

Di seguito è riportata la sintassi della clausola ORDER BY:

SELECT * FROM table_name ORDER BY column_name ASC|DESC.

Esempio

Supponiamo di avere una tabella denominata Employees nel database con i seguenti record:

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

La seguente query dispone il contenuto della tabella in ordine crescente in base al nome del dipendente.

ij> SELECT * FROM Employees ORDER BY Name;

Questo genererà il seguente output:

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

Allo stesso modo, la seguente query dispone il contenuto della tabella in ordine decrescente in base allo stipendio del dipendente -

ij> SELECT * FROM Employees ORDER BY Salary DESC;

Questo genererà il seguente output:

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

Ordinamento dei dati utilizzando il programma JDBC

Questa sezione insegna come ordinare il contenuto di una tabella in Derby utilizzando JDBC. È possibile disporre i record in ordine utilizzando la clausola ORDER BY e le parole chiave ASC (che denota ordine ascendente) e DSC (denota ordine discendente).

Se desideri richiedere il server di rete Derby utilizzando il client di rete, assicurati che il server sia attivo e funzionante. Il nome della classe per il driver del client di rete è org.apache.derby.jdbc.ClientDriver e l'URL è jdbc: derby: // localhost: 1527 /DATABASE_NAME;creare = vero; utente =USER_NAME;passw ord =PASSWORD".

Seguire i passaggi indicati di seguito per ordinare i record di una tabella in Apache Derby -

Passaggio 1: registra il driver

Per comunicare con il database, prima di tutto, è necessario registrare il conducente. IlforName() metodo della classe Classaccetta un valore String che rappresenta un nome di classe lo carica nella memoria, che lo registra automaticamente. Registrare il driver utilizzando questo metodo.

Passaggio 2: ottieni la connessione

In generale, il primo passo che facciamo per comunicare con il database è connetterci con esso. Il Connectionclass rappresenta la connessione fisica con un server di database. È possibile creare un oggetto connessione richiamando il file getConnection() metodo del DriverManagerclasse. Crea una connessione usando questo metodo.

Passaggio 3: creare un oggetto istruzione

Devi creare un file Statement o PreparedStatement o, CallableStatementoggetti per inviare istruzioni SQL al database. Puoi crearli usando i metodicreateStatement(), prepareStatement() and, prepareCall()rispettivamente. Crea uno di questi oggetti utilizzando il metodo appropriato.

Passaggio 4: eseguire la query

Dopo aver creato un'istruzione, è necessario eseguirla. IlStatement class fornisce vari metodi per eseguire una query come il execute()metodo per eseguire un'istruzione che restituisce più di un set di risultati. IlexecuteUpdate()metodo esegue query come INSERT, UPDATE, DELETE. IlexecuteQuery()il metodo restituisce i dati. Utilizzare uno di questi metodi ed eseguire l'istruzione creata in precedenza.

Esempio

L'esempio JDBC seguente mostra come ordinare i record di una tabella in Apache Derby utilizzando il programma JDBC. Qui, ci stiamo connettendo a un database denominato sampleDB (creerà se non esiste) utilizzando il driver incorporato.

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

Produzione

Eseguendo il programma sopra, otterrai il seguente output:

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