0% ont trouvé ce document utile (0 vote)
23 vues29 pages

Séance 5 BD

good coursee of sqll

Transféré par

Marwa Ennouri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
23 vues29 pages

Séance 5 BD

good coursee of sqll

Transféré par

Marwa Ennouri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Fonctions Mono-Ligne

Fonctions SQL

Entrée Sortie
Fonction

arg 1 La fonction
exécute une
arg 2 action Valeur
résultante

arg n
Deux Types de Fonctions SQL

Fonctions

Fonctions Fonctions
mono-ligne multi-ligne
Fonctions Mono-Ligne
• Manipulent des éléments de données
• Acceptent des arguments et ramènent
une valeur
• Agissent sur chacune des lignes
rapportées
• Ramènent un seul résultat par ligne
• Peuvent modifier les types de données
• Peuvent être imbriquées
function_name (column|expression, [arg1, arg2,...])
Fonctions Mono-Ligne

Caractère

Générale Numérique
Fonctions
mono-ligne

Conversion Date
Fonctions Caractère
Fonction
caractère

Fonctions de conversion Fonctions de manipulation


majuscules/minuscules des caractères

LOWER CONCAT
UPPER SUBSTR
INITCAP LENGTH
INSTR
LPAD ...
Fonctions de Conversion
Majuscules/Minuscules

Fonction Résultat
LOWER('Cours SQL') cours sql
UPPER('Cours SQL') COURS SQL
INITCAP('Cours SQL') Cours Sql
Utilisation des Fonctions de
Conversion Majuscules/Minuscules
Afficher le matricule, le nom et le numéro
de département de l’employé Blake.
SQL> SELECT empno, ename, deptno
2 FROM emp
3 WHERE ename = 'blake';
no rows selected

SQL> SELECT empno, ename, deptno


2 FROM emp
3 WHERE LOWER(ename) = 'blake';

EMPNO ENAME DEPTNO


--------- ---------- ---------
7698 BLAKE 30
Fonctions de
Manipulation des Caractères
Manipulation de chaînes de caractères
Fonction Résultat
CONCAT('Une', 'Chaîne') UneChaîne
SUBSTR('Chaîne',1,3) Cha
LENGTH('Chaîne') 6
INSTR('Chaîne', 'a') 3
LPAD(sal,10,'*') ******5000
Utilisation des Fonctions de
Manipulation des Caractères
SQL> SELECT ename, CONCAT (ename, job), LENGTH(ename),
2 INSTR(ename, 'A')
3 FROM emp
4 WHERE SUBSTR(job,1,5) = 'SALES';

ENAME CONCAT(ENAME,JOB) LENGTH(ENAME) INSTR(ENAME,'A')


---------- ------------------- ------------- ----------------
MARTIN MARTINSALESMAN 6 2
ALLEN ALLENSALESMAN 5 1
TURNER TURNERSALESMAN 6 0
WARD WARDSALESMAN 4 2
Fonctions Numériques
• ROUND : Arrondit la valeur à la précision
spécifiée
ROUND(45.926, 2) 45.93
• TRUNC : Tronque la valeur à la précision
spécifiée
• TRUNC(45.926, 2) 45.92
• MOD : Ramène le reste d’une division
MOD(1600, 300) 100
Utilisation de la Fonction ROUND
Affichage de la valeur 45.923 arrondie au
centième, à 0 décimale et à la dizaine
supérieure.
SQL> SELECT ROUND(45.923,2), ROUND(45.923,0),
2 ROUND(45.923,-1)
3 FROM DUAL;

ROUND(45.923,2) ROUND(45.923,0) ROUND(45.923,-1)


--------------- -------------- -----------------
45.92 46 50
Utilisation de la Fonction TRUNC
Affichage de la valeur 45.923 tronquée au
centième, à 0 décimale et à la dizaine.

SQL> SELECT TRUNC(45.923,2), TRUNC(45.923),


2 TRUNC(45.923,-1)
3 FROM DUAL;

TRUNC(45.923,2) TRUNC(45.923) TRUNC(45.923,-1)


--------------- ------------- ---------------
45.92 45 40
Utilisation de la Fonction MOD
Calculer le reste de la division salaire
par commission pour l’ensemble des
employés ayant un poste de vendeur.
SQL> SELECT ename, sal, comm, MOD(sal, comm)
2 FROM emp
3 WHERE job = 'SALESMAN';

ENAME SAL COMM MOD(SAL,COMM)


---------- --------- --------- -------------
MARTIN 1250 1400 1250
ALLEN 1600 300 100
TURNER 1500 0 1500
WARD 1250 500 250
Utilisation des Dates
• Oracle stocke les dates dans un format
numérique interne : siècle, année, mois,
jour, heures, minutes, secondes.
• Le format de date par défaut est DD-
MON-YY.
• La fonction SYSDATE ramène la date et
l’heure courante.
• DUAL est une table factice qu'on peut
utiliser pour visualiser SYSDATE.
Opérations Arithmétiques
sur les Dates
• Ajout ou soustraction d’un nombre à
une date pour obtenir un résultat de
type date.
• Soustraction de deux dates afin de
déterminer le nombre de jours entre
ces deux dates.
• Ajout d’un nombre d’heures à une date
en divisant le nombre d’heures par 24.
Utilisation d’Opérateurs
Arithmétiques avec les Dates

SQL> SELECT ename, (SYSDATE-hiredate)/7 WEEKS


2 FROM emp
3 WHERE deptno = 10;

ENAME WEEKS
---------- ---------
KING 830.93709
CLARK 853.93709
MILLER 821.36566
Fonctions de Conversion

Conversion
de types
de données

Conversion Conversion
de types de types
de données de données
implicite explicite
Conversion de Types de
Données Explicite
TO_NUMBER TO_DATE

NUMBER CHARACTER DATE

TO_CHAR TO_CHAR
Utilisation de la Fonction
TO_CHAR avec les Dates
TO_CHAR(date, 'fmt')

Le modèle de format :
• Doit être placé entre simples quotes et
différencie les majuscules et minuscules.
• Peut inclure tout élément valide de format
date
• Comporte un élément fm qui supprime les
espaces de remplissage ou les zéros de tête
• Est séparé de la valeur date par une virgule
Modèles de Format Date

YYYY Année exprimée avec 4 chiffres

YEAR Année exprimée en toutes lettres

MM Mois exprimé avec 2 chiffres

MONTH Mois exprimé en toutes lettres


3 premières lettres du nom du jour
DY

DAY Jour exprimé en toutes lettres


Modèles de Format pour les
Dates
• Les éléments horaires formatent la
partie horaire de la date.
HH24:MI:SS AM 15:45:32 PM
• Pour ajouter des chaînes de caractères,
les placer entre guillemets.
DD "of" MONTH 12 of OCTOBER
• Différents suffixes existent pour les
nombres.
ddspth fourteenth
Utilisation de la Fonction
TO_CHAR avec les Dates
SQL> SELECT ename,
2 TO_CHAR(hiredate, 'fmDD Month YYYY') HIREDATE
3 FROM emp;

ENAME HIREDATE
---------- -----------------
KING 17 November 1981
BLAKE 1 May 1981
CLARK 9 June 1981
JONES 2 April 1981
MARTIN 28 September 1981
ALLEN 20 February 1981
...
14 rows selected.
Fonction NVL

Convertit une valeur NULL en une valeur


réelle
• Fonctionne avec les données de type
date, caractère et numérique.
• Les types de données doivent
correspondre
– NVL(comm,0)
– NVL(hiredate,'01-JAN-97')
– NVL(job,'No Job Yet')
Utilisation de la Fonction NVL

SQL> SELECT ename, sal, comm, (sal*12)+NVL(comm,0)


2 FROM emp;

ENAME SAL COMM (SAL*12)+NVL(COMM,0)


---------- --------- --------- --------------------
KING 5000 60000
BLAKE 2850 34200
CLARK 2450 29400
JONES 2975 35700
MARTIN 1250 1400 16400
ALLEN 1600 300 19500
...
14 rows selected.
Fonction DECODE

Facilite les recherches conditionnelles en


jouant le rôle de CASE ou IF-THEN-ELSE

DECODE(col/expression, search1, result1


[, search2, result2,...,]
[, default])
Utilisation de la Fonction DECODE

SQL> SELECT job, sal,


2 DECODE(job, 'ANALYST', SAL*1.1,
3 'CLERK', SAL*1.15,
4 'MANAGER', SAL*1.20,
5 SAL)
6 REVISED_SALARY
7 FROM emp;

JOB SAL REVISED_SALARY


--------- --------- --------------
PRESIDENT 5000 5000
MANAGER 2850 3420
MANAGER 2450 2940
...
14 rows selected.
Imbrication des Fonctions

• Le niveau d’imbrication des fonctions


mono-ligne est illimité
• Les fonctions imbriquées sont évaluées
de l'intérieur vers l'extérieur
F3(F2(F1(col,arg1),arg2),arg3)

Etape 1 = Résultat 1
Etape 2 = Résultat 2
Etape 3 = Résultat 3
Imbrication des Fonctions

SQL> SELECT ename,


2 NVL(TO_CHAR(mgr),'No Manager')
3 FROM emp
4 WHERE mgr IS NULL;

ENAME NVL(TO_CHAR(MGR),'NOMANAGER')
---------- -----------------------------
KING No Manager

Vous aimerez peut-être aussi