3 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des fonctions monoligne afin de personnaliser la sortie.

Slides:



Advertisements
Présentations similaires
Les fonctions.
Advertisements

T ECHNOLOGIES O RACLE Manipulation des données © sebvita.com.
Fonctions Mono-Ligne.
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
Limiter et trier des données
Fonctions monoligne.
Sous-Interrogations.
Copyright  Oracle Corporation, Tous droits réservés. 2 Sélection et Tri des Lignes Retournées par un SELECT.
Création et Gestion de Tables
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
SQL partie 5 1 LMD create – update – primary key secondary key.
Le langage de définition de données B.T.S. S.I.O – SI3 –
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
Le Langage JavaScript pour le web
Synthèse TP 2 Codeblock 1 Les objectifs de ce tp sont :
Ajouter le code dans une page html
Création et téléchargement des fichiers
Les Instructions Itératives (Les Boucles)
Introduction au Langage Pascal
Environnement du développement de BD ORACLE REPORTS 10g
Plateforme CountrySTAT Aperçu global de la préparation des tableaux dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME.
Structured Query Language SQL DDL
Intégration du P7 dans l’épreuve E41
Représentation des nombres réels
Quelques Termes INFORMATIQUE ? ORDINATEUR ( Système Informatique)?
Langage de manipulation de données (LMD)
Semaine #1 INF130 par Frédérick Henri.
Chapitre 01: Structure d'un module VHDL
Oracle.
Collecte de données CAPI
Algorithmiques Abdelbasset KABOU
Généralité sur les bases de données
Les bases de données et le modèle relationnel
Langage de Manipulation des Données LMD
SIF-1053 Architecture de ordinateurs
Semaine #6 INF130 par Frédérick Henri.
Langage d’interrogation des Données LID
SQL LID – INTERROGATIN DES DONNEES
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Manipulation D’Une Base De Données
Langage d’interrogation des Données LID
Calcul Scientifique Initiation à SCILB
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
4 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données agrégées à l'aide des fonctions de groupe.
5 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données de plusieurs tables.
6 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des sous-interrogations pour résoudre des interrogations.
7 Copyright © 2004, Oracle. Tous droits réservés. Utiliser les opérateurs ensemblistes.
8 Copyright © 2004, Oracle. Tous droits réservés. Manipuler les données.
9 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des instructions LDD pour créer et gérer des tables.
10 Copyright © 2004, Oracle. Tous droits réservés. Créer d'autres objets de schéma.
11 Copyright © 2004, Oracle. Tous droits réservés. Gérer les objets à l'aide de vues du dictionnaire de données.
Préface. Préface-3 Profil Avant de commencer Avant de commencer ce cours, vous devez savoir utiliser une interface graphique. Vous devez en outre être.
Préface Introduction Objectifs du chapitre I-2 Objectifs du cours I-3 Oracle10g I-4 Oracle Database 10g I-6 Oracle Application Server 10g I-7 Oracle Enterprise.
C Copyright © 2004, Oracle. Tous droits réservés. Syntaxe des jointures Oracle.
D Copyright © 2004, Oracle. Tous droits réservés. Utiliser SQL*Plus.
Remarque : Un nombre ou une lettre en gras fait référence à un chapitre entier ou à une annexe entière. A Affichage des dates par défaut 02-06, Ajouter.
SIO SI3 : Exploitation des données
Plateforme CountrySTAT Aperçu global de la préparation des tableaux dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME.
Définition : 2 Les structures de contrôle conditionnelles permettent à un programme de modifier son traitement en fonction d’une condition.
LANGAGE SQL 1. PLAN DU COURS A.Langage d’interrogation des données LID B.Langage de manipulation des données LMD A.Chapitre 3 : Langage de définition.
Réalisé par: Réalisé par: proposer par: Mme. sara proposer par: Mme. sara année scolaire : 2019/2018 Travail de groupe Lycée Moulay Mohammed Ben Abdellah.
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
Opérateurs Ensemblistes
Transcription de la présentation:

3 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des fonctions monoligne afin de personnaliser la sortie

Copyright © 2004, Oracle. Tous droits réservés. Objectifs A la fin de ce chapitre, vous pourrez : décrire les divers types de fonction du langage SQL utiliser des fonctions de type caractère, des fonctions numériques et des fonctions de date dans les instructions SELECT décrire l'utilisation des fonctions de conversion

Copyright © 2004, Oracle. Tous droits réservés. Fonctions SQL Fonction Entrée arg 1 arg 2 arg n La fonction exécute une action Résultat Valeur de résultat

Copyright © 2004, Oracle. Tous droits réservés. Deux types de fonction SQL Fonctions monoligne Fonctions multiligne Renvoie un résultat par ligne Renvoie un résultat par ensemble de lignes Fonctions

Copyright © 2004, Oracle. Tous droits réservés. Fonctions monoligne Les fonctions monoligne : Manipulent des données Acceptent des arguments et renvoient une seule valeur Opèrent sur chaque ligne renvoyée Renvoient un seul résultat par ligne Peuvent modifier le type de données Peuvent être imbriquées Acceptent des arguments pouvant être une colonne ou une expression function_name [(arg1, arg2,...)]

Copyright © 2004, Oracle. Tous droits réservés. Fonctions monoligne Fonctions de conversion Fonctions de type caractère Fonctions numériques Fonctions de date Fonctions générales Fonctions monoligne

Copyright © 2004, Oracle. Tous droits réservés. Fonctions de type caractère LOWER UPPER INITCAP CONCAT SUBSTR LENGTH INSTR LPAD | RPAD TRIM REPLACE Fonctions de manipulation de la casse Fonctions de manipulation de caractères

Copyright © 2004, Oracle. Tous droits réservés. Fonctions de type caractère LOWER UPPER INITCAP CONCAT SUBSTR LENGTH INSTR LPAD | RPAD TRIM REPLACE Fonctions de manipulation de la casse Fonctions de manipulation de caractères

Copyright © 2004, Oracle. Tous droits réservés. Fonctions de manipulation de la casse Ces fonctions convertissent la casse de chaînes de caractères : FonctionRésultat LOWER('SQL Course')sql course UPPER('SQL Course')SQL COURSE INITCAP('SQL Course') Sql Course

Copyright © 2004, Oracle. Tous droits réservés. SELECT employee_id, last_name, department_id FROM employees WHERE LOWER(last_name) = 'higgins'; Utiliser les fonctions de manipulation de la casse Afficher le numéro, le nom et le numéro de département de l'employé Higgins : SELECT employee_id, last_name, department_id FROM employees WHERE last_name = 'higgins'; no rows selected

Copyright © 2004, Oracle. Tous droits réservés. Fonctions de manipulation de caractères Ces fonctions manipulent des caractères : FonctionRésultat CONCAT('Hello', 'World')HelloWorld SUBSTR('HelloWorld',1,5)Hello LENGTH('HelloWorld')10 INSTR('HelloWorld', 'W')6 LPAD(salary,10,'*')*****24000 RPAD(salary, 10, '*')24000***** REPLACE ('JACK and JUE','J','BL') BLACK and BLUE TRIM('H' FROM 'HelloWorld')elloWorld

Copyright © 2004, Oracle. Tous droits réservés. SELECT employee_id, CONCAT(first_name, last_name) NAME, job_id, LENGTH (last_name), INSTR(last_name, 'a') "Contains 'a'?" FROM employees WHERE SUBSTR(job_id, 4) = 'REP'; Utiliser les fonctions de manipulation de caractères

Copyright © 2004, Oracle. Tous droits réservés. Fonctions numériques ROUND : arrondit la valeur à une décimale donnée TRUNC : tronque la valeur à une décimale donnée MOD : renvoie le reste d'une division FonctionRésultat ROUND(45.926, 2)45.93 TRUNC(45.926, 2)45.92 MOD(1600, 300)100

Copyright © 2004, Oracle. Tous droits réservés. SELECT ROUND(45.923,2), ROUND(45.923,0), ROUND(45.923,-1) FROM DUAL; DUAL est une table factice que vous pouvez utiliser pour afficher les résultats de fonctions et de calculs Utiliser la fonction ROUND

Copyright © 2004, Oracle. Tous droits réservés. Utiliser la fonction TRUNC SELECT ROUND(45.923,2), ROUND(45.923), ROUND(45.923,-1) FROM DUAL;

Copyright © 2004, Oracle. Tous droits réservés. SELECT last_name, salary, MOD(salary, 5000) FROM employees WHERE job_id = 'SA_REP'; Utiliser la fonction MOD Pour tous les employés dont le poste est Sales Representative, calculer le reste du salaire après division par :

Copyright © 2004, Oracle. Tous droits réservés. SELECT last_name, hire_date FROM employees WHERE hire_date < '01-FEB-88'; Manipuler les dates Dans la base de données Oracle, les dates sont stockées dans un format numérique interne : siècle, année, mois, jour, heures, minutes et secondes. Le format de date par défaut est DD-MON-RR. –Ce format permet le stockage des dates du 21ème siècle dans le 20ème siècle via l'indication les deux derniers chiffres de l'année uniquement. –De la même façon, il permet le stockage des dates du 20ème siècle dans le 21ème siècle.

Copyright © 2004, Oracle. Tous droits réservés.

Utiliser les dates SYSDATE est une fonction qui renvoie : La date L'heure

Copyright © 2004, Oracle. Tous droits réservés. Calculs arithmétiques sur des dates Ajoutez un nombre à une date ou soustrayez un nombre d'une date afin d'obtenir une date résultante. Soustrayez une date d'une autre afin de déterminer le nombre de jours entre ces dates. Ajoutez des heures à une date en divisant le nombre d'heures par 24.

Copyright © 2004, Oracle. Tous droits réservés. SELECT last_name, (SYSDATE-hire_date)/7 AS WEEKS FROM employees WHERE department_id = 90; Utiliser des opérateurs arithmétiques avec des dates

Copyright © 2004, Oracle. Tous droits réservés. Fonctions de date FonctionRésultat MONTHS_BETWEEN Nombre de mois entre deux dates ADD_MONTHS Ajout de mois calendaires à une date NEXT_DAY Jour qui suit la date indiquée LAST_DAY Dernier jour du mois ROUND Date arrondie TRUNC Date tronquée

Copyright © 2004, Oracle. Tous droits réservés. Utiliser des fonctions de date FonctionRésultat MONTHS_BETWEEN ('01-SEP-95','11-JAN-94') ADD_MONTHS ('11-JAN-94',6)'11-JUL-94' NEXT_DAY ('01-SEP-95','FRIDAY')'08-SEP-95' LAST_DAY ('01-FEB-95')'28-FEB-95'

Copyright © 2004, Oracle. Tous droits réservés. Utiliser des fonctions de date Supposons que SYSDATE = '25-JUL-03' : FonctionRésultat ROUND(SYSDATE,'MONTH')01-AUG-03 ROUND(SYSDATE,'YEAR')01-JAN-04 TRUNC(SYSDATE,'MONTH') 01-JUL-03 TRUNC(SYSDATE,'YEAR')01-JAN-03

Copyright © 2004, Oracle. Tous droits réservés. Exercice 3 : présentation de la partie 1 Cet exercice porte sur les points suivants : écrire une interrogation qui affiche la date actuelle créer des interrogations qui nécessitent l'utilisation de fonctions numériques, de fonctions de type caractère et de fonctions de date effectuer des calculs des années et mois de travail d'un employé

Copyright © 2004, Oracle. Tous droits réservés. Fonctions de conversion Conversion implicite de type de données Conversion explicite de type de données Conversion de type de données

Copyright © 2004, Oracle. Tous droits réservés. Conversion implicite de type de données Pour les affectations, le serveur Oracle peut convertir automatiquement les types de données suivants : DeVers VARCHAR2 ou CHAR NUMBER VARCHAR2 ou CHARDATE NUMBER VARCHAR2 DATE VARCHAR2

Copyright © 2004, Oracle. Tous droits réservés. Conversion implicite de type de données Pour l'évaluation des expressions, le serveur Oracle peut convertir automatiquement les types de données suivants : DeVers VARCHAR2 ou CHAR NUMBER VARCHAR2 ou CHARDATE

Copyright © 2004, Oracle. Tous droits réservés. Conversion explicite de type de données NUMBER CHARACTER TO_CHAR TO_NUMBER DATE TO_CHAR TO_DATE

Copyright © 2004, Oracle. Tous droits réservés. Conversion explicite de type de données NUMBER CHARACTER TO_CHAR TO_NUMBER DATE TO_CHAR TO_DATE

Copyright © 2004, Oracle. Tous droits réservés. Conversion explicite de type de données NUMBER CHARACTER TO_CHAR TO_NUMBER DATE TO_CHAR TO_DATE

Copyright © 2004, Oracle. Tous droits réservés. Utiliser la fonction TO_CHAR avec des dates Le modèle de format : Doit être inclus entre apostrophes Distingue les majuscules des minuscules Peut inclure n'importe quel élément de format de date valide Comporte un élément fm permettant de supprimer les espaces de remplissage ou les zéros de début Est séparé de la valeur de date par une virgule TO_CHAR(date, 'format_model')

Copyright © 2004, Oracle. Tous droits réservés. Eléments du modèle de format de date ElémentRésultat YYYY Année complète en chiffres YEAR Année en lettres (en anglais) MM Valeur à deux chiffres du mois MONTH Nom complet du mois MON Abréviation à trois lettres du mois DY Abréviation à trois lettres du jour de la semaine DAY Nom complet du jour de la semaine DD Valeur numérique du jour du mois

Copyright © 2004, Oracle. Tous droits réservés.

Eléments du modèle de format de date Les éléments d'heure formatent la partie heure de la date : Ajoutez des chaînes de caractères en les incluant entre guillemets : Utilisez des suffixes de nombre pour écrire les nombres en toutes lettres : DD "of" MONTH12 of OCTOBER ddspthfourteenth HH24:MI:SS AM15:45:32 PM

Copyright © 2004, Oracle. Tous droits réservés.

SELECT last_name, TO_CHAR(hire_date, 'fmDD Month YYYY') AS HIREDATE FROM employees; Utiliser la fonction TO_CHAR avec des dates …

Copyright © 2004, Oracle. Tous droits réservés. Utiliser la fonction TO_CHAR avec des nombres Voici quelques-uns des éléments de format que vous pouvez utiliser avec la fonction TO_CHAR pour afficher une valeur numérique sous forme de caractères : ElémentRésultat 9 Représente un nombre 0 Force l'affichage d'un zéro $ Insère un signe dollar flottant L Utilise le symbole monétaire local flottant. Affiche un point en tant que séparateur décimal, Affiche une virgule en tant que séparateur de milliers TO_CHAR(number, 'format_model') ddspth

Copyright © 2004, Oracle. Tous droits réservés.

SELECT TO_CHAR(salary, '$99,999.00') SALARY FROM employees WHERE last_name = 'Ernst'; Utiliser la fonction TO_CHAR avec des nombres

Copyright © 2004, Oracle. Tous droits réservés. Utiliser les fonctions TO_NUMBER et TO_DATE Convertir une chaîne de caractères en format numérique à l'aide de la fonction TO_NUMBER : Convertir une chaîne de caractères en format de date à l'aide de la fonction TO_DATE : Ces fonctions comportent un modificateur fx. Ce modificateur indique la correspondance exacte de l'argument de type caractère et du modèle de format de date d'une fonction TO_DATE. TO_NUMBER(char[, 'format_model']) TO_DATE(char[, 'format_model'])

Copyright © 2004, Oracle. Tous droits réservés. Utiliser les fonctions TO_NUMBER et TO_DATE Convertir une chaîne de caractères en format numérique à l'aide de la fonction TO_NUMBER : Convertir une chaîne de caractères en format de date à l'aide de la fonction TO_DATE : Ces fonctions comportent un modificateur fx. Ce modificateur indique la correspondance exacte de l'argument de type caractère et du modèle de format de date d'une fonction TO_DATE. TO_NUMBER(char[, 'format_model']) TO_DATE(char[, 'format_model'])

Copyright © 2004, Oracle. Tous droits réservés. Format de date RR Année en cours Date indiquée 27-OCT OCT OCT-95 Format RR Format YY Si les deux chiffres de l'année actuelle sont : 0–49 50–99 La date renvoyée correspond au siècle actuel La date renvoyée correspond au siècle après le siècle actuel La date renvoyée correspond au siècle avant le siècle actuel La date renvoyée correspond au siècle actuel Si l'année à deux chiffres indiquée est :

Copyright © 2004, Oracle. Tous droits réservés. Exemple de format de date RR Pour afficher les employés embauchés avant 1990, utilisez le format de date RR, qui donne les mêmes résultats que la commande soit exécutée en 1999 ou maintenant : SELECT last_name, TO_CHAR(hire_date, 'DD-Mon-YYYY') FROM employees WHERE hire_date < TO_DATE('01-Jan-90','DD-Mon-RR');

Copyright © 2004, Oracle. Tous droits réservés. Imbriquer des fonctions Les fonctions monoligne peuvent être imbriquées à un niveau quelconque. Les fonctions imbriquées sont évaluées du niveau le plus profond au niveau le moins profond. F3(F2(F1(col,arg1),arg2),arg3) Etape 1 = résultat 1 Etape 2 = résultat 2 Etape 3 = résultat 3

Copyright © 2004, Oracle. Tous droits réservés. SELECT last_name, UPPER(CONCAT(SUBSTR (LAST_NAME, 1, 8), '_US')) FROM employees WHERE department_id = 60; Imbriquer des fonctions

Copyright © 2004, Oracle. Tous droits réservés. Fonctions générales Les fonctions suivantes peuvent utiliser n'importe quel type de données, y compris les valeurs NULL : NVL (expr1, expr2) NVL2 (expr1, expr2, expr3) NULLIF (expr1, expr2) COALESCE (expr1, expr2,..., exprn)

Copyright © 2004, Oracle. Tous droits réservés. Fonction NVL Convertit une valeur NULL en une valeur réelle : Les types de données pouvant être utilisés sont les dates, les caractères et les valeurs numériques. Les types de données doivent correspondre : – NVL(commission_pct,0) – NVL(hire_date,'01-JAN-97') – NVL(job_id,'No Job Yet')

Copyright © 2004, Oracle. Tous droits réservés. SELECT last_name, salary, NVL(commission_pct, 0), (salary*12) + (salary*12*NVL(commission_pct, 0)) AN_SAL FROM employees; Utiliser la fonction NVL …

Copyright © 2004, Oracle. Tous droits réservés. SELECT last_name, salary, commission_pct, NVL2(commission_pct, 'SAL+COMM', 'SAL') income FROM employees WHERE department_id IN (50, 80); Utiliser la fonction NVL

Copyright © 2004, Oracle. Tous droits réservés. SELECT first_name, LENGTH(first_name) "expr1", last_name, LENGTH(last_name) "expr2", NULLIF(LENGTH(first_name), LENGTH(last_name)) result FROM employees; Utiliser la fonction NULLIF …

Copyright © 2004, Oracle. Tous droits réservés. Utiliser la fonction COALESCE L'avantage de la fonction COALESCE par rapport à la fonction NVL est que la fonction COALESCE peut prendre plusieurs valeurs alternatives. Si la première expression n'est pas NULL, la fonction COALESCE renvoie cette expression ; dans le cas contraire, elle exécute une opération COALESCE sur les expressions restantes.

Copyright © 2004, Oracle. Tous droits réservés. SELECT last_name, COALESCE(manager_id,commission_pct, -1) comm FROM employees ORDER BY commission_pct; Utiliser la fonction COALESCE …

Copyright © 2004, Oracle. Tous droits réservés. Expressions conditionnelles Permettent l'utilisation de la logique IF-THEN-ELSE dans une instruction SQL Utilisent deux méthodes : –Expression CASE –Fonction DECODE

Copyright © 2004, Oracle. Tous droits réservés. Expression CASE Elle facilite les interrogations conditionnelles grâce un fonctionnement semblable à celui de l'instruction IF-THEN-ELSE : CASE expr WHEN comparison_expr1 THEN return_expr1 [WHEN comparison_expr2 THEN return_expr2 WHEN comparison_exprn THEN return_exprn ELSE else_expr] END

Copyright © 2004, Oracle. Tous droits réservés. SELECT last_name, job_id, salary, CASE job_id WHEN 'IT_PROG' THEN 1.10*salary WHEN 'ST_CLERK' THEN 1.15*salary WHEN 'SA_REP' THEN 1.20*salary ELSE salary END "REVISED_SALARY" FROM employees; Utiliser l'expression CASE Elle facilite les interrogations conditionnelles grâce un fonctionnement semblable à celui de l'instruction IF-THEN-ELSE : … …

Copyright © 2004, Oracle. Tous droits réservés. Fonction DECODE Elle facilite les interrogations conditionnelles grâce un fonctionnement semblable à celui de l'expression CASE ou de l'instruction IF-THEN-ELSE : DECODE(col|expression, search1, result1 [, search2, result2,...,] [, default])

Copyright © 2004, Oracle. Tous droits réservés. SELECT last_name, job_id, salary, DECODE(job_id, 'IT_PROG', 1.10*salary, 'ST_CLERK', 1.15*salary, 'SA_REP', 1.20*salary, salary) REVISED_SALARY FROM employees; Utiliser la fonction DECODE … …

Copyright © 2004, Oracle. Tous droits réservés. SELECT last_name, salary, DECODE (TRUNC(salary/2000, 0), 0, 0.00, 1, 0.09, 2, 0.20, 3, 0.30, 4, 0.40, 5, 0.42, 6, 0.44, 0.45) TAX_RATE FROM employees WHERE department_id = 80; Utiliser la fonction DECODE Afficher le taux de taxe applicable pour chaque employé du département 80 :

Copyright © 2004, Oracle. Tous droits réservés. Synthèse Ce chapitre vous a permis d'apprendre à : effectuer des calculs sur des données à l'aide de fonctions modifier des données individuelles à l'aide de fonctions manipuler la sortie de groupes de lignes à l'aide de fonctions modifier des formats de date pour un affichage à l'aide de fonctions convertir des types de données de colonne à l'aide de fonctions utiliser les fonctions NVL utiliser la logique IF-THEN-ELSE

Copyright © 2004, Oracle. Tous droits réservés. Exercice 3 : présentation de la partie 2 Cet exercice porte sur les points suivants : créer des interrogations qui nécessitent l'utilisation de fonctions numériques, de fonctions de type caractère et de fonctions de date utiliser la concaténation à l'aide de fonctions écrire des interrogations ne distinguant pas les majuscules des minuscules afin de tester l'utilité des fonctions de type caractère effectuer des calculs des années et mois de travail d'un employé déterminer la date d'évaluation d'un employé

Copyright © 2004, Oracle. Tous droits réservés.