Lernzettel: Maîtrise Avancée des Requêtes SQL

📋 Plan du Cours

  1. Instruction SELECT et restriction des données en SQL
  2. Fonctions mono-ligne en SQL : caractères, numériques, dates et conversion
  3. Fonctions analytiques et multi-lignes en SQL
  4. Fonctions conditionnelles et gestion des valeurs NULL en SQL (NVL, NULLIF, COALESCE, CASE)
  5. Clause GROUP BY et agrégations avec HAVING en SQL
  6. Opérateurs ROLLUP et CUBE pour les agrégations hiérarchiques et combinatoires
  7. Fonction GROUPING pour distinguer les totaux générés par ROLLUP et CUBE
  8. Sous-interrogations monolignes et multilignes avec opérateurs de comparaison
  9. Types de jointures en SQL : interne, externe, équijointure, auto-jointure, naturelle, produit cartésien
  10. Opérateurs ensemblistes en SQL : UNION, UNION ALL, INTERSECT, MINUS
  11. Syntaxe et contraintes des opérateurs ensemblistes en SQL
  12. Exemples pratiques d’utilisation des opérateurs ensemblistes et jointures

📖 1. Instruction SELECT et restriction des données en SQL

🔑 Notions clés & Définitions

  • SELECT : Instruction SQL qui indique les colonnes à afficher dans le résultat d'une requête.

📝 Points essentiels

  • L'instruction SELECT permet de spécifier les colonnes à afficher dans le résultat d'une requête.
  • La clause DISTINCT supprime les doublons dans les résultats retournés par une requête SELECT.

💡 À retenir

Comprendre la structure de base d'une requête SELECT et comment filtrer les données dès la sélection initiale.

📖 2. Fonctions mono-ligne en SQL : caractères, numériques, dates et conversion

🔑 Notions clés & Définitions

  • Conversion explicite : Procédé qui utilise des fonctions spécifiques pour transformer explicitement le type de données d'une valeur, comme TO_CHAR pour convertir en chaîne de caractères ou TO_DATE pour convertir en date.
  • Fonctions mono-ligne : Fonctions qui s'appliquent à chaque ligne individuellement dans une requête SQL et retournent une valeur unique pour chaque ligne traitée.
  • Fonctions de caractères : Fonctions qui manipulent ou transforment des données de type chaîne de caractères, telles que TO_CHAR pour la conversion ou LENGTH pour obtenir la longueur d'une chaîne.
  • Fonctions numériques : Fonctions qui effectuent des calculs ou manipulations sur des données numériques, comme ROUND pour arrondir ou ABS pour la valeur absolue.
  • Fonctions de dates : Fonctions qui manipulent ou transforment des données de type date, telles que TO_DATE pour convertir une chaîne en date ou SYSDATE pour obtenir la date actuelle.

📝 Points essentiels

  • Les fonctions mono-ligne s'appliquent à chaque ligne individuellement et retournent une valeur par ligne.
  • Les fonctions de conversion permettent de transformer explicitement les types de données, par exemple TO_CHAR pour convertir une valeur en chaîne de caractères.

💡 À retenir

Maîtriser les fonctions qui transforment ou manipulent les données ligne par ligne permet d'affiner les résultats.

📖 3. Fonctions analytiques et multi-lignes en SQL

🔑 Notions clés & Définitions

  • Expr) : Une expression en SQL est une combinaison de colonnes, constantes, opérateurs et fonctions qui produit une valeur unique pour chaque ligne évaluée.
  • Fonctions analytiques : La derniere s´erie d’op´erations effectu´ees dans une requˆete a l’exception de la clause finale ORDER BY.

📝 Points essentiels

  • Les fonctions analytiques calculent des valeurs basées sur un groupe de lignes mais retournent plusieurs lignes par groupe.
  • Les fonctions analytiques s'exécutent après les agrégations et ne peuvent apparaître que dans la liste SELECT ou dans ORDER BY.

💡 À retenir

Les fonctions analytiques calculent des valeurs basées sur un groupe de lignes mais retournent plusieurs lignes par groupe.

📖 4. Fonctions conditionnelles et gestion des valeurs NULL en SQL (NVL, NULLIF, COALESCE, CASE)

🔑 Notions clés & Définitions

  • Fonction NVL : La fonction NVL remplace une valeur NULL par une valeur spécifiée dans une expression, évitant ainsi que les valeurs NULL n'affectent les calculs ou affichages.

📝 Points essentiels

  • La fonction COALESCE retourne la première valeur non nulle parmi ses arguments.
  • La fonction NVL remplace une valeur NULL par une valeur spécifiée dans les expressions.

💡 À retenir

La fonction COALESCE retourne la première valeur non nulle parmi ses arguments.

📖 5. Clause GROUP BY et agrégations avec HAVING en SQL

🔑 Notions clés & Définitions

  • Clause GROUP BY : Une clause SQL qui organise les résultats d'une requête en groupes basés sur une ou plusieurs colonnes, permettant l'application de fonctions d'agrégation sur chaque groupe.
  • Clause HAVING : Une clause SQL utilisée pour filtrer les groupes créés par GROUP BY, en conservant uniquement ceux qui satisfont une condition spécifiée sur les résultats agrégés.
  • GROUP BY department id HAVING : Exemple 2 SELECT last name, job id, salary FROM employees WHERE salary

📝 Points essentiels

  • Toute colonne ou expression dans la clause SELECT qui n'est pas une fonction d'agrégation doit être incluse dans la clause GROUP BY.
  • La clause HAVING filtre les groupes après l'application des fonctions d'agrégation, en ne conservant que ceux qui satisfont la condition spécifiée.

💡 À retenir

Toute colonne ou expression dans la clause SELECT qui n'est pas une fonction d'agrégation doit être incluse dans la clause GROUP BY.

📖 6. Opérateurs ROLLUP et CUBE pour les agrégations hiérarchiques et combinatoires

🔑 Notions clés & Définitions

  • L’op´erateur CUBE : Un opérateur SQL qui calcule des agrégats pour toutes les combinaisons possibles d'un ensemble de colonnes de regroupement, produisant 2^n combinaisons pour n colonnes.
  • Opérateur ROLLUP : Un opérateur SQL qui calcule des agrégats à plusieurs niveaux de totalisation selon une hiérarchie définie dans la clause GROUP BY, générant n+1 niveaux de totaux pour n colonnes de regroupement.

📝 Points essentiels

  • ROLLUP génère des totaux à plusieurs niveaux selon une hiérarchie définie dans GROUP BY, incluant le total général.
  • CUBE calcule toutes les combinaisons possibles d'agrégations sur les colonnes spécifiées, couvrant tous les sous-ensembles.

💡 À retenir

Utiliser ROLLUP et CUBE permet d'obtenir des totaux et sous-totaux multi-niveaux dans les rapports d'agrégation, facilitant l'analyse hiérarchique et combinatoire des données.

📖 7. Fonction GROUPING pour distinguer les totaux générés par ROLLUP et CUBE

🔑 Notions clés & Définitions

  • Fonction GROUPING : Une fonction SQL qui prend une seule colonne en paramètre et retourne 1 si la valeur NULL de cette colonne est générée par un sous-total calculé avec ROLLUP ou CUBE, sinon 0.
  • Multi-lignes Les fonctions analytiques Fonction : Des fonctions SQL qui effectuent des calculs ou des classements sur un ensemble de lignes partitionnées, telles que RANK(), DENSE RANK(), FIRST VALUE() ou LAST VALUE(), en utilisant la clause OVER.
  • Fonction DENSE RANK : Une fonction analytique SQL qui attribue un rang consécutif aux lignes dans une partition sans laisser de lacunes, même en cas d'égalité, contrairement à la fonction RANK().

📝 Points essentiels

  • La fonction GROUPING retourne 1 si la colonne contient une valeur NULL générée par un ROLLUP ou CUBE, sinon 0, ce qui évite la confusion entre NULLs réels et NULLs de totaux.
  • GROUPING permet d’identifier clairement les lignes de totaux dans les résultats d’agrégation complexes, facilitant leur interprétation.
  • Elle accepte une seule colonne comme param`etre et retourne: 1 si la colonne contient une valeur null g´en´er´e dans le cadre d’un sous-total par un ROLLUP ou b FROM tab1 FULL OUTER JOIN tab2 ON tab1.

💡 À retenir

Identifier clairement les lignes de totaux dans les résultats d'agrégation complexes grâce à la fonction GROUPING, pour une interprétation précise.

📖 8. Sous-interrogations monolignes et multilignes avec opérateurs de comparaison

🔑 Notions clés & Définitions

  • Sous int´errogations : Des requêtes imbriquées placées entre parenthèses, utilisées pour fournir une ou plusieurs valeurs dans la requête principale.

📝 Points essentiels

  • Les sous-interrogations multilignes retournent plusieurs valeurs et s'utilisent avec des opérateurs multiligne comme IN, ALL, ANY.
  • Notez Bien Toute colonne ou expression de la liste SELECT qui ne constitue pas une fonction d’agr´egation doit figurer dans la clause GROUP BY Exemple: SELECT department id, job id, trunc(AVG(salary),3) FROM employees WHERE department id in(80,90) GROUP BY department id, job id 59/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions multi-lignes La clause HAVING La clause HAVING permet de restreindre l’affichage des r´esultats de groupes a ceux qui v´erifient la condition dans cette clause Les lignes sont regroup´ees La fonction de groupe est appliqu´ee Les groupes qui correspondent a la clause HAVING sont affich´es Syntaxe SELECT [colonne,] fonction groupe(colonne), ...

💡 À retenir

Les sous-interrogations multilignes retournent plusieurs valeurs et s'utilisent avec des opérateurs multiligne comme IN, ALL, ANY.

📖 9. Types de jointures en SQL : interne, externe, équijointure, auto-jointure, naturelle, produit cartésien

🔑 Notions clés & Définitions

  • Jointure entre A et B : Opération permettant d'extraire des données à partir de plusieurs tables en combinant les lignes selon une condition de jointure entre les tables A et B.
  • Interne : Type de jointure qui retourne uniquement les lignes des deux tables qui satisfont la condition de jointure.
  • Externe : Type de jointure qui inclut toutes les lignes satisfaisant la condition de jointure ainsi que les lignes d'une table pour lesquelles aucune correspondance n'existe dans l'autre table, selon qu'elle soit gauche, droite ou complète.
  • Auto-jointure : Jointure d'une table avec elle-même, utilisée pour comparer ou associer des lignes au sein de la même table.
  • Produit cartésien : Résultat de la combinaison de toutes les lignes de deux tables sans condition de jointure, produisant un nombre de lignes égal au produit du nombre de lignes des deux tables.

📝 Points essentiels

  • La jointure interne retourne les lignes avec correspondance dans les deux tables.
  • Le produit cartésien combine toutes les lignes de deux tables sans condition de jointure.

💡 À retenir

Comprendre les différents types de jointures permet de combiner efficacement les données de plusieurs tables en fonction des besoins spécifiques d'extraction.

📖 10. Opérateurs ensemblistes en SQL : UNION, UNION ALL, INTERSECT, MINUS

🔑 Notions clés & Définitions

  • UNION ALL : Opérateur ensembliste SQL qui combine les résultats de deux requêtes en conservant tous les doublons, sans élimination, avec les mêmes contraintes sur le nombre et le type des colonnes.
  • Opérateur UNION : Opérateur ensembliste SQL qui fusionne deux ensembles de résultats en supprimant les doublons, sous condition que les colonnes correspondent en nombre et type.
  • INTERSECT L’op´erateur MINUS : Opérateur ensembliste SQL qui retourne uniquement les lignes communes aux deux ensembles de résultats.

📝 Points essentiels

  • UNION élimine les doublons entre deux ensembles de résultats.
  • INTERSECT retourne les lignes communes aux deux ensembles de résultats.

💡 À retenir

Utiliser les opérateurs ensemblistes pour combiner ou comparer des ensembles de résultats SQL.

📖 11. Syntaxe et contraintes des opérateurs ensemblistes en SQL

🔑 Notions clés & Définitions

  • Ensemblistes Jointure interne Jointure externe : Une opération qui retourne uniquement les lignes pour lesquelles la condition de jointure est satisfaite dans les deux tables impliquées.

📝 Points essentiels

  • Les opérateurs ensemblistes exigent que le nombre et le type des colonnes soient identiques dans les requêtes combinées.
  • La clause ORDER BY s'applique à l'ensemble du résultat combiné, pas aux requêtes individuelles.

💡 À retenir

Les opérateurs ensemblistes en SQL requièrent une correspondance stricte du nombre et du type des colonnes entre les requêtes combinées, et la clause ORDER BY doit être appliquée globalement au résultat final pour assurer la validité syntaxique et sémantique des opérations.

📖 12. Exemples pratiques d’utilisation des opérateurs ensemblistes et jointures

🔑 Notions clés & Définitions

  • Jointures Les op´erateurs ensemblistes : Une technique en SQL permettant de relier des tables selon une condition spécifique, incluant des types comme la jointure interne, externe, naturelle, auto-jointure, et le produit cartésien qui résulte de l'absence ou d'une condition incorrecte.

📝 Points essentiels

  • Les exemples illustrent comment combiner des données avec UNION, UNION ALL, INTERSECT et MINUS, ainsi que comment relier des tables avec différentes jointures comme la jointure interne, externe, naturelle et le produit cartésien.
  • Les exemples montrent les effets concrets des opérateurs ensemblistes et des jointures sur les résultats, notamment la gestion des doublons avec UNION ALL et l'impact des conditions de jointure sur le nombre de lignes retournées.

💡 À retenir

Appliquer concrètement les opérateurs ensemblistes et les jointures permet de combiner et relier efficacement des données en SQL pour résoudre des cas pratiques.

🧩 Compléments de couverture

  1. Détail source à réviser : de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Le langage SQL Langage d’Int´errogation de Donn´ees Ines BAKLOUTI [email protected] Ecole Sup´erieure Priv´ee d’Ing´enie (Source: "de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Le langage SQL Langage d’Int´errogation de Donn´ees Ines BAKLOUTI [email protected] Ecole Sup´erieure Priv´ee d’Ing´enierie et de Technologies Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes")
  2. Détail source à réviser : Auto-jointure Jointure naturelle Produit cart´esien 5 Les op´erateurs ensemblistes L’op´erateur UNION L’op´erateur UNION ALL L’op´erateur INTERSECT L’op´erateur MINUS 2/90 Extraction de donn´ees Les fonctions Les sous in (Source: "Auto-jointure Jointure naturelle Produit cart´esien 5 Les op´erateurs ensemblistes L’op´erateur UNION L’op´erateur UNION ALL L’op´erateur INTERSECT L’op´erateur MINUS 2/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Plan 1 Extraction de")
  3. Détail source à réviser : * FROM departments; 4/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Instruction SELECT Exemple 2 SE (Source: "* FROM departments; 4/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Instruction SELECT Exemple 2 SELECT department id, department name FROM departments; Exemple 3 SELECT DISTINCT department id FROM employees; 5/90 Extraction de donn´ees")
  4. Détail source à réviser : NULL est diff´erente de z´ero, espace ou chaˆıne vide Exemple SELECT last name, first name, commission pct FROM employees; 7/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs (Source: "NULL est diff´erente de z´ero, espace ou chaˆıne vide Exemple SELECT last name, first name, commission pct FROM employees; 7/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Valeur NULL et expressions arithm´ethiques Les expressions")
  5. Détail source à réviser : N´ecessit´e des guillemets (”alias”) s’il contient des espaces ou des caracteres sp´eciaux (# $), ou s’il distingue les majuscules des minuscules Exemple SELECT last name nom, first name AS pr´enom, salary*12 ”revenu an _(Source: "N´ecessit´e des guillemets (”alias”) s’il contient des espaces ou des caracteres sp´eciaux (# $), ou s’il distingue les majuscules des minuscules Exemple SELECT last name nom, first name AS pr´enom, salary*12 ”revenu annuel” FROM employees; 9/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes")_
  6. Détail source à réviser : la clause WHERE Syntaxe SELECT * | { [DISTINCT] <colonne> | <expression> [alias],...} FROM <nom table> [WHERE <condition(s)>]; Exemple SELECT employee id, last name, department id FROM employees WHERE department id= 80; (Source: "la clause WHERE Syntaxe SELECT * | { [DISTINCT] <colonne> | <expression> [alias],...} FROM <nom table> [WHERE <condition(s)>]; Exemple SELECT employee id, last name, department id FROM employees WHERE department id= 80; 11/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT")
  7. Détail source à réviser : op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Op´erateurs de comparaison 13/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensembliste (Source: "op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Op´erateurs de comparaison 13/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Op´erateurs de comparaison L’op´erateur BETWEEN Exemple 1 SELECT first name,")
  8. Détail source à réviser : Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Op´erateurs de comparaison L’op´erateur LIKE L’op´erateur LIKE permet de recher (Source: "Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Op´erateurs de comparaison L’op´erateur LIKE L’op´erateur LIKE permet de rechercher des chaˆınes de caracteres a l’aide de caracteres g´en´eriques Les conditions de recherche peuvent contenir des caracteres")
  9. Détail source à réviser : Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Op´erateurs logiques 18/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les (Source: "Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Op´erateurs logiques 18/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Op´erateurs logiques L’op´erateur AND")
  10. Détail source à réviser : Op´erateurs logiques L’op´erateur NOT Exemple SELECT last name, job id FROM employees WHERE job id NOT IN (’IT PROG’, ’ST CLERK’, ’SA REP’) ; 21/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointu (Source: "Op´erateurs logiques L’op´erateur NOT Exemple SELECT last name, job id FROM employees WHERE job id NOT IN (’IT PROG’, ’ST CLERK’, ’SA REP’) ; 21/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Op´erateurs logiques R`egles de priorit´e")
  11. Détail source à réviser : SELECT Restriction de donn´ees Tri de donn´ees Tri de donn´ees: la clause ORDER BY La clause ORDER BY: permet de triez les lignes extraites ASC : ordre croissant (par d´efaut) DESC : ordre d´ecroissant toujours la derni _(Source: "SELECT Restriction de donn´ees Tri de donn´ees Tri de donn´ees: la clause ORDER BY La clause ORDER BY: permet de triez les lignes extraites ASC : ordre croissant (par d´efaut) DESC : ordre d´ecroissant toujours la derniere clause dans l’instruction SELECT Syntaxe SELECT * | { [DISTINCT] <colonne> | <expression> [alias],...} FROM <nom table>; [ WHERE")_
  12. Détail source à réviser : tri selon plusieurs colonnes SELECT employee id, last name, salary12 ”Salaire Annuel” FROM employees ORDER BY ”Salaire Annuel”, last name DESC; —ou bien ORDER By 3, 2 DESC 25/90 Extraction de donn´ees Les fonctions Les _(Source: "tri selon plusieurs colonnes SELECT employee id, last name, salary12 ”Salaire Annuel” FROM employees ORDER BY ”Salaire Annuel”, last name DESC; —ou bien ORDER By 3, 2 DESC 25/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions")_
  13. Détail source à réviser : lignes et ramenent un plusieurs r´esultats Fonctions multi-lignes: manipulent plusieurs lignes et ramenent un seul r´esultat 27/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erat (Source: "lignes et ramenent un plusieurs r´esultats Fonctions multi-lignes: manipulent plusieurs lignes et ramenent un seul r´esultat 27/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions de caract`eres")
  14. Détail source à réviser : multi-lignes Les fonctions de caracteres Fonctions de manipulation de caracteres Exemple SELECT first name, last name, job id, CONCAT(first name,last name) ”Nom et pr´enom”, LENGTH (last name) ”longueur nom”, INSTR(las (Source: "multi-lignes Les fonctions de caracteres Fonctions de manipulation de caracteres Exemple SELECT first name, last name, job id, CONCAT(first name,last name) ”Nom et pr´enom”, LENGTH (last name) ”longueur nom”, INSTR(last name,’a’) ”position a”, LPAD(last name,10,’’), RPAD(last name,10,’’) FROM employees WHERE SUBSTR(job id, 4) = ’REP’; 30/90 Extraction")
  15. Détail source à réviser : id=80; 32/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions de dates D (Source: "id=80; 32/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions de dates Dans la base de donn´ees Oracle, les dates sont stock´ees dans un format num´eriques interne: si`ecle, ann´ee, mois, jour, heures,")
  16. Détail source à réviser : par 24 soustraction d’une date d’une autre afin de d´eterminer le nombre de jours entre les deux dates Exemple SELECT first name, (SYSDATE-hire date) AS jours, (SYSDATE-hire date)/7 AS semaines FROM employees; 34/90 Extr (Source: "par 24 soustraction d’une date d’une autre afin de d´eterminer le nombre de jours entre les deux dates Exemple SELECT first name, (SYSDATE-hire date) AS jours, (SYSDATE-hire date)/7 AS semaines FROM employees; 34/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les")
  17. Détail source à réviser : 36/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions de conversion Con (Source: "36/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions de conversion Conversion implicite Pour les affectations, le serveur Oracle peut convertir automatiquement les types de donn´ees suivants: L’expression")
  18. Détail source à réviser : analytiques Les fonctions multi-lignes Les fonctions de conversion Conversion explicite: fonction TO CHAR 39/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les (Source: "analytiques Les fonctions multi-lignes Les fonctions de conversion Conversion explicite: fonction TO CHAR 39/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions de conversion Conversion")
  19. Détail source à réviser : where hire date>to date(’01/01/1982’,’DD- MM-YYYY’); Exemple 2 Select first name, salary from employees where salary>=to number(’15000’); 41/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures (Source: "where hire date>to date(’01/01/1982’,’DD- MM-YYYY’); Exemple 2 Select first name, salary from employees where salary>=to number(’15000’); 41/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Autres fonctions Fonction")
  20. Détail source à réviser : Autres fonctions Fonction NVL / NVL2 NVL(expr,val): retourne val si expr est NULL NVL2(expr,val1,val2): retourne val1 si expr est NOT NULL et val2 si expr est NULL expr peut ˆetre de type date, les caractere et valeur n _(Source: "Autres fonctions Fonction NVL / NVL2 NVL(expr,val): retourne val si expr est NULL NVL2(expr,val1,val2): retourne val1 si expr est NOT NULL et val2 si expr est NULL expr peut ˆetre de type date, les caractere et valeur num´erique. Les types de donn´ees de expr et val doivent correspondre. Exemple SELECT first name, salary, commission pct,")_
  21. Détail source à réviser : LENGTH(first name) nbr1, last name, LENGTH(last name) nbr2, NULLIF(LENGTH(first name), LENGTH(last name)) result FROM employees; 44/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´er (Source: "LENGTH(first name) nbr1, last name, LENGTH(last name) nbr2, NULLIF(LENGTH(first name), LENGTH(last name)) result FROM employees; 44/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Autres fonctions Fonction COALESCE")
  22. Détail source à réviser : when <condition1> then <resultat1> . . . when <conditionN> then <resultatN> else resultat end 46/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions m (Source: "when <condition1> then <resultat1> . . . when <conditionN> then <resultatN> else resultat end 46/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Autres fonctions Fonction CASE Exemple SELECT first name, department id,")
  23. Détail source à réviser : s´erie d’op´erations effectu´ees dans une requˆete a l’exception de la clause finale ORDER BY. Par cons´equent, elles analytiques ne peuvent apparaˆıtre que dans la liste de s´election ou clause ORDER BY. Syntaxe d’une _(Source: "s´erie d’op´erations effectu´ees dans une requˆete a l’exception de la clause finale ORDER BY. Par cons´equent, elles analytiques ne peuvent apparaˆıtre que dans la liste de s´election ou clause ORDER BY. Syntaxe d’une fonction analytique fonction analytique(expression) OVER( [clause partitionnement] [clause ordre]) clause partitionnement: sous forme")_
  24. Détail source à réviser : row number() retourne le num´ero s´equentiel d’une ligne dans une partition de r´esultats, en commen¸cant a 1 pour la premiere ligne de chaque partition. Exemple 1 SELECT employee id,department id, salary, row number() (Source: "row number() retourne le num´ero s´equentiel d’une ligne dans une partition de r´esultats, en commen¸cant a 1 pour la premiere ligne de chaque partition. Exemple 1 SELECT employee id,department id, salary, row number() over(order by salary DESC) ”N° Salaire” FROM employees ; 49/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures")
  25. Détail source à réviser : Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions analytiques Fonction RANK() La fonction rank() retourne le rang dechaque ligne au sein de la partition d’un ensemble de r´esulta (Source: "Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions analytiques Fonction RANK() La fonction rank() retourne le rang dechaque ligne au sein de la partition d’un ensemble de r´esultats Exemple SELECT employee id,department id, salary, rank() over(partition by department id order by salary DESC) ”Rang Salaire” FROM")
  26. Détail source à réviser : fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions analytiques Fonction FIRST VALUE() La fonction fir (Source: "fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions analytiques Fonction FIRST VALUE() La fonction first value() retourne la premi`ere valeur d’une partition Exemple SELECT employee id,department id, salary, first value(salary)")
  27. Détail source à réviser : sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions multi-lignes Les fonctions multi-lignes (appel´ees aussi de grou (Source: "sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions multi-lignes Les fonctions multi-lignes (appel´ees aussi de groupe ou d’agr´egation) op`erent sur des ensembles de lignes afin de renvoyer un seul r´esultat par groupe. Les fonctions de groupe les plus")
  28. Détail source à réviser : valeurs NULL 55/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions mult (Source: "valeurs NULL 55/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions multi-lignes Syntaxe SELECT [colonne,] fonction groupe(colonne), ... FROM <nom table> [WHERE <condition>] [GROUP BY colonne] [ORDER BY")
  29. Détail source à réviser : COUNT(DISTINCT commission pct) ”distinct” FROM employees WHERE department id in(80,90); =>COUNT(expr) /COUNT(all expr): retourne le nombre de ligne ayant des valeurs non NULL de expr =>COUNT(distinct expr): retourne le n (Source: "COUNT(DISTINCT commission pct) ”distinct” FROM employees WHERE department id in(80,90); =>COUNT(expr) /COUNT(all expr): retourne le nombre de ligne ayant des valeurs non NULL de expr =>COUNT(distinct expr): retourne le nombre de ligne ayant des valeurs non NULL et DISTINCT de expr 57/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les")
  30. Détail source à réviser : analytiques Les fonctions multi-lignes Les fonctions multi-lignes La clause GROUP BY Exemple 1 SELECT department id, trunc(AVG(salary),3) FROM employees WHERE department id in(80,90) GROUP BY department id; Notez Bien To (Source: "analytiques Les fonctions multi-lignes Les fonctions multi-lignes La clause GROUP BY Exemple 1 SELECT department id, trunc(AVG(salary),3) FROM employees WHERE department id in(80,90) GROUP BY department id; Notez Bien Toute colonne ou expression de la liste SELECT qui ne constitue pas une fonction d’agr´egation doit figurer dans la clause GROUP BY Exemple:")
  31. Détail source à réviser : a la clause HAVING sont affich´es Syntaxe SELECT [colonne,] fonction groupe(colonne), ... FROM <nom table> [WHERE <condition>] [GROUP BY colonne] [HAVING <condition groupe>] [ORDER BY colonne]; 60/90 Extraction de donn´ _(Source: "a la clause HAVING sont affich´es Syntaxe SELECT [colonne,] fonction groupe(colonne), ... FROM <nom table> [WHERE <condition>] [GROUP BY colonne] [HAVING <condition groupe>] [ORDER BY colonne]; 60/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions")_
  32. Détail source à réviser : L’op´erateur ROLLUP L’op´erateur ROLLUP : calcule des agr´egats (SUM, COUNT, MAX, MIN, AVG) a tous les niveaux de totalisation sur une hi´erarchie de dimensions et calcule le total g´en´eral selon l’ordre de gauche a d (Source: "L’op´erateur ROLLUP L’op´erateur ROLLUP : calcule des agr´egats (SUM, COUNT, MAX, MIN, AVG) a tous les niveaux de totalisation sur une hi´erarchie de dimensions et calcule le total g´en´eral selon l’ordre de gauche a droite dans la clause GROUP BY S’il y a n colonnes de regroupements, GROUP BY ROLLUP g´en`ere n+1 niveaux de totalisation ROLLUP (a,")
  33. Détail source à réviser : analytiques Les fonctions multi-lignes Les fonctions multi-lignes L’op´erateur CUBE L’op´erateur CUBE : calcule des agr´egats (SUM, COUNT, MAX, MIN, AVG) a diff´erents niveaux d’agr´egation comme ROLLUP mais de plus per _(Source: "analytiques Les fonctions multi-lignes Les fonctions multi-lignes L’op´erateur CUBE L’op´erateur CUBE : calcule des agr´egats (SUM, COUNT, MAX, MIN, AVG) a diff´erents niveaux d’agr´egation comme ROLLUP mais de plus permet de calculer toutes les combinaisons d’agr´egations : L’op´erateur CUBE: calcule des sous-totaux pour toutes les combinaisons")_
  34. Détail source à réviser : donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions multi-lignes La fonction GROUPING Les (Source: "donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions multi-lignes La fonction GROUPING Les lignes de totaux correspondent g´enaralement aux lignes ayant des valeurs NULL =>possibilit´e de confusion si les lignes contiennent")
  35. Détail source à réviser : id, SUM (SALARY), GROUPING(Department id), GROUPING( JOB id) FROM EMPLOYEES WHERE DEPARTMENT ID in (10,20,30) GROUP BY Cube(Department id, JOB id); 67/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les (Source: "id, SUM (SALARY), GROUPING(Department id), GROUPING( JOB id) FROM EMPLOYEES WHERE DEPARTMENT ID in (10,20,30) GROUP BY Cube(Department id, JOB id); 67/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les sous-int´errogations monoligne Les sous-int´errogations multi-lignes Plan 1 Extraction de")
  36. Détail source à réviser : Syntaxe SELECT <colonne1>[, <colonne2>,..., <colonneN>] FROM <nom table> WHERE <expression> OPERATEUR (SELECT SELECT <colonne1>[, <colonne2>,..., <colonneN>] FROM <nom table>) Mettre les sous-interrogations entre parenth (Source: "Syntaxe SELECT <colonne1>[, <colonne2>,..., <colonneN>] FROM <nom table> WHERE <expression> OPERATEUR (SELECT SELECT <colonne1>[, <colonne2>,..., <colonneN>] FROM <nom table>) Mettre les sous-interrogations entre parenth`eses La clause order by de la sous-interrogation n’est pas n´ecessaire Utilisez des op´erateurs de comparaison monolignes avec")
  37. Détail source à réviser : ensemblistes Les sous-int´errogations monoligne Les sous-int´errogations multi-lignes Les sous int´errogations monoligne Renvoient une seule ligne Utilisent des operateurs de comparaison monolignes (= , >, >= , < , <= , (Source: "ensemblistes Les sous-int´errogations monoligne Les sous-int´errogations multi-lignes Les sous int´errogations monoligne Renvoient une seule ligne Utilisent des operateurs de comparaison monolignes (= , >, >= , < , <= , <>) Exemple 1 SELECT last name, job id, salary FROM employees WHERE job id =( SELECT job id FROM employees WHERE employee id=124")
  38. Détail source à réviser : Les op´erateurs ensemblistes Les sous-int´errogations monoligne Les sous-int´errogations multi-lignes Les sous int´errogations multi-lignes Renvoient plusieurs lignes Utilisent des op´erateurs de comparaison multiligne ( (Source: "Les op´erateurs ensemblistes Les sous-int´errogations monoligne Les sous-int´errogations multi-lignes Les sous int´errogations multi-lignes Renvoient plusieurs lignes Utilisent des op´erateurs de comparaison multiligne (IN, ANY, ALL) Exemple 1 SELECT employee id, last name, job id, salary FROM employees WHERE salary > ANY (SELECT salary FROM employees")
  39. Détail source à réviser : Equijointure / Non-´equijointure Auto-jointure Jointure naturelle Produit cart´esien Plan 1 Extraction de donn´ees 2 Les fonctions 3 Les sous int´errogations 4 Les jointures Jointure interne Jointure externe Equijointure (Source: "Equijointure / Non-´equijointure Auto-jointure Jointure naturelle Produit cart´esien Plan 1 Extraction de donn´ees 2 Les fonctions 3 Les sous int´errogations 4 Les jointures Jointure interne Jointure externe Equijointure / Non-´equijointure Auto-jointure Jointure naturelle Produit cart´esien 5 Les op´erateurs ensemblistes 75/90 Extraction de donn´ees")
  40. Détail source à réviser : tables Il existe deu types de jointure: jointure interne jointure externe Dans ce qui suit on utilisera les tables tab1 et tab2 suivantes pour les exemples: 76/90 Extraction de donn´ees Les fonctions Les sous int´errogat (Source: "tables Il existe deu types de jointure: jointure interne jointure externe Dans ce qui suit on utilisera les tables tab1 et tab2 suivantes pour les exemples: 76/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Jointure interne Jointure externe Equijointure / Non-´equijointure Auto-jointure")
  41. Détail source à réviser : Jointure interne Jointure externe Equijointure / Non-´equijointure Auto-jointure Jointure naturelle Produit cart´esien Jointure externe Une jointure externe ´etend le r´esultat d’une jointure interne Une jointure externe (Source: "Jointure interne Jointure externe Equijointure / Non-´equijointure Auto-jointure Jointure naturelle Produit cart´esien Jointure externe Une jointure externe ´etend le r´esultat d’une jointure interne Une jointure externe renvoie toutes les lignes qui satisfont la condition de jointure et renvoie ´egalement une partie ou l’ensemble des lignes d’une")
  42. Détail source à réviser : FROM T1 {LEFT | RIGHT | FULL} [ OUTER ] JOIN T2 ON <condition jointure> WHERE <condition> 78/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Jointure interne Jo (Source: "FROM T1 {LEFT | RIGHT | FULL} [ OUTER ] JOIN T2 ON <condition jointure> WHERE <condition> 78/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Jointure interne Jointure externe Equijointure / Non-´equijointure Auto-jointure Jointure naturelle Produit cart´esien Jointure externe Exemple 1: SELECT")
  43. Détail source à réviser : Une ´equijointure est une jointure avec une condition de jointure contenant un op´erateur d’´egalit´e (= , LIKE , etc) Exemple 1: SELECT tab1.a, tab1.b, tab2.a,tab2.b FROM tab1 LEFT OUTER JOIN tab2 ON tab1.a=tab2.a; Une (Source: "Une ´equijointure est une jointure avec une condition de jointure contenant un op´erateur d’´egalit´e (= , LIKE , etc) Exemple 1: SELECT tab1.a, tab1.b, tab2.a,tab2.b FROM tab1 LEFT OUTER JOIN tab2 ON tab1.a=tab2.a; Une non-´equijointure est une jointure avec une condition de jointure contenant un op´erateur d’in´egalit´e (< ,<= , > , >= ,")
  44. Détail source à réviser : Les jointures Les op´erateurs ensemblistes Jointure interne Jointure externe Equijointure / Non-´equijointure Auto-jointure Jointure naturelle Produit cart´esien Jointure naturelle Une jointure naturelle est bas´ee sur t (Source: "Les jointures Les op´erateurs ensemblistes Jointure interne Jointure externe Equijointure / Non-´equijointure Auto-jointure Jointure naturelle Produit cart´esien Jointure naturelle Une jointure naturelle est bas´ee sur toutes les colonnes des deux tables portant le mˆeme nom Elle s´electionne les lignes des deux tables dont les valeurs sont")
  45. Détail source à réviser : id WHERE departments.location id <>1700; 82/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Jointure interne Jointure externe Equijointure / Non-´equijointure A (Source: "id WHERE departments.location id <>1700; 82/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Jointure interne Jointure externe Equijointure / Non-´equijointure Auto-jointure Jointure naturelle Produit cart´esien Produit cart´esien On obtient un produit cart´esien lorsque : Une")
  46. Détail source à réviser : 2 Les fonctions 3 Les sous int´errogations 4 Les jointures 5 Les op´erateurs ensemblistes L’op´erateur UNION L’op´erateur UNION ALL L’op´erateur INTERSECT L’op´erateur MINUS 84/90 Extraction de donn´ees Les fonctions Les (Source: "2 Les fonctions 3 Les sous int´errogations 4 Les jointures 5 Les op´erateurs ensemblistes L’op´erateur UNION L’op´erateur UNION ALL L’op´erateur INTERSECT L’op´erateur MINUS 84/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes L’op´erateur UNION L’op´erateur UNION ALL L’op´erateur INTERSECT")
  47. Détail source à réviser : WHERE salary >= 15000 ORDER BY employee id; 86/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes L’op´erateur UNION L’op´erateur UNION ALL L’op´erateur INTERSECT (Source: "WHERE salary >= 15000 ORDER BY employee id; 86/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes L’op´erateur UNION L’op´erateur UNION ALL L’op´erateur INTERSECT L’op´erateur MINUS L’op´erateur UNION Exemple 3 SELECT employee id, job id, salary FROM employees WHERE job id IN(’AC MGR’,’AD VP’)")
  48. Détail source à réviser : 88/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes L’op´erateur UNION L’op´erateur UNION ALL L’op´erateur INTERSECT L’op´erateur MINUS L’op´erateur INTERSECT Ex (Source: "88/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes L’op´erateur UNION L’op´erateur UNION ALL L’op´erateur INTERSECT L’op´erateur MINUS L’op´erateur INTERSECT Exemple SELECT employee id, job id, salary FROM employees WHERE job id IN(’AC MGR’,’AD VP’) INTERSECT SELECT employee id, job id, salary")
  49. Détail source à réviser : SELECT : indique les colonnes a afficher DISTINCT : supprime les doublons FROM : indique les tables contenant les colonnes Exemple 1 SELECT * FROM departments; _(Source: "SELECT : indique les colonnes a afficher DISTINCT : supprime les doublons FROM : indique les tables contenant les colonnes Exemple 1 SELECT * FROM departments;")_
  50. Détail source à réviser : rst name, commission pct FROM employees; 7/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Valeur (Source: "rst name, commission pct FROM employees; 7/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Valeur")
  51. Détail source à réviser : Exemple SELECT employee id, last name, department id FROM employees WHERE department id= 80; (Source: "Exemple SELECT employee id, last name, department id FROM employees WHERE department id= 80;")
  52. Détail source à réviser : Exemple SELECT first name, manager id FROM employees WHERE manager id IS NULL; 17/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction (Source: "Exemple SELECT first name, manager id FROM employees WHERE manager id IS NULL; 17/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Op´erateurs logiques 18/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les")
  53. Détail source à réviser : Exemple 1 SELECT last name, job id, salary FROM employees WHERE ( job id= ’SA MAN’ OR job id= ’AD VP’ ) AND salary > 12000; (Source: "Exemple 1 SELECT last name, job id, salary FROM employees WHERE ( job id= ’SA MAN’ OR job id= ’AD VP’ ) AND salary > 12000;")
  54. Détail source à réviser : 2 DESC 24/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Tri de donn´ees: la clause ORDER BY (Source: "2 DESC 24/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Instruction SELECT Restriction de donn´ees Tri de donn´ees Tri de donn´ees: la clause ORDER BY")
  55. Détail source à réviser : 4) = ’REP’; 30/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions num´e (Source: "4) = ’REP’; 30/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions num´eriques 31/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-...")
  56. Détail source à réviser : tre les deux dates Exemple SELECT first name, (SYSDATE-hire date) AS jours, (SYSDATE-hire date)/7 AS semaines FROM employees; (Source: "tre les deux dates Exemple SELECT first name, (SYSDATE-hire date) AS jours, (SYSDATE-hire date)/7 AS semaines FROM employees;")
  57. Détail source à réviser : 2000’ entraˆıne la conversion implicite de la chaˆıne ‘2000’ en valeur num´erique 2000 L’expression hire date>’01-Jan-90’ entraˆıne la conversion implicite de la chaˆıne ’01-Jan-90’ en date 37/90 Extraction de donn´ees L (Source: "2000’ entraˆıne la conversion implicite de la chaˆıne ‘2000’ en valeur num´erique 2000 L’expression hire date>’01-Jan-90’ entraˆıne la conversion implicite de la chaˆıne ’01-Jan-90’ en date 37/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les")
  58. Détail source à réviser : INCONNU ’) AS ”NOM DEPARTEMENT” FROM employees; 42/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les foncti (Source: "INCONNU ’) AS ”NOM DEPARTEMENT” FROM employees; 42/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Autres fonctions Fonction NVL / NVL2 NVL(expr,val): retourne val si expr est NULL NVL2(")
  59. Détail source à réviser : ) : retourne la premiere valeur non nulle Exemple select Coalesce(NULL,1,NULL,7) from dual; => retourne 1 45/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Le _(Source: ") : retourne la premiere valeur non nulle Exemple select Coalesce(NULL,1,NULL,7) from dual; => retourne 1 45/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Autres fonctions Fonction CASE La fonction case ´evalue une l...")_
  60. Détail source à réviser : Syntaxe d’une fonction analytique fonction analytique(expression) OVER( [clause partitionnement] [clause ordre]) clause partitionnement: sous forme PARTITION BY expression1,expression2, (Source: "Syntaxe d’une fonction analytique fonction analytique(expression) OVER( [clause partitionnement] [clause ordre]) clause partitionnement: sous forme PARTITION BY expression1,expression2,")
  61. Détail source à réviser : ono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions analytiques Fonction LAST VALUE() La fonction last value() retourne la derniere valeur d’une partition Exemple SELECT employee id,department _(Source: "ono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions analytiques Fonction LAST VALUE() La fonction last value() retourne la derniere valeur d’une partition Exemple SELECT employee id,department")_
  62. Détail source à réviser : Les fonctions de groupe les plus utilis´ees: AVG([distinct | all] expr) : valeur moyenne en ignorant les valeurs NULL COUNT ([* | distinct | all] expr) : nombre de lignes ou expr est diff´erente de NULL _(Source: "Les fonctions de groupe les plus utilis´ees: AVG([distinct | all] expr) : valeur moyenne en ignorant les valeurs NULL COUNT ([* | distinct | all] expr) : nombre de lignes ou expr est diff´erente de NULL")_
  63. Détail source à réviser : s NULL de la colonne Exemple: SELECT trunc(AVG(commission pct) ,3) FROM employees; (Source: "s NULL de la colonne Exemple: SELECT trunc(AVG(commission pct) ,3) FROM employees;")
  64. Détail source à réviser : c) (a, b, c) (a, b) (a) () 62/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les (Source: "c) (a, b, c) (a, b) (a) () 62/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions multi-lignes L’op´erateur ROLLUP Exemple SELECT Department id, JOB id,manager id, SUM (SALARY) FROM EMPLOYEES WHERE DEPARTMENT...")
  65. Détail source à réviser : culer toutes les combinaisons d’agr´egations : L’op´erateur CUBE: calcule des sous-totaux pour toutes les combinaisons possibles d’un ensemble de colonnes de regroupement Si la clause CUBE contient n colonnes, CUBE calcu (Source: "culer toutes les combinaisons d’agr´egations : L’op´erateur CUBE: calcule des sous-totaux pour toutes les combinaisons possibles d’un ensemble de colonnes de regroupement Si la clause CUBE contient n colonnes, CUBE calcule 2n combinaisons de totaux CUBE (a, b, c) (a, b, c) (a, b) (a, c) (a) (b, c) (b) (c) () 64/90 Extraction de donn´ees Les fonctions Les...")
  66. Détail source à réviser : ) op´erateurs multi-lignes (IN, ALL, ANY) La sous-interrogation (requˆete interne) est ex´ecut´ee une seule fois avant la requˆete principale Le r´esultat de la sous-interrogation est utilis´e par la requˆete principale (Source: ") op´erateurs multi-lignes (IN, ALL, ANY) La sous-interrogation (requˆete interne) est ex´ecut´ee une seule fois avant la requˆete principale Le r´esultat de la sous-interrogation est utilis´e par la requˆete principale (requˆete externe) Une sous-interrogation est utilis´ee dans les clauses suivantes : WHERE HAVING FROM 70/90 Extraction de donn´ee")
  67. Détail source à réviser : 20) 72/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les sous-int´errogations monoligne Les sous-int´errogations multi-lignes Les sous int´errogations multi-l (Source: "20) 72/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les sous-int´errogations monoligne Les sous-int´errogations multi-lignes Les sous int´errogations multi-lignes Renvoient plusieurs lignes Utilisent des op´erateurs de comparaison multiligne (IN, ANY, ALL) Exemple 1 SELECT employee id, last na...")
  68. Détail source à réviser : qui suit on utilisera les tables tab1 et tab2 suivantes pour les exemples: 76/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Jointure interne Jointure (Source: "qui suit on utilisera les tables tab1 et tab2 suivantes pour les exemples: 76/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Jointure interne Jointure")
  69. Détail source à réviser : Il existe 3 types de jointures externe: jointure externe gauche: jointure entre A et B => afficher les lignes de A qui ne satisfont pas la condition de jointure jointure externe droite: jointure entre A et B => afficher (Source: "Il existe 3 types de jointures externe: jointure externe gauche: jointure entre A et B => afficher les lignes de A qui ne satisfont pas la condition de jointure jointure externe droite: jointure entre A et B => afficher les lignes de B qui ne satisfont pas la condition de join")
  70. Détail source à réviser : 1700; = SELECT department id, department name, location id, city FROM departments INNER JOIN locations USING (location id) WHERE location id <>1700; = SELECT department id, department name, departments (Source: "1700; = SELECT department id, department name, location id, city FROM departments INNER JOIN locations USING (location id) WHERE location id <>1700; = SELECT department id, department name, departments")
  71. Détail source à réviser : Exemple 2 SELECT employee id, job id, salary FROM employees WHERE salary >= 15000 ORDER BY employee id; (Source: "Exemple 2 SELECT employee id, job id, salary FROM employees WHERE salary >= 15000 ORDER BY employee id;")
  72. Détail source à réviser : Exemple 2 SELECT employee id, job id, salary FROM employees WHERE salary >= 15000 MINUS SELECT employee id, job id, salary FROM employees WHERE job id IN(’AC MGR’,’AD VP’) ORDER BY employee id; (Source: "Exemple 2 SELECT employee id, job id, salary FROM employees WHERE salary >= 15000 MINUS SELECT employee id, job id, salary FROM employees WHERE job id IN(’AC MGR’,’AD VP’) ORDER BY employee id;")
  73. Détail source à réviser : 1700; 82/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Jointure interne Jointure externe Equijointure / Non-´equijointure Auto-jointure Jointure naturelle Pro (Source: "1700; 82/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Jointure interne Jointure externe Equijointure / Non-´equijointure Auto-jointure Jointure naturelle Produit cart´esien Produit cart´esien On obtient un produit cart´esien lorsque : Une co")
  74. Détail source à réviser : 1982’,’DD- MM-YYYY’); Exemple 2 Select first name, salary from employees where salary>=to number(’15000’); 41/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Le (Source: "1982’,’DD- MM-YYYY’); Exemple 2 Select first name, salary from employees where salary>=to number(’15000’); 41/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Autres f")
  75. Détail source à réviser : c) (a, b, c) (a, b) (a, c) (a) (b, c) (b) (c) () 64/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonct (Source: "c) (a, b, c) (a, b) (a, c) (a) (b, c) (b) (c) () 64/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions multi-lignes L’op´erateur CUBE Exemple SELECT Department id, JOB id, SUM (SALARY) FROM EMPLOYEES WHERE DE...")
  76. Détail source à réviser : tous les niveaux de totalisation sur une hi´erarchie de dimensions et calcule le total g´en´eral selon l’ordre de gauche a droite dans la clause GROUP BY S’il y a n colonnes de regroupements, GROUP BY ROLLUP g´enere n+ (Source: "tous les niveaux de totalisation sur une hi´erarchie de dimensions et calcule le total g´en´eral selon l’ordre de gauche a droite dans la clause GROUP BY S’il y a n colonnes de regroupements, GROUP BY ROLLUP g´enere n+1 niveaux de totalisation ROLLUP (a, b, c) (a, b, c) (a, b) (a) () 62/90 Extraction de donn´ees Les fonctions Les sous int´errogations Le...")
  77. Détail source à réviser : Exemple 1 SELECT employee id,department id, salary, row number() over(order by salary DESC) ”N° Salaire” FROM employees ; 49/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs (Source: "Exemple 1 SELECT employee id,department id, salary, row number() over(order by salary DESC) ”N° Salaire” FROM employees ; 49/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions analytiques Fonction ROW NUMBER(...")
  78. Détail source à réviser : Elle accepte une seule colonne comme parametre et retourne: 1 si la colonne contient une valeur null g´en´er´e dans le cadre d’un sous-total par un ROLLUP ou CUBE 0 pour une autre valeur, y compris les valeurs NULL stoc _(Source: "Elle accepte une seule colonne comme parametre et retourne: 1 si la colonne contient une valeur null g´en´er´e dans le cadre d’un sous-total par un ROLLUP ou CUBE 0 pour une autre valeur, y compris les valeurs NULL stock´ees 66/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs e")_
  79. Détail source à réviser : Exemple SELECT first name, salary, commission pct, NVL(commission pct,0), NVL(to char(commission pct), ’Pas de commission’) AS ”commission ?”, NVL2(commission pct,commission pctsalary,0) AS ”commision”, to char(NVL2(com _(Source: "Exemple SELECT first name, salary, commission pct, NVL(commission pct,0), NVL(to char(commission pct), ’Pas de commission’) AS ”commission ?”, NVL2(commission pct,commission pctsalary,0) AS ”commision”, to char(NVL2(commission pct,commission pct*100/salary,0)) || ’%’ AS ”pourcen")_
  80. Détail source à réviser : when <conditionN> then <resultatN> else resultat end 46/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les f (Source: "when <conditionN> then <resultatN> else resultat end 46/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Autres fonctions Fonction CASE Exemple SELECT first name, department id, case departmen")
  81. Détail source à réviser : FROM <nom table> [WHERE <condition>] [GROUP BY colonne] [ORDER BY colonne]; Exemple 1 SELECT trunc(AVG(salary),3), SUM(salary), MAX(hire date), MIN(hire date) FROM employees WHERE department id in(80,90); 56/90 Extractio (Source: "FROM <nom table> [WHERE <condition>] [GROUP BY colonne] [ORDER BY colonne]; Exemple 1 SELECT trunc(AVG(salary),3), SUM(salary), MAX(hire date), MIN(hire date) FROM employees WHERE department id in(80,90); 56/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctio")
  82. Détail source à réviser : FROM <nom table> [WHERE <condition>] [GROUP BY colonne] [HAVING <condition groupe>] [ORDER BY colonne]; 60/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les f (Source: "FROM <nom table> [WHERE <condition>] [GROUP BY colonne] [HAVING <condition groupe>] [ORDER BY colonne]; 60/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions multi-lignes La clause HAVING Exemple 1 SELECT dep...")
  83. Détail source à réviser : Le caractere * comptabilise toutes les lignes s´electionn´ees MAX ([distinct | all] expr) : valeur maximale en ignorant les valeurs NULL MIN([ distinct | all] expr) : valeur minimale en ignorant les valeurs NULL STDDEV( _(Source: "Le caractere * comptabilise toutes les lignes s´electionn´ees MAX ([distinct | all] expr) : valeur maximale en ignorant les valeurs NULL MIN([ distinct | all] expr) : valeur minimale en ignorant les valeurs NULL STDDEV([distinct | all] expr) : ecart-type en ignorant les valeurs NULL SUM([distinct | all] expr) : somme en ignorant les valeurs NULL VARIANCE...")_
  84. Détail source à réviser : = SELECT department id, department name, location id, city FROM departments INNER JOIN locations USING (location id) WHERE location id <>1700; (Source: "= SELECT department id, department name, location id, city FROM departments INNER JOIN locations USING (location id) WHERE location id <>1700;")
  85. Détail source à réviser : when <valeurN> then <resultatN> else resultat end 2 case when <condition1> then <resultat1> (Source: "when <valeurN> then <resultatN> else resultat end 2 case when <condition1> then <resultat1>")
  86. Détail source à réviser : de A qui ne satisfont pas la condition de jointure jointure externe droite: jointure entre A et B => afficher les lignes de B qui ne satisfont pas la condition de jointure jointure externe complete: jointure entre A _(Source: "de A qui ne satisfont pas la condition de jointure jointure externe droite: jointure entre A et B => afficher les lignes de B qui ne satisfont pas la condition de jointure jointure externe complete: jointure entre A")_
  87. Détail source à réviser : Une non-´equijointure est une jointure avec une condition de jointure contenant un op´erateur d’in´egalit´e (< ,<= , > , >= , BETWEEN , etc) Exemple 2: SELECT tab1. (Source: "Une non-´equijointure est une jointure avec une condition de jointure contenant un op´erateur d’in´egalit´e (< ,<= , > , >= , BETWEEN , etc) Exemple 2: SELECT tab1.")
  88. Détail source à réviser : un op´erateur d’´egalit´e (= , LIKE , etc) Exemple 1: SELECT tab1. (Source: "un op´erateur d’´egalit´e (= , LIKE , etc) Exemple 1: SELECT tab1.")
  89. Détail source à réviser : l’ordre a l’int´erieur de chaque partition NULLSFIRST/LAST: indique si les valeurs nulles seront en premier ordre/dernier ordre 48/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les _(Source: "l’ordre a l’int´erieur de chaque partition NULLSFIRST/LAST: indique si les valeurs nulles seront en premier ordre/dernier ordre 48/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les")_
  90. Détail source à réviser : fonctions multi-lignes Les fonctions multi-lignes L’op´erateur ROLLUP Exemple SELECT Department id, JOB id,manager id, SUM (SALARY) FROM EMPLOYEES WHERE DEPARTMENT ID in (10,20,30) GROUP BY Rollup(Department id, JOB (Source: "fonctions multi-lignes Les fonctions multi-lignes L’op´erateur ROLLUP Exemple SELECT Department id, JOB id,manager id, SUM (SALARY) FROM EMPLOYEES WHERE DEPARTMENT ID in (10,20,30) GROUP BY Rollup(Department id, JOB")
  91. Détail source à réviser : s-int´errogations multi-lignes Les sous int´errogations multi-lignes Exemple 2 SELECT employee id, last name, job id, salary FROM employees WHERE salary > ALL (SELECT salary FROM employees WHERE job id = ’SA MAN’) AND (Source: "s-int´errogations multi-lignes Les sous int´errogations multi-lignes Exemple 2 SELECT employee id, last name, job id, salary FROM employees WHERE salary > ALL (SELECT salary FROM employees WHERE job id = ’SA MAN’) AND")
  92. Détail source à réviser : t name, location id, city FROM departments NATURAL JOIN locations WHERE location id <>1700; (Source: "t name, location id, city FROM departments NATURAL JOIN locations WHERE location id <>1700;")
  93. Détail source à réviser : –ou bien ORDER By 3 Exemple 3: tri selon plusieurs colonnes SELECT employee id, last name, salary12 ”Salaire Annuel” FROM employees ORDER BY ”Salaire Annuel”, last name DESC; _(Source: "–ou bien ORDER By 3 Exemple 3: tri selon plusieurs colonnes SELECT employee id, last name, salary12 ”Salaire Annuel” FROM employees ORDER BY ”Salaire Annuel”, last name DESC;")_
  94. Détail source à réviser : ieurs lignes et ramenent un seul r´esultat 27/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les _(Source: "ieurs lignes et ramenent un seul r´esultat 27/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les")_
  95. Détail source à réviser : 1/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions num´eriques (Source: "1/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions num´eriques")
  96. Détail source à réviser : 7/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions de conversion (Source: "7/90 Extraction de donn´ees Les fonctions Les sous int´errogations Les jointures Les op´erateurs ensemblistes Les fonctions mono-ligne Les fonctions analytiques Les fonctions multi-lignes Les fonctions de conversion")

📅 Repères chronologiques

DateÉvénement
01/01/1982Dates explicites détectées
1700Dates explicites détectées
2000Dates explicites détectées
1982Dates explicites détectées

📊 Tableaux de Synthèse

Comparaison des opérateurs ensemblistes

OpérateurDescriptionSuppression doublons
UNIONFusionne deux résultats, élimine doublonsOui
UNION ALLFusionne deux résultats, conserve doublonsNon
INTERSECTLignes communes aux deux résultatsOui
MINUSLignes du premier résultat non dans le secondOui

⚠️ Pièges & Confusions Fréquentes

  1. Confusion entre UNION et UNION ALL sur la gestion des doublons.
  2. Oublier que les colonnes doivent correspondre en nombre et type pour les opérateurs ensemblistes.
  3. Utiliser INTERSECT sans vérifier la compatibilité des colonnes.
  4. Ne pas respecter la syntaxe stricte des opérateurs ensemblistes.
  5. Omettre la clause ORDER BY après une opération ensembliste, ce qui peut entraîner des erreurs.
  6. Mélanger jointures et opérateurs ensemblistes sans distinction claire.
  7. Ne pas vérifier que le nombre de colonnes est identique dans les requêtes combinées.

✅ Checklist Examen

  1. Maîtriser la syntaxe de SELECT et WHERE.
  2. Comprendre la différence entre jointures internes et externes.
  3. Savoir utiliser ORDER BY pour trier selon plusieurs colonnes.
  4. Connaître les fonctions mono-ligne et leur application.
  5. Savoir utiliser GROUP BY et HAVING pour l'agrégation.
  6. Maîtriser ROLLUP et CUBE pour les totaux hiérarchiques.
  7. Utiliser GROUPING pour distinguer les totaux.
  8. Comprendre les sous-interrogations monolignes et multilignes.
  9. Différencier les types de jointures.
  10. Utiliser correctement UNION, INTERSECT, MINUS.
  11. Respecter la compatibilité des colonnes dans les opérations ensemblistes.

Teste dein Wissen

Teste dein Wissen zu Maîtrise Avancée des Requêtes SQL mit 12 Multiple-Choice-Fragen mit detaillierten Korrekturen.

1. En quoi diffèrent l'instruction SELECT et la clause DISTINCT dans une requête SQL ?

2. Quelle est la conséquence de l'utilisation d'une conversion explicite dans une requête SQL ?

Quiz machen →

Mit Karteikarten lernen

Merke dir die Schlüsselkonzepte von Maîtrise Avancée des Requêtes SQL mit 24 interaktiven Karteikarten.

SELECT — rôle ?

Choisir les colonnes ou données à afficher.

DISTINCT — fonction ?

Supprimer les doublons dans le résultat.

WHERE — restriction ?

Filtrer les lignes selon une condition.

Karteikarten ansehen →

Similar courses

Erstelle deine eigenen Lernzettel

Importiere deinen Kurs und die KI erstellt in 30 Sekunden Lernzettel, Quizze und Karteikarten.

Lernzettel-Generator