Si la commande SELECT est l’une des plus couramment utilisées pour lire les données d’un tableau, elle présente quelques lacunes si elle est utilisée toute seule. C’est pourquoi, d’autres commandes lui sont associées. Ces combinaisons permettent ainsi d’affiner les résultats. Et notamment la commande SQL DISTINCT qui supprime les doublons au sein d’une Base de Donnée MySQL.
Qu'est ce que SQL DISTINCT ?
La requête SQL DISTINCT permet de limiter les doublons. En effet, lorsque vous utilisez la commande d’instruction SELECT, vous pouvez sélectionner une ou plusieurs colonnes de la table. Mais à l’intérieur de ces colonnes, il peut y avoir des lignes en double. Pour éviter cela, vous devez ajouter DISTINCT à la requête SELECT. Ce faisant, toutes les redondances sont éliminées.
Concrètement, cette commande se présente comme suit :
SELECT DISTINCT nom_de_la_colonne
FROM nom_du_tableau
Vous pouvez utiliser cette commande sur une seule colonne ou sur un ensemble de colonnes liées.
Bon à savoir : si vous utilisez un système de gestion de base de données Oracle, il ne faudra pas utiliser la commande SQL DISTINCT, mais la commande UNIQUE.
3 exemples d’utilisation de SQL DISTINCT
Pour vous aider à mieux comprendre comment utiliser la requête SQL DISTINCT, voici 3 exemples d’application concrets.
La requête SELECT DISTINCT pour une colonne unique
C’est l’utilisation basique de la requête SQL DISTINCT.
Dans notre exemple, vous disposez d’un tableau avec l’intégralité de vos clients, dont plusieurs appartiennent à la même famille (nom de famille identique).
Voici votre tableau :
ID | Prénom | Nom |
---|---|---|
1 | Pierre | Dupont |
2 | Jeanne | Martin |
3 | Henri | Durand |
4 | Bertrand | Petit |
5 | Martine | Dupont |
Si vous souhaitez afficher seulement les familles uniques, voici la requête à utiliser : SELECT DISTINCT nom FROM client.
Et voici le résultat :
Nom |
---|
Dupont |
Martin |
Durand |
Petit |
Ici, le nom Dupond n’est affiché qu’une seule fois (contre deux fois dans le premier tableau).
La requête SELECT DISTINCT pour plusieurs colonnes
Comme mentionné précédemment, la commande DISTINCT peut aussi être utilisée pour plusieurs colonnes.
Reprenons un exemple de table Client similaire :
ID | Prénom | Nom |
---|---|---|
1 | Martine | Dupont |
2 | Jeanne | Martin |
3 | Henry | Durand |
4 | Bertrand | Petit |
5 | Martine | Dupont |
6 | Antoine | Martin |
7 | Fabienne | Bernard |
8 | Christelle | Robert |
9 | Henri | Durand |
Si vous souhaitez afficher seulement les familles uniques, voici la requête à utiliser : SELECT DISTINCT prénom nom FROM client.
Et voici le résultat :
Prénom | Nom |
---|---|
Martine | Dupon |
Jeanne | Martin |
Henri | Durand |
Bertrand | Petit |
Antoine | Martin |
Fabienne | Bernard |
Christelle | Robert |
Dans ce cas, les lignes Martine Dupont et Henry Durand ont été éliminées.
Le nombre de valeurs uniques
Si vous souhaitez savoir combien de valeur unique comporte votre tableau, il suffit de réaliser la manipulation suivante :
SELECT COUNT(DISTINCT nom) AS Nombre FROM Client
Le plus souvent, la requête SQL DISTINCT est utilisée avec la commande COUNT pour compter des valeurs. Mais il est possible d’ajouter d’autres agrégations en fonction de vos besoins. Cela vous permettra de réaliser différentes opérations mathématiques ou statistiques, sans prendre en compte les doublons.
Les alternatives à SQL DISTINCT
Pour éliminer les doublons, il est possible d’utiliser d’autres commandes. Et notamment GROUP BY / ORDER BY.
Dans ce cadre, la requête est la suivante :
SELECT nom, Prenom FROM `Client` GROUP BY nom, Prenom ORDER BY nom, Prenom
Le résultat est exactement le même qu’avec la requête : SELECT DISTINCT prénom nom FROM client.
Maitrisez le langage SQL avec DataScientest
Le langage de programmation SQL regorge de requêtes indispensables pour manipuler les données. Si vous souhaitez approfondir vos connaissances en la matière, n’hésitez pas à rejoindre nos formations chez Datascientest. Orientées métiers, ces formations vous permettent d’être 100 % opérationnel à la fin du cursus.