Apache Derby - Trier par clause

La clause ORDER BY est utilisée pour organiser le contenu du jeu de résultats dans l'ordre dans lequel il utilise les mots-clés, ASC représentant l'ordre croissant et DESC représentant l'ordre décroissant. Si vous ne mentionnez ni l'un ni l'autre, le contenu sera organisé par défaut par ordre croissant.

Syntaxe

Voici la syntaxe de la clause ORDER BY -

SELECT * FROM table_name ORDER BY column_name ASC|DESC.

Exemple

Supposons que nous ayons une table nommée Employés dans la base de données avec les enregistrements suivants -

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 requête suivante organise le contenu de la table dans l'ordre croissant en fonction du nom de l'employé.

ij> SELECT * FROM Employees ORDER BY Name;

Cela générera la sortie suivante -

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 même, la requête suivante organise le contenu de la table dans l'ordre décroissant en fonction du salaire de l'employé -

ij> SELECT * FROM Employees ORDER BY Salary DESC;

Cela générera la sortie suivante -

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

Tri des données à l'aide du programme JDBC

Cette section vous apprend à trier le contenu d'une table dans Derby à l'aide de JDBC. Vous pouvez organiser les enregistrements dans l'ordre à l'aide de la clause ORDER BY et des mots clés ASC (indiquant l'ordre croissant) et DSC (indiquant l'ordre décroissant).

Si vous souhaitez demander le serveur réseau Derby à l'aide du client réseau, assurez-vous que le serveur est opérationnel. Le nom de classe du pilote client réseau est org.apache.derby.jdbc.ClientDriver et l'URL est jdbc: derby: // localhost: 1527 /DATABASE_NAME;create = true; utilisateur =USER_NAME;passw ord =PASSWORD".

Suivez les étapes ci-dessous pour trier les enregistrements d'une table dans Apache Derby -

Étape 1: enregistrer le pilote

Pour communiquer avec la base de données, vous devez tout d'abord enregistrer le pilote. leforName() méthode de la classe Classaccepte une valeur String représentant un nom de classe la charge dans la mémoire, qui l'enregistre automatiquement. Enregistrez le pilote en utilisant cette méthode.

Étape 2: Obtenez la connexion

En général, la première étape que nous faisons pour communiquer avec la base de données est de nous y connecter. leConnectionclass représente la connexion physique avec un serveur de base de données. Vous pouvez créer un objet de connexion en appelant legetConnection() méthode de la DriverManagerclasse. Créez une connexion à l'aide de cette méthode.

Étape 3: créer un objet instruction

Vous devez créer un Statement ou PreparedStatement ou, CallableStatementobjets pour envoyer des instructions SQL à la base de données. Vous pouvez les créer en utilisant les méthodescreateStatement(), prepareStatement() and, prepareCall()respectivement. Créez l'un de ces objets en utilisant la méthode appropriée.

Étape 4: exécutez la requête

Après avoir créé une instruction, vous devez l'exécuter. leStatement classe fournit diverses méthodes pour exécuter une requête comme execute()pour exécuter une instruction qui renvoie plusieurs ensembles de résultats. leexecuteUpdate()La méthode exécute des requêtes comme INSERT, UPDATE, DELETE. leexecuteQuery()La méthode renvoie des données. Utilisez l'une de ces méthodes et exécutez l'instruction créée précédemment.

Exemple

L'exemple JDBC suivant montre comment trier les enregistrements d'une table dans Apache Derby à l'aide du programme JDBC. Ici, nous nous connectons à une base de données nommée sampleDB (créera si elle n'existe pas) en utilisant le pilote intégré.

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

Production

Lors de l'exécution du programme ci-dessus, vous obtiendrez la sortie suivante -

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