4/1/2014

Projection, Filtrage et Tri

Requête la plus simple possible

La combinaison des mots clés SELECT et FROM permet d'extraire des données d’une base ou de calculer de nouvelles données à partir de données existantes.

Voici la syntaxe générale d'une commande SELECT :

SELECT *
FROM nom de la table

Les mots clef du SQL sont en gras. Après le mot clé SELECT, on trouve le * qui signifie que l'on récupère toutes les colonnes de la table. Après le FROM, on spécifie sur quelle table porte la reqête.

La casse (majuscule/minuscule) pour le nom des tables et des champs est importante. Vous n'avez pas besoin de mettre de guillemets autour des noms des tables si ceux-ci ne comportent pas de séparateurs ni de caractères accentués ou spéciaux.

Ecrire les requêtes suivantes:

Projection

La projection permet de faire une sélection sur les colonnes récupérées dans la table de résultat.

SELECT liste de colonnes récupérées
FROM table

Il est possible d'utiliser les opérateurs mathématiques de base pour combiner différentes colonnes : par exemple, multiplier un prix en euros par un coefficient pour le convertir en dollars (SELECT PRIX*1,3388).

Lorsque le moteur construit la table réponse, il rapatrie toutes les lignes correspondantes dans l’ordre où il les trouve, même si ces dernières sont en double. Par exemple, si l'on recherche tous les prénoms dans la table des coureurs, le moteur récupère toutes les lignes et potentiellement plusieurs fois le même prénom. Pour éviter ce phénomène, il faut utiliser le mot clef DISTINCT placé après le SELECT pour éliminer les doublons (répétitions).

Formulez les requêtes suivantes en SQL :

Filtrage

Le mot clé WHERE permet de filtrer les données selon une condition. Cette condition doit être remplie pour que les lignes apparaissent dans la table résultat.

On peut combiner ces conditions avec un ET ou un OU.

SELECT *
FROM nom de la table
WHERE condition

Opérateurs utilisables dans les conditions :
IN pour rechercher dans une liste tous les titres présents dans la liste Mme et Melle WHERE TITRE IN ('Mme.', 'Melle.')
BETWEEN pour rechercher entre deux valeurs tous les rangs entre 1 et 10 WHERE RANG BETWEEN 1 AND 10
LIKE pour vérifier qu'une chaine contient un caractère tous les noms contenant 'DE' WHERE "NOM" LIKE '%DE%'
NOT pour vérifier qu'une condition n'est pas vérifiée tous les titres qui ne sont pas dans la liste Mme et Melle WHERE TITRE NOT IN ('Mme.', 'Melle.')
CASE pour afficher le résultat d'un test si le prix est supérieur à 100 écrire false sinon écrire true CASE WHEN PRIX > 100 THEN 'False' ELSE 'True' END

Formulez les requêtes suivantes en SQL :

Tri

Pour trier les données, on utilise l'instruction ORDER BY.

SELECT champ
FROM table
ORDER BY champ ASC (ou DESC)

Formulez les requêtes suivantes en SQL :