Apache Derby - Orden por cláusula

La cláusula ORDER BY se utiliza para organizar el contenido del conjunto de resultados en el orden en que utiliza las palabras clave, ASC representa el orden ascendente y DESC representa el orden descendente. Si no menciona ninguno de estos, los contenidos se organizarán en orden ascendente de forma predeterminada.

Sintaxis

A continuación se muestra la sintaxis de la cláusula ORDER BY:

SELECT * FROM table_name ORDER BY column_name ASC|DESC.

Ejemplo

Supongamos que tenemos una tabla llamada Empleados en la base de datos con los siguientes registros:

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 siguiente consulta organiza el contenido de la tabla en orden ascendente según el nombre del empleado.

ij> SELECT * FROM Employees ORDER BY Name;

Esto generará la siguiente salida:

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

De manera similar, la siguiente consulta organiza el contenido de la tabla en orden descendente según el salario del Empleado:

ij> SELECT * FROM Employees ORDER BY Salary DESC;

Esto generará la siguiente salida:

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

Clasificación de datos mediante el programa JDBC

Esta sección le enseña cómo ordenar el contenido de una tabla en Derby usando JDBC. Puede organizar los registros en orden usando la cláusula ORDER BY y las palabras clave ASC (que denota orden ascendente) y DSC (que denota orden descendente).

Si desea solicitar el servidor de red Derby mediante un cliente de red, asegúrese de que el servidor esté en funcionamiento. El nombre de clase del controlador del cliente de red es org.apache.derby.jdbc.ClientDriver y la URL es jdbc: derby: // localhost: 1527 /DATABASE_NAME;crear = verdadero; usuario =USER_NAME;passw ord =PASSWORD".

Siga los pasos que se indican a continuación para ordenar los registros de una tabla en Apache Derby:

Paso 1: registre el controlador

Para comunicarse con la base de datos, en primer lugar, debe registrar el controlador. losforName() método de la clase Classacepta un valor de cadena que representa un nombre de clase, lo carga en la memoria, que lo registra automáticamente. Registre el controlador utilizando este método.

Paso 2: obtén la conexión

En general, el primer paso que hacemos para comunicarnos con la base de datos es conectarnos con ella. losConnectionclase representa la conexión física con un servidor de base de datos. Puede crear un objeto de conexión invocando elgetConnection() método del DriverManagerclase. Cree una conexión con este método.

Paso 3: crea un objeto de declaración

Necesitas crear un Statement o PreparedStatement o, CallableStatementobjetos para enviar sentencias SQL a la base de datos. Puedes crearlos usando los métodoscreateStatement(), prepareStatement() and, prepareCall()respectivamente. Cree cualquiera de estos objetos utilizando el método apropiado.

Paso 4: ejecutar la consulta

Después de crear una declaración, debe ejecutarla. losStatement La clase proporciona varios métodos para ejecutar una consulta como la execute()método para ejecutar una declaración que devuelve más de un conjunto de resultados. losexecuteUpdate()El método ejecuta consultas como INSERT, UPDATE, DELETE. losexecuteQuery()El método devuelve datos. Utilice cualquiera de estos métodos y ejecute la instrucción creada anteriormente.

Ejemplo

El siguiente ejemplo de JDBC demuestra cómo ordenar los registros de una tabla en Apache Derby utilizando el programa JDBC. Aquí, nos estamos conectando a una base de datos llamada sampleDB (se creará si no existe) usando el controlador integrado.

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

Salida

Al ejecutar el programa anterior, obtendrá el siguiente resultado:

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