Sélection en SQL : SELECT
On a maintenant une table remplie de données et optimisée de façon à ce que l'on puisse manipuler les données de façon simple. Profitons alors du fait que notre fameux langage SQL soit aussi un langage de manipulation de données (LMD).
Le plus souvent, c'est la manipulation de données qui intervient au niveau des scripts de programmation comme PHP. C'est à partir d'ici que l'application du langage SQL commence vraiment à entrer en jeu.
La commande SQL SELECT
La commande principale pour la manipulation de données est la clause SELECT. Cette dernière nous permet d'interroger la base pour qu'il nous retourne un résultat. On peut lui soumettre certaines conditions à partir de différents critères que l'on définit nous même. Cela est possible grâce à plusieurs options de la commande SELECT.
Afin de comprendre rapidement, voyons tout de suite un exemple simple de sélection de donnée :
Requête SQL
SELECT * FROM etudiant;
Résultat de la requête SELECT
id_etudiant |
nom |
prenom |
moyenne |
domicile |
1 |
Duchesse |
Valérie |
17 |
St Rambert |
2 |
Malaga |
Rita |
12 |
Roussillon |
3 |
Bertrand |
Adrien |
11 |
Grenoble |
4 |
Rossiny |
Daniel |
17 |
Beaurepaire |
5 |
Suza |
Alvaro |
19 |
St Vallier |
6 |
Alarson |
Marinah |
14 |
Beaurepaire |
7 |
Lambertini |
Paco |
19 |
St Rambert |
8 |
Dupon |
Jean |
10 |
Grenoble |
9 |
Maillet |
Daniel |
18 |
Lyon |
10 |
Barose |
Diane |
16 |
Grenoble |
11 |
Carlo |
Monica |
11 |
Roussillon |
12 |
Maillet |
Serge |
13 |
Lyon |
13 |
Malaga |
Rita |
15 |
Grenoble |
Cette requête sélectionne toutes les données se trouvant dans la table "etudiant". Il est possible de limiter le nombre de résultats en utilisant le mot clé LIMIT.
Requête SQL
SELECT * FROM etudiant LIMIT 3;
Résultat
Résultat de la requête SELECT avec LIMIT
id_etudiant |
nom |
prenom |
moyenne |
domicile |
1 |
Duchesse |
Valérie |
17 |
St Rambert |
2 |
Malaga |
Rita |
12 |
Roussillon |
3 |
Bertrand |
Adrien |
11 |
Grenoble |
Toujours avec le mot clé LIMIT, on pour avoir une vue du style page par page du résultat. Il suffit de préciser une deuxième valeur dans la clause LIMIT. Voici comment on fait pour afficher les 3 résultats à partir de la 5ème ligne.
Requête SQL
SELECT * FROM etudiant LIMIT 5, 3;
Résultat
Résultat de la requête SELECT avec LIMIT
id_etudiant |
nom |
prenom |
moyenne |
domicile |
6 |
Alarson |
Marinah |
14 |
Beaurepaire |
7 |
Lambertini |
Paco |
19 |
St Rambert |
8 |
Dupon |
Jean |
10 |
Grenoble |
Une projection en SQL
Rappelons que la structure de la table enseignant possède 5 champs ( id_etudiant ,nom ,prenom,moyenne ,domicile). Le symbole * dans les requêtes ci-dessus veut dire qu'il faut inclure tous les champs.
Mais il est aussi possible de n'inclure que quelques colonnes seulement (prenom,moyenne,domicile). Il suffit de lister les colonnes et de séparer par des virgules.
Requête SQL
SELECT prenom, moyenne, domicile FROM etudiant LIMIT 3 ;
Résultat
Résultat d'une projection
prenom |
moyenne |
domicile |
Valérie |
17 |
St Rambert |
Adrien |
11 |
Grenoble |
Gérer les doublons : DISTINCT
L'option DISTINCT permet d'éliminer les doublons c'est- à-dire de ne pas les prendre en compte pendant la sélection. Tandis que l'option ALL permet de prendre tout en compte.
Résultat de la requête SELECT avec DISTINCT
Avec doublons (ALL) |
Sans doublons (DISTINCT) |
Voici un exemple de sélection en incluant tous les doublons
Requête :
SELECT ALL domicile FROM etudiant ; |
En utilisant distinct à la place de la clause ALL on élimine les doublons
Requête
SELECT DISTINCT domicile FROM etudiant; |
Résultat :
domicile
St Rambert
Roussillon
Grenoble
Beaurepaire
St Vallier
Beaurepaire
St Rambert
Grenoble
Lyon
Grenoble
Roussillon
Lyon
Grenoble |
Résultat
domicile
St Rambert
Roussillon
Grenoble
Beaurepaire
St Vallier
Lyon |
Nombre de ligne de résultats : COUNT
La clause COUNT nous donne le nombre de résultat. Par exemple, essayons de compter le nombre d'étudiant dans la table étudiant et mettons le nombre obtenu dans une colonne que l'on nommera "nbetudiant"
Requête SQL
SELECT COUNT( * ) AS nbetudiant FROM etudiant ;
Résultat
Résultat de la requête SELECT avec COUNT
nbetudiant |
13 |
Au total, la table "etudiant" contient donc 13 résultats. Ces différents critères ne sont pas valables que pour la sélection. Mais on les utilise aussi pour la modification et suppression de ligne comme nous allons le voir dans un prochain tutoriel.