IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Le SQL de A à Z

Exercices et travaux pratiques


précédentsommairesuivant

I. Les règles du jeu

Pour répondre à la question posée, il vous faut écrire une seule requête SQL.

Vous avez le droit d'utiliser toutes les techniques disponibles dans SQL:2003 :

  • Prédicats : BETWEEN, IN, IS NULL, IS TRUE, IS FALSE, IS UNKNOWN, ALL, ANY, SOME, EXISTS, UNIQUE, MATCH, LIKE, OVERLAPS...
  • Mots clef : ALL, DISTINCT...
  • Comparaisons : =, <=, >=, <, >, <>...
  • Connecteurs logiques : AND, OR, NOT...
  • Constructions : Row Value Constructor, CASE...
  • Opérateurs : UNION, EXCEPT, INTERSECT...
  • Fonctions : CAST, OCTET_LENGTH, BIT_LENGTH, COALESCE, NULLIF, CHARACTER_LENGTH, SUBSTRING, POSITION, TRIM, UPPER, LOWER, ABS, MOD, LN, EXP, POWER, FLOOR, CEILING, EXTRACT, CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP...
  • Agrégats statistiques : COUNT(*), COUNT(...), MAX(...), MIN(...), SUM(...), AVG(...)...
  • Clauses : WHERE, HAVING, GROUP BY, COLLATE, ORDER BY...
  • Les jointures : INNER JOIN, LEFT, RIGHT ou FULL OUTER JOIN, CROSS JOIN, UNION JOIN
  • Les agrégats cumulatifs CUBE, ROLLUP, GROUPING SETS et la fonction GROUPING (SQL:1999)
  • Les fonctions de fenêtrage (RANK, DENSE_RANK, PERCENT_RANK, ROW_NUMBER, CUM_DIST et leurs clauses spécifiques : ORDER BY, PARTITION BY (SQL:2003)
  • Les agrégats partiels obtenur avec les clauses ORDER BY, PARTITION BY (SQL:2003)
  • la technique de la CTE (Common table expression - expression de table) dont vous trouverez une étude ici : CTE ET récursivité des requêtes

Vous pouvez utiliser toutes les opérations disponibles dans SQL, y compris les sous requêtes dans les clauses SELECT, FROM, WHERE et HAVING, et bien entendu les sous requêtes corrélées.

Vous pouvez ajoutez dans la base une ou plusieurs nouvelles tables et leurs données ou encore définir autant de vues que vous le voulez,pour concourrir à la solution. En revanche vous n'avez pas le droit d'utiliser une UDF (fonction utilisateur), ni une procédure stockée, ni un trigger, ni bien entendu modifier la ou les tables et les données à l'origine du problème.

Tous ces exercices ont une solution et souvent plusieurs !

Pour vous aider à répondre, nous vous donnons :

  1. la structure de la ou les tables sous la forme d'un ordre SQL CREATE TABLE...;
  2. les données à insérer sous la forme d'un jeu d'ordre SQL INSERT INTO...;
  3. le résultat attendu (lignes résultant de l'exécution de la requête solution);
  4. le niveau de difficulté noté avec des étoiles de 1 (facile) à 5 (très difficile);
  5. parfois une ébauche du résultat pour vous mettre sur la piste.

Pour savoir si votre solution est bonne, comme pour obtenir la solution, envoyez votre réponse ou votre demande par mail en précisant le titre ou le n° du problème.


précédentsommairesuivant

Copyright © SQLPro. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.