Le langage SQL et l'outil iSQL 3-2 But du chapitre Les fonctions augmentent la

Le langage SQL et l'outil iSQL 3-2 But du chapitre Les fonctions augmentent la puissance du bloc d'interrogation de base et permettent de manipuler des valeurs de données. Les fonctions sont abordées dans deux chapitres, dont celui-ci est le premier. Il présente en particulier les fonctions monoligne alphanumériques, numériques et de date, ainsi que les fonctions de conversion des types de données (qui permettent, par exemple, de convertir des données alphanumériques en données numériques). Le langage SQL et l'outil iSQL 3-3 Fonctions SQL Les fonctions constituent une entité extrêmement puissante de SQL permettant : • d'effectuer des calculs sur des données, • de modifier des éléments de données individuels, • de manipuler le résultat de groupes de lignes, • de formater des dates et des nombres pour affichage, • de convertir les types de données des colonnes. Les fonctions SQL utilisent parfois des arguments et renvoient toujours une valeur. Remarque : La plupart des fonctions SQL décrites dans ce chapitre sont spécifiques à la version SQL d'Oracle. Le langage SQL et l'outil iSQL 3-4 Fonctions SQL (suite) On distingue deux types de fonction : • les fonctions monoligne, • les fonctions multilignes. Fonctions monoligne Ces fonctions agissent sur une seule ligne à la fois et renvoient un résultat par ligne. Parmi les types de fonction monoligne existants, ce chapitre aborde les quatre suivants : • Fonction alphanumérique • Fonction numérique • Fonction de date • Fonction de conversion Fonctions multilignes Ces fonctions, également appelées fonctions de groupe, peuvent manipuler des groupes de lignes et renvoyer un résultat par groupe. Elles sont présentées dans un chapitre ultérieur. Pour obtenir la syntaxe et la liste complète des fonctions disponibles, voir Oracle11g SQL Reference. Le langage SQL et l'outil iSQL 3-5 Fonctions monoligne Les fonctions monoligne permettent de manipuler des éléments de données. Elles acceptent un ou plusieurs arguments et renvoient une valeur pour chaque ligne renvoyée par l'interrogation. Les éléments suivants peuvent être des arguments : • Constante fournie par l'utilisateur • Valeur de variable • Nom de colonne • Expression Caractéristiques des fonctions monoligne : • Agissent sur chaque ligne renvoyée par l'interrogation. • Renvoient un résultat par ligne. • Peuvent renvoyer une valeur de données dont le type diffère du type référencé. • Acceptent un ou plusieurs arguments. • Peuvent être imbriquées et utilisées dans les clauses SELECT, WHERE et ORDER BY. Explication de la syntaxe : function_name désigne le nom de la fonction. arg1, arg2 désigne tout argument que la fonction doit utiliser. Peut être représentée par un nom de colonne ou une expression. Le langage SQL et l'outil iSQL 3-6 Fonctions monoligne (suite) Ce chapitre présente les fonctions monoligne suivantes : • Fonctions alphanumériques – Acceptent des caractères en entrée et peuvent renvoyer des valeurs alphanumériques ou numériques. • Fonctions numériques – Acceptent des valeurs numériques en entrée et renvoient des valeurs numériques. • Fonctions de date – Opèrent sur des valeurs de type DATE (toutes les fonctions de date renvoient des valeurs de type DATE, excepté la fonction MONTHS_BETWEEN qui renvoie une valeur numérique). • Fonctions de conversion – Convertissent une valeur d'un type de données en un autre. • Fonctions générales : – NVL – NVL2 – NULLIF – COALSECE – CASE – DECODE Le langage SQL et l'outil iSQL 3-7 Fonctions alphanumériques Les fonctions monoligne alphanumériques acceptent des données alphanumériques en entrée et peuvent renvoyer des données alphanumériques ou numériques. Elles se divisent en deux catégories : • Fonctions de manipulation des majuscules/minuscules • Fonctions de manipulation des caractères Remarque : Seule une partie des fonctions disponibles sont présentées dans ce chapitre. Fonction Opération LOWER(column|expression) Convertit des valeurs alphanumériques en minuscules. UPPER(column|expression) Convertit des valeurs alphanumériques en majuscules. INITCAP(column|expression) Convertit la première lettre d'une valeur alphanumérique en majuscules et les autres lettres en minuscules. CONCAT(column1|expression1, column2|expression2) Concatène la première valeur alphanumérique à la deuxième. Correspond à l'opérateur de concaténation (||). SUBSTR(column|expression,m [,n]) Renvoie des caractères donnés de la valeur alphanumérique en commençant à la position m et sur n caractères (si m est négatif, le décompte commence à la fin de la valeur alphanumérique. Si n n'est pas indiqué, tous les caractères jusqu'à la fin de la chaîne sont renvoyés). Le langage SQL et l'outil iSQL 3-9 Fonctions de manipulation des majuscules/minuscules Les trois fonctions de conversion majuscules/minuscules sont LOWER, UPPER et INITCAP. • LOWER : Convertit tous les caractères d'une chaîne en minuscules. • UPPER : Convertit tous les caractères d'une chaîne en majuscules. • INITCAP : Convertit la première lettre de chaque mot en majuscule et les lettres suivantes en minuscules. SELECT 'The job id for '||UPPER(last_name)||' is ' ||LOWER(job_id) AS "EMPLOYEE DETAILS" FROM employees; … Le langage SQL et l'outil iSQL 3-10 Fonctions de manipulation des majuscules/minuscules (suite) L'exemple de la diapositive permet d'afficher le numéro, le nom et le numéro de service de l'employé Higgins. La clause WHERE de la première instruction SQL indique le nom de l'employé sous la forme higgins. Puisque les données de la table EMPLOYEES sont stockées en majuscules, le nom higgins n'est pas identifié dans la table et aucune ligne n'est sélectionnée. La clause WHERE de la seconde instruction SQL indique que la colonne LAST_NAME doit être convertie en minuscules pour permettre la comparaison du nom d'employé figurant dans la table EMPLOYEES avec higgins. Les deux noms étant désormais en minuscules, la ligne correspondante est sélectionnée. La clause WHERE, réécrite de la manière suivante, produit le même résultat : ...WHERE last_name = 'Higgins' Le nom de l'employé s'affiche tel qu'il est stocké dans la base de données. Pour l'afficher en majuscules, utilisez la fonction UPPER dans l'instruction SELECT. SELECT employee_id, UPPER(last_name), department_id FROM employees WHERE INITCAP(last_name) = 'Higgins'; Le langage SQL et l'outil iSQL 3-11 Fonctions de manipulation des caractères Les fonctions de manipulation des caractères CONCAT, SUBSTR, LENGTH, INSTR, LPAD, RPAD et TRIM sont présentées dans ce chapitre. • CONCAT : Concatène des valeurs (cette fonction n'accepte que deux paramètres). • SUBSTR : Extrait une chaîne d'une longueur déterminée. • LENGTH : Fournit une valeur numérique correspondant au nombre de caractères d'une chaîne. • INSTR : Fournit une valeur numérique correspondant à la position d'un caractère. • LPAD : Ajoute des caractères de remplissage à une valeur alphanumérique en partant de la droite. • RPAD : Ajoute des caractères de remplissage à une valeur alphanumérique en partant de la gauche. • TRIM : Retire les caractères de tête ou de fin (ou les deux) d'une chaîne de caractères (si trim_character ou trim_source est un littéral de type caractère, vous devez le placer entre apostrophes). Le langage SQL et l'outil iSQL 3-12 Fonctions de manipulation des caractères (suite) L'exemple de la diapositive permet d'afficher les nom et prénom concaténés des employés, la longueur du nom des employés et la position de la lettre a dans le nom des employés dont l'ID de poste comporte en quatrième position la chaîne REP. Exemple Modifiez l'instruction SQL de la diapositive pour afficher les données des employés dont le nom se termine par la lettre n. SELECT employee_id, CONCAT(first_name, last_name) NAME, LENGTH (last_name), INSTR(last_name, 'a') "Contains 'a'?" FROM employees WHERE SUBSTR(last_name, -1, 1) = 'n'; Le langage SQL et l'outil iSQL 3-13 Fonctions numériques Les fonctions numériques acceptent et renvoient des valeurs numériques. Cette section décrit quelques-unes de ces fonctions. Remarque : Cette liste de fonctions numériques n'est pas exhaustive. Pour plus d'informations, voir Oracle11g SQL Reference, "Number Functions". Fonction Opération ROUND(column|expression, n) Arrondit la colonne, l'expression ou la valeur à n décimales ou à 0 décimale si n n'est pas indiqué. (Si n est négatif les chiffres situés à gauche du signe décimal sont arrondis.) TRUNC(column|expression,n) Tronque la colonne, l'expression ou la valeur à n décimales. Si n n'est pas indiqué, il prend par défaut la valeur zéro. MOD(m,n) Renvoie le reste de la division de m par n. Le langage SQL et l'outil iSQL 3-14 Fonction ROUND La fonction ROUND arrondit la colonne, l'expression ou la valeur à n décimales. Si le deuxième argument vaut 0 ou est absent, la valeur est arrondie à zéro décimale. S'il vaut 2, la valeur est arrondie à deux décimales. Inversement, si le deuxième argument vaut -2, la valeur est arrondie à deux chiffres à gauche de la virgule. Vous pouvez également utiliser la fonction ROUND avec des fonctions de date. Quelques exemples sont présentés plus loin dans ce chapitre. Table DUAL La table DUAL, accessible à tous les utilisateurs, appartient à l'utilisateur SYS. Elle contient une colonne, DUMMY, et une ligne qui possède la valeur X. Cette table s'avère utile lorsque vous souhaitez ne renvoyer qu'une fois une valeur, par exemple, la valeur d'une constante, d'une pseudo-colonne ou d'une expression qui n'est pas dérivée d'une table contenant des données utilisateur. Elle est généralement utilisée pour garantir que la syntaxe de la clause SELECT est complète, car SELECT et FROM sont obligatoires et de nombreux calculs ne nécessitent pas de sélection dans des tables réelles. Le langage SQL et l'outil iSQL 3-15 Fonction TRUNC La fonction TRUNC tronque la colonne, l'expression ou uploads/Philosophie/ oracle-sql-lesson03.pdf

  • 40
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager