CodeGym/Cours Java/All lectures for FR purposes/Contrôle d'affichage des données

Contrôle d'affichage des données

Disponible

4.1 LIMITE

Si vous vous attendez à ce que votre requête SQL renvoie trop de données, vous pouvez limiter le nombre maximum à l'avance. Après tout, les tables peuvent contenir des milliers voire des millions de lignes.

SQL permet de limiter très facilement le nombre de lignes dans le résultat d'une requête à l'aide de LIMIT. Ce mot-clé est utilisé à la toute fin de la requête SQL et ressemble à ceci :

LIMIT quantity

Écrivons une requête sur la table des produits, qui contient une liste des produits de notre magasin. Mais puisque nous avons un magasin très prospère et que nous vendons beaucoup de produits, nous voulons obtenir uniquement les 10 premières lignes de la réponse. Voici à quoi ressemblerait cette demande :

SELECT * FROM product
LIMIT 10

Et nous obtenons le résultat de requête suivant :

identifiant nom marque prix compter
1 Tableau Ikéa 20.00 15
2 Chaise Ikéa 5,00 45
3 Canapé Ikéa 80,00 dix
4 Lit Ikéa 75,00 dix
5 Placard Bosch 125,00 15
6 Étagère Étagère 25.00 114
7 la télé LG 350,00 4
8 Lampe LG 15h00 100
9 La commode Ikéa 99,00 dix
dix Plaque Bosch 199,00 dix

Maintenant, nous allons demander uniquement les 5 premières lignes. Voici à quoi ressemblerait cette demande :

SELECT * FROM product
LIMIT 5

Nous obtenons le résultat de requête suivant :

identifiant nom marque prix compter
1 Tableau Ikéa 20.00 15
2 Chaise Ikéa 5,00 45
3 Canapé Ikéa 80,00 dix
4 Lit Ikéa 75,00 dix
5 Placard Bosch 125,00 15

4.2 DÉCALAGE

La dernière fois, nous avons appris à limiter le nombre de lignes dans la réponse du serveur. Et maintenant, au lieu de milliers de lignes de la table des produits, nous pouvons obtenir les 10 premières lignes et les afficher à l'utilisateur. C'est parfaitement. Mais comment afficher les 10 secondes lignes ? Et le troisième ?

Si nous écrivons LIMIT 20, ou LIMIT 30, le serveur ne retournera-t-il pas respectivement 20 et 30 lignes ?

C'est pour ce cas que SQL a un mot-clé spécial OFFSETavec lequel vous pouvez demander au serveur de sauter N lignes dans sa réponse. Ce mot-clé est utilisé à la toute fin de la requête SQL (après LIMIT) et ressemble à :

OFFSET quantity

Écrivons une requête sur la table product et essayons d'obtenir les enregistrements 11 à 15. En d'autres termes, nous demandons au serveur de nous renvoyer 5 lignes, mais en ignorant d'abord les 10 premières lignes de la réponse. Voici à quoi ressemblerait cette demande :

SELECT * FROM product
LIMIT 5
OFFSET 10

Nous obtenons le résultat de requête suivant :

identifiant nom marque prix compter
onze Fauteuil Bosch 44.00 8
12 pot de fleur Fleur intelligente 99,00 9
13 Rester Ikéa 100,00 dix

Le serveur n'a renvoyé que 3 lignes, ce qui signifie qu'il y avait 13 lignes au total dans notre table. Le serveur a sauté les 10 premiers et renvoyé les 5 suivants.

4.3 SÉLECTIONNER DISTINCT

Un autre mot-clé utile est DISTINCT. Il est utilisé lorsqu'il y a des enregistrements en double dans la table et que nous voulons supprimer les doublons.

D'où viennent les doublons dans notre tableau ? Il n'y a peut-être pas de doublons dans la table, mais à la suite de la requête, c'est facile. Écrivons une requête qui renverra les marques de tous les produits que nous vendons. Voici à quoi ressemblerait cette demande :

SELECT brand FROM product

Nous obtenons le résultat de requête suivant :

marque
Ikéa
Ikéa
Ikéa
Ikéa
Bosch
Bosch
LG
LG
Ikéa
Bosch
Bosch
Fleur intelligente
Ikéa

Il est facile de voir qu'il y a des lignes en double dans ce tableau. C'est pour s'assurer qu'il n'y a pas de doublons et que vous devez utiliser le mot-clé DISTINCT. Voici à quoi ressemblera la requête corrigée :

SELECT DISTINCT brand
FROM product

Nous obtenons le résultat de requête suivant :

marque
Ikéa
Bosch
LG
Fleur intelligente

Tellement mieux. N'est-ce pas? ;)

4.4 COMMANDER PAR

Et enfin nous sommes arrivés au tri . Pour trier les résultats d'une requête, vous devez utiliser le mot-clé ORDER BY. Techniquement, ce sont deux mots, mais l'essence n'est pas importante. Deux mots, un opérateur.

Il doit être écrit après le mot clé WHERE, mais avant LIMITet OFFSET. Si vous écrivez ORDER BYaprès LIMIT, le serveur SQL vous renverra simplement une erreur.

En général, cet opérateur ressemble à ceci :

ORDER BY column order

Où colonne est le nom de la colonne dans le tableau/résultat du tri. Et l'ordre est l'ordre de tri.

L'ordre de tri peut être de trois types :

  • ASC(de Croissant) - croissant ;
  • DESC(de Descendant) - descendant ;
  • Non spécifié - sera utiliséASC

Écrivons une requête qui renverra une liste de produits triés par prix dans l'ordre croissant. Voici à quoi ressemblerait cette demande :

SELECT * FROM product
ORDER BY price ASC
LIMIT 10

Nous obtenons le résultat de requête suivant :

identifiant nom marque prix compter
2 Chaise Ikéa 5,00 45
8 Lampe LG 15h00 100
1 Tableau Ikéa 20.00 15
6 Étagère Bosch 25.00 114
onze Fauteuil Bosch 44.00 8
4 Lit Ikéa 75,00 dix
3 Canapé Ikéa 80,00 dix
12 pot de fleur Fleur intelligente 99,00 9
9 La commode Ikéa 99,00 dix
13 Rester Ikéa 100,00 dix

Nous obtiendrons le même résultat si nous ne spécifions pas l'ordre de tri - nous sauterons le mot ASC.

4.5 ORDER BY sur plusieurs colonnes

L'opérateur ORDER BYpermet de trier le résultat sur plusieurs colonnes. Cela peut être très utile lorsque la première colonne contient beaucoup d'éléments en double. La forme générale de cet opérateur est la suivante :

ORDER BY column 1 order 1, column 2 order 2, column 3 order 3

En d'autres termes, si après le tri par la première colonne vous avez plusieurs valeurs identiques à proximité, alors elles sont triées par la deuxième colonne, et ainsi de suite.

Écrivons une requête qui triera nos produits par marque, et pour les produits de la même marque - par ordre décroissant de leur numéro. Voici à quoi ressemblerait cette demande :

SELECT * FROM product
ORDER BY brand ASC, count
DESC

Nous obtenons le résultat de requête suivant :

identifiant nom marque prix compter
6 Étagère Bosch 25.00 114
5 Placard Bosch 125,00 15
dix Plaque Bosch 199,00 dix
onze Fauteuil Bosch 44.00 8
2 Chaise Ikéa 5,00 45
1 Tableau Ikéa 20.00 15
9 La commode Ikéa 99,00 dix
13 Rester Ikéa 100,00 dix
4 Lit Ikéa 75,00 dix
3 Canapé Ikéa 80,00 dix
8 Lampe LG 15h00 100
7 la télé LG 350,00 4
12 pot de fleur Fleur intelligente 99,00 9

Regardez attentivement le tableau - ses lignes sont triées par nom de marque (ordre alphabétique) et les lignes avec le même nom de marque sont triées par numéro de produit dans l'ordre décroissant (dernière colonne).

Commentaires
  • Populaires
  • Nouveau
  • Anciennes
Tu dois être connecté(e) pour laisser un commentaire
Cette page ne comporte pas encore de commentaires