SlideShare une entreprise Scribd logo
1  sur  92
Télécharger pour lire hors ligne
Réalisé par Pr. Chiheb CHAIEB
Cours base de données
16/10/2022 SQL : LID & LMD & LDD
1. Extraire des données à l’aide de
l’instruction SQL SELECT
2. Restreindre et trier les données
3. Utiliser des fonctions mono lignes afin de
personnaliser la sortie
4. Afficher des données agrégées à l’aide des
fonctions de groupe
5. Afficher des données de plusieurs tables
6. Utiliser des sous –interrogations
7. Utiliser des opérateurs ensemblistes
2
16/10/2022 SQL : LID & LMD & LDD
8. Manipuler des données
3
9. Utiliser des instructions LDD pour créer et
gérer des tables
16/10/2022 SQL : LID & LMD & LDD
Chapitre 1
Extraire des données à l’aide de
l’instruction SQL SELECT
4
16/10/2022 SQL : LID & LMD & LDD
 Décrire des fonctionnalités des
instructions SQL SELECT.
 Exécuter des instructions SELECT de base.
16/10/2022 SQL : LID & LMD & LDD
Sélection
Projection
Table 1 Table 2
Table 1
Table 1
Jointure
16/10/2022 SQL : LID & LMD & LDD
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table;
 L’instruction SELECT identifie les colonnes
à afficher.
 La clause FROM identifie la table
contenant ces colonnes.
16/10/2022 SQL : LID & LMD & LDD
SELECT *
FROM departments;
16/10/2022 SQL : LID & LMD & LDD
department_id, location_id
SELECT
FROM departments;
16/10/2022 SQL : LID & LMD & LDD
 Les instructions SQL ne distinguent pas les
majuscules des minuscules.
 Les instructions SQL peuvent être écrites sur
une ou plusieurs lignes.
 Les mots-clés ne peuvent pas être abrégés ou
répartis sur plusieurs lignes.
 Les clauses sont généralement placées sur
des lignes distinctes.
16/10/2022 SQL : LID & LMD & LDD
 Créez les expressions avec des données de
type nombre et date à l’aide d’opérateurs
arithmétiques
Opérateur Description
+ Ajouter
- Soustraire
* Multiplier
/ Diviser
16/10/2022 SQL : LID & LMD & LDD
R S T= R U S
salary + 300
SELECT last_name, salary,
FROM employees;
…
16/10/2022 SQL : LID & LMD & LDD
12*salary+100
SELECT last_name, salary,
FROM employees;
12*(salary+100)
SELECT last_name, salary,
FROM employees;
…
…
1
2
16/10/2022 SQL : LID & LMD & LDD
 Une valeur NULL est une valeur qui n’est pas disponible,
pas affectée ou inconnue .
 Une valeur NULL est différente d’un zéro ou d’un
espace.
SELECT last_name, job_id,salary,commission_pct
FROM employees;
…
…
16/10/2022 SQL : LID & LMD & LDD
 Les expressions arithmétiques contenant une
valeur NULL renvoient une valeur NULL.
…
…
12*salary*commission_pct
SELECT last_name,
FROM employees;
16/10/2022 SQL : LID & LMD & LDD
 Un alias de colonne :
 Renomme un entête de colonne
 Est utile avec les calculs
 Suit immédiatement le nom d’une colonne (le
mot clé facultatif AS peut également être utilisé
entre le nom de la colonne et l’alias)
 Nécessité des guillemets s’il contient des espaces
ou des caractères spéciaux (# $), ou s’il distingue
les majuscules des minuscules.
16/10/2022 SQL : LID & LMD & LDD
SELECT last_name "Name" , salary*12 "Annual Salary"
FROM employees;
comm
SELECT last_name AS name, commission_pct
FROM employees;
…
…
16/10/2022 SQL : LID & LMD & LDD
 Un opérateur de concaténation :
 Lie des colonnes ou des chaînes de caractères à
d’autres colonnes.
 Est représenté par deux barres verticales (||).
 Crée une colonne résultante qui est une
expression de type caractère.
SELECT
FROM
last_name||job_id AS "Employees"
employees;
…
16/10/2022 SQL : LID & LMD & LDD
 Un littéral est un caractère, un nombre ou
une date inclus dans l’instruction SELECT.
 Les valeurs littérales de type date et
caractère doivent être incluses entre
apostrophes.
 Chaque chaîne de caractères est sortie une
fois pour chaque ligne renvoyée.
16/10/2022 SQL : LID & LMD & LDD
…
SELECT last_name ||' is a '||job_id
AS "Employee Details"
FROM employees;
16/10/2022 SQL : LID & LMD & LDD
 Indiquer votre propre délimiteur de chaînes de
caractères. Exp : [], {}, () ou <>
 Choisir n’importe quel délimiteur
 Améliorer la lisibilité et la simplicité d’utilisation
q'[, it's assigned Manager Id: ]'
SELECT department_name ||
|| manager_id
AS "Department and Manager"
FROM departments;
…
16/10/2022 SQL : LID & LMD & LDD
 Par défaut, les interrogations renvoient
toutes les lignes, y compris les lignes en
double.
SELECT department_id
FROM employees;
…
DISTINCT
SELECT
FROM
department_id
employees;
…
1
2
16/10/2022 SQL : LID & LMD & LDD
 Utilisez la commande DESCRIBE pour afficher
la structure d’une table.
DESC[RIBE]nom_table
16/10/2022 SQL : LID & LMD & LDD
DESCRIBE employees
16/10/2022 SQL : LID & LMD & LDD
 Ce chapitre vous a permis d’apprendre à :
 Ecrire une instruction SELECT qui :
 Renvoie toutes les lignes et colonnes
 Renvoie des colonnes particulières d’une table.
 Utilise des alias de colonne pour afficher des entêtes
plus évocateurs
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table;
16/10/2022 SQL : LID & LMD & LDD
Chapitre 2
Restreindre (Filtrer) et trier les
données
2
16/10/2022 SQL : LID & LMD & LDD
 Limiter les lignes extraites par une
interrogation.
 Trier les lignes extraites par une
interrogation.
 Utiliser l’esperluette d’interprétation
pour restreindre et trier la sortie lors de
l’exécution.
16/10/2022 SQL : LID & LMD & LDD
“extraire tous les
employés du
départment 90”
EMPLOYEES
…
16/10/2022 SQL : LID & LMD & LDD
 Restreindre les lignes renvoyées à l’aide la
clause WHERE:
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table
[WHERE condition(s)];
 La clause WHERE suit la clause FROM.
16/10/2022 SQL : LID & LMD & LDD
WHERE department_id = 90
SELECT employee_id, last_name, job_id, department_id
FROM employees
;
16/10/2022 SQL : LID & LMD & LDD
'Whalen'
SELECT last_name, job_id, department_id
FROM employees
WHERE last_name = ;
 Les chaînes de caractères et les dates sont
incluses entre apostrophes.
 Les valeurs de type caractère distinguent les
majuscules des minuscules et les valeurs de
date sont sensibles au format.
 Le format de date par défaut est DD-MM-RR
16/10/2022 SQL : LID & LMD & LDD
Operator Meaning
= Egal à
> Supérieur à
>= Supérieur ou égal à
< Inférieur à
<= Inférieur ou égal à
<> Non égal à
BETWEEN
...AND...
Entre deux valeurs (incluses)
IN(set) Correspond à une valeur
quelconque d’une liste
LIKE Correspond à un modèle de
caractère
IS NULL Est une valeur NULL
16/10/2022 SQL : LID & LMD & LDD
<= 3000
SELECT last_name, salary
FROM employees
WHERE salary ;
16/10/2022 SQL : LID & LMD & LDD
 Utilisez la condition BETWEEN pour afficher
les lignes en fonction d’une plage de valeurs.
SELECT last_name, salary
FROM employees
WHERE salary BETWEEN 2500 AND 3500 ;
Limite inférieure Limite supérieure
16/10/2022 SQL : LID & LMD & LDD
 Utilisez la condition d’appartenance IN afin
de tester les valeurs d’une liste.
SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN (100, 101, 201) ;
16/10/2022 SQL : LID & LMD & LDD
SELECTfirst_name
FROM employees
WHERE first_name LIKE 'S%' ;
 Utilisez la condition LIKE pour effectuer des
recherches de chaînes de caractères valides via
l’utilisation de caractères génériques.
 Les conditions de recherche peuvent contenir
soit des caractères littéraux, soit des nombres :
 % indique un nombre quelconque de
caractères (zéro ou plus)
 _ indique un caractère unique
16/10/2022 SQL : LID & LMD & LDD
 Vous pouvez combiner des caractères de
mise en correspondance de modèle:
SELECT last_name
FROM employees
WHERE last_name LIKE '_o%' ;
 Vous pouvez utiliser l’identificateur ESCAPE ()
pour rechercher les symboles % et _ proprement
dits.
16/10/2022 SQL : LID & LMD & LDD
 Tester la présence de valeurs NULL avec
l’opérateur IS NULL.
manager_id IS NULL
SELECT last_name, manager_id
FROM employees
WHERE ;
16/10/2022 SQL : LID & LMD & LDD
Opérateur Signification
AND Renvoie TRUE si les deux
conditions sont vraies.
OR Renvoie TRUE si l’une des deux
conditions est vraie.
NOT Renvoie TRUE si la condition qui
suit est fausse.
16/10/2022 SQL : LID & LMD & LDD
 L’opérateur AND nécessite que les deux conditions
soient vraies:
salary >=10000
job_id LIKE '%MAN%'
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE
AND ;
16/10/2022 SQL : LID & LMD & LDD
 L’opérateur OR nécessite que l’une des deux
conditions soit vraie:
salary >=10000
job_id LIKE '%MAN%'
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE
OR ;
16/10/2022 SQL : LID & LMD & LDD
SELECT last_name, job_id
FROM employees
WHERE job_id
NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP') ;
16/10/2022 SQL : LID & LMD & LDD
Vous pouvez utiliser des parenthèses pour remplacer des règles de
priorité
Operator Meaning
1 Arithmetic operators
2 Concatenation operator
3 Comparison conditions
4 IS [NOT] NULL, LIKE, [NOT] IN
5 [NOT] BETWEEN
6 Not equal to
7 NOT logical condition
8 AND logical condition
9 OR logical condition
16/10/2022 SQL : LID & LMD & LDD
SELECT last_name, job_id, salary
OR
AND
FROM employees
WHERE job_id = 'SA_REP'
job_id = 'AD_PRES'
salary > 15000;
SELECT last_name, job_id, salary
FROM
WHERE
employees
(job_id = 'SA_REP'
job_id = 'AD_PRES')
OR
AND salary > 15000;
1
2
16/10/2022 SQL : LID & LMD & LDD
 Triez les lignes extraites à l’aide de la clause
ORDER BY:
 ASC : ordre croissant (par défaut)
 DESC : ordre déscroissant
 La clause ORDER BY vient en dernier dans
l’instruction SELECT:
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date ;
…
16/10/2022 SQL : LID & LMD & LDD
 Trier par ordre décroissant :
 Trier par alias de colonnes:
 Triez selon plusieurs colonnes:
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date DESC ;
1
annsal
SELECT employee_id, last_name, salary*12
FROM employees
ORDER BY annsal ;
2
SELECT last_name, department_id, salary
FROM employees
ORDER BY department_id, salary DESC;
3
16/10/2022 SQL : LID & LMD & LDD
... salary = ? …
… department_id = ? …
... last_name = ? ...
Je souhaite
interroger
différentes
valeurs
16/10/2022 SQL : LID & LMD & LDD
 Utilisez les variables de substitution pour :
 Stocker temporairement des valeurs, via
l’esperluette d’interprétation (&) et la double
esperluette d’interprétation (&&)
 Utilisez des variables de substitution en
complément des éléments suivants :
 Conditions WHERE
 Clauses ORDER BY
 Expressions de colonne
 Noms des tables
 Instructions SELECT entières
16/10/2022 SQL : LID & LMD & LDD
SELECT employee_id, last_name, salary, department_id
FROM employees
WHERE employee_id = &employee_num ;
 Utilisez une variable précédée d’une esperluette
(&) afin d’inviter l’utilisateur à saisir une valeur:
16/10/2022 SQL : LID & LMD & LDD
SELECT last_name, department_id, salary*12
FROM employees
WHERE job_id = '&job_title' ;
 Utilisez des apostrophes pour les valeurs de type
date et caractère :
16/10/2022 SQL : LID & LMD & LDD
&condition
SELECT employee_id, last_name, job_id,&column_name
FROM employees
WHERE
ORDER BY &order_column ;
salary
salary > 15000
last_name
16/10/2022 SQL : LID & LMD & LDD
SELECT employee_id, last_name, job_id, &&column_name
FROM employees
ORDER BY &column_name ;
…
 Utilisez la double esperluette (&&) si vous
souhaitez réutiliser la valeur de la variable sans
inviter chaque fois l’utilisateur à la saisir:
16/10/2022 SQL : LID & LMD & LDD
 Ce chapitre vous a permis d’apprendre à :
 Utiliser la clause WHERE pour restreindre les lignes
du résultat:
 Utiliser les conditions de comparaisons
 Utiliser les conditions BETWEEN, IN, LIKE et NULL.
 Appliquer les opérateurs logiques AND, OR et NOT
.
 Utiliser la clause order by pour trier les lignes de
résultat
 Utiliser l’esperluette d’interprétation pour
restreindre et trier le résultat lors de l’exécution.
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table
[WHERE condition(s)]
[ORDER BY {column, expr, alias} [ASC|DESC]] ;
16/10/2022 SQL : LID & LMD & LDD
Chapitre 3
Utiliser des fonctions monolignes afin de
personnaliser la sortie
5
16/10/2022 SQL : LID & LMD & LDD
 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 des instructions SELECT.
 Décrire l’utilisation des fonctions de
conversion.
5
16/10/2022 SQL : LID & LMD & LDD
Fonction
Entrée
arg 1
arg 2
arg n
La fonction exécute
une action
Résultat
Valeur de résultat
16/10/2022 SQL : LID & LMD & LDD
Fonctions monoligne Fonctions multiligne
Renvoie un résultat par ligne
5
Renvoie un résultat par
ensemble de lignes
Fonctions
16/10/2022 SQL : LID & LMD & LDD
 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.
5
function_name [(arg1, arg2,...)]
16/10/2022 SQL : LID & LMD & LDD
Fonctions
de conversion
5
Fonctions de
type caractère
Fonctions
numériques
Fonctions de
date
Fonctions
générales
Fonctions monolignes
16/10/2022 SQL : LID & LMD & LDD
10
16/10/2022 SQL : LID & LMD & LDD
Fonctions de type
caractère
Fonctions de manipulation de
La casse
LOWER
UPPER
INITCAP
Fonctions de manipulation
de caractères
CONCAT
SUBSTR
LENGTH
INSTR
LPAD | RPAD
TRIM
REPLACE
16/10/2022 SQL : LID & LMD & LDD
 Ces fonctions convertissent la casse de
chaînes de caractères :
Function Result
LOWER('SQL Course') sql course
UPPER('SQL Course') SQL COURSE
INITCAP('SQL Course') Sql Course
16/10/2022 SQL : LID & LMD & LDD
 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 LOWER(last_name) = 'higgins';
SELECT employee_id, last_name, department_id
FROM employees
WHERE last_name = 'higgins';
no rows selected
16/10/2022 SQL : LID & LMD & LDD
 Ces fonctions manipulent des caractères:
Function Result
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
16/10/2022 SQL : LID & LMD & LDD
SELECT employee_id, CONCAT(first_name, last_name) NAME,
job_id, LENGTH (last_name),
INSTR(last_name, 'a') "Contains 'a'?"
FROM
WHERE
employees
SUBSTR(job_id, 4) = 'REP';
3
1 2
1
2
3
16/10/2022 SQL : LID & LMD & LDD
 ROUND : arrondit la valeur à une décimale donnée.
 TRUNC : tronque la valeur à une décimale donnée.
 MOD : renvoie le reste de la division.
Function Result
ROUND(45.926, 2) 45.93
TRUNC(45.926, 2) 45.92
MOD(1600, 300) 100
16/10/2022 SQL : LID & LMD & LDD
SELECT ROUND(45.923,2), ROUND(45.923,0),
ROUND(45.923,-1)
FROM DUAL;
1 2 3
DUAL est une table factice que vous pouvez utiliser pour
afficher les résultats de fonctions de calcul.
3
1 2
16/10/2022 SQL : LID & LMD & LDD
SELECT TRUNC(45.923,2), TRUNC(45.923),
TRUNC(45.923,-1)
FROM DUAL;
3
3
1 2
1 2
16/10/2022 SQL : LID & LMD & LDD
 Pour tous les employés dont le poste est Sales
Representative (SA_REP), calculer le reste du
salaire après division par 5000 :
MOD(salary, 5000)
SELECT last_name, salary,
FROM employees
WHERE job_id = 'SA_REP';
16/10/2022 SQL : LID & LMD & LDD
 Dans la base de données Oracle, les dates sont
stockées dans un format numériques interne :
siècle, année, mois, jour, heures, minutes et
secondes.
 Le format de date par défaut est DD-MON-RR.
SELECT last_name, hire_date
FROM employees
WHERE hire_date < '01-FEB-88';
16/10/2022 SQL : LID & LMD & LDD
 SYSDATE est une fonction qui renvoie :
 La date
 L’heure
 Calcul arithmétique 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.
16/10/2022 SQL : LID & LMD & LDD
(SYSDATE-hire_date)/7 AS WEEKS
SELECT last_name,
FROM employees
WHERE department_id = 90;
16/10/2022 SQL : LID & LMD & LDD
Function Result
MONTHS_BETWEEN Nombre de mois entre deux dates
ADD_MONTHS Ajout d’un mois à une date
NEXT_DAY Jour qui suit la date indiquée
LAST_DAY Dernier jour du mois
ROUND Date arrondie
TRUNC Date tronquée
16/10/2022 SQL : LID & LMD & LDD
Function Result
MONTHS_BETWEEN
('01-SEP-95','11-JAN-94')
19.6774194
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'
16/10/2022 SQL : LID & LMD & LDD
Supposons SYSDATE = '25-JUL-03':
Function Result
ROUND(SYSDATE,'MONTH') 01-AUG-03
ROUND(SYSDATE ,'YEAR') 01-JAN-04
TRUNC(SYSDATE ,'MONTH') 01-JUL-03
TRUNC(SYSDATE ,'YEAR') 01-JAN-03
16/10/2022 SQL : LID & LMD & LDD
26
16/10/2022 SQL : LID & LMD & LDD
Conversion implicite
de type de données
Conversion explicite
de type de données
Conversion de type
de données
16/10/2022 SQL : LID & LMD & LDD
 Pour les affectations, le serveur Oracle peut
convertir automatiquement les types de données
suivants:
From To
VARCHAR2 or CHAR NUMBER
VARCHAR2 or CHAR DATE
 L’expression hire_date>’01-Jan-90’ entraîne la
conversion implicite de la chaîne ’01-Jan-90’ en
date.
 L’expression salary=‘2000’ entraîne la conversion
implicite de la chaîne ‘2000’ en valeur
numérique 2000.
16/10/2022 SQL : LID & LMD & LDD
NUMBER CHARACTER
TO_CHAR
TO_NUMBER
DATE
TO_CHAR
TO_DATE
16/10/2022 SQL : LID & LMD & LDD
 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')
16/10/2022 SQL : LID & LMD & LDD
Element Result
YYYY Année complète en 4 chiffres
YY Année en deux 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
16/10/2022 SQL : LID & LMD & LDD
 Les éléments d’heure formattent la partie heure de la
date:
 Ajouter 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" MONTH 12 of OCTOBER
ddspth fourteenth
HH24:MI:SS AM 15:45:32 PM
16/10/2022 SQL : LID & LMD & LDD
SELECT last_name,
TO_CHAR(hire_date, 'fmDD Month YYYY')
AS HIREDATE
FROM employees;
…
16/10/2022 SQL : LID & LMD & LDD
34
 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:
Element Result
9 Représente un nombre
0 Force l’affichage d’un zéro
$ Insère un signe dollar
L Utilise le symbole monétaire local
. 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')
16/10/2022 SQL : LID & LMD & LDD
TO_CHAR(salary, '$99,999.00') SALARY
SELECT
FROM employees
WHERE last_name = 'Ernst';
16/10/2022 SQL : LID & LMD & LDD
 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:
TO_NUMBER(char[], 'format_model')
TO_DATE(char[], 'format_model')
16/10/2022 SQL : LID & LMD & LDD
 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)
16/10/2022 SQL : LID & LMD & LDD
 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')
16/10/2022 SQL : LID & LMD & LDD
SELECT last_name, salary, NVL(commission_pct, 0),
(salary*12) + (salary*12*NVL(commission_pct, 0)) AN_SAL
FROM employees;
…
1
1 2
2
16/10/2022 SQL : LID & LMD & LDD
SELECT last_name, salary, commission_pct,
NVL2(commission_pct,
'SAL+COMM', 'SAL') income
FROM employees WHERE department_id IN (50, 80);
1 2
2
1
16/10/2022 SQL : LID & LMD & LDD
LENGTH(first_name) "expr1",
SELECT first_name,
last_name, LENGTH(last_name) "expr2",
NULLIF(LENGTH(first_name), LENGTH(last_name)) result
FROM employees;
…
1
2
3
1 2 3
16/10/2022 SQL : LID & LMD & LDD
 Ce chapitre vous a permis d’apprendre à:
 Effectuer des calculs sur des données.
 Modifier des données individuelles.
 Manipuler la sortie de groupes de lignes.
 Modifier des formats de date pour un affichage.
 Convertir des types de données de colonnes.
 Utiliser les fonctions NVL.
16/10/2022 SQL : LID & LMD & LDD

Contenu connexe

Similaire à Chap-SQL-LID-P1.pdf

SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECTSQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECTwebreaker
 
Plsql triggers
Plsql triggersPlsql triggers
Plsql triggersAz Za
 
01 l'ordre select élémentaire
01 l'ordre select élémentaire 01 l'ordre select élémentaire
01 l'ordre select élémentaire ENSAM Casablanca
 
Chap 3 : structered query language
Chap 3 : structered query languageChap 3 : structered query language
Chap 3 : structered query languageRamzi Trabelsi
 

Similaire à Chap-SQL-LID-P1.pdf (8)

La 2ème partie de la présentation PHP
La 2ème partie de la présentation PHPLa 2ème partie de la présentation PHP
La 2ème partie de la présentation PHP
 
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECTSQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
 
Cours3 gdm sql
Cours3 gdm sqlCours3 gdm sql
Cours3 gdm sql
 
Plsql triggers
Plsql triggersPlsql triggers
Plsql triggers
 
Plsql
PlsqlPlsql
Plsql
 
Cours sql-sh-
Cours sql-sh-Cours sql-sh-
Cours sql-sh-
 
01 l'ordre select élémentaire
01 l'ordre select élémentaire 01 l'ordre select élémentaire
01 l'ordre select élémentaire
 
Chap 3 : structered query language
Chap 3 : structered query languageChap 3 : structered query language
Chap 3 : structered query language
 

Plus de BoubakerMedanas

Chap1Concepts-FondamentauxBD.pdf
Chap1Concepts-FondamentauxBD.pdfChap1Concepts-FondamentauxBD.pdf
Chap1Concepts-FondamentauxBD.pdfBoubakerMedanas
 
course1-Intrduction-to-the-game-industry.pdf
course1-Intrduction-to-the-game-industry.pdfcourse1-Intrduction-to-the-game-industry.pdf
course1-Intrduction-to-the-game-industry.pdfBoubakerMedanas
 
Chapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfChapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfBoubakerMedanas
 
Chapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdfChapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdfBoubakerMedanas
 
Chapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfChapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfBoubakerMedanas
 
Chapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdfChapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdfBoubakerMedanas
 

Plus de BoubakerMedanas (9)

POO-Cours.pdf
POO-Cours.pdfPOO-Cours.pdf
POO-Cours.pdf
 
Chap1Concepts-FondamentauxBD.pdf
Chap1Concepts-FondamentauxBD.pdfChap1Concepts-FondamentauxBD.pdf
Chap1Concepts-FondamentauxBD.pdf
 
course1-Intrduction-to-the-game-industry.pdf
course1-Intrduction-to-the-game-industry.pdfcourse1-Intrduction-to-the-game-industry.pdf
course1-Intrduction-to-the-game-industry.pdf
 
Chapitre-3-Routage.pdf
Chapitre-3-Routage.pdfChapitre-3-Routage.pdf
Chapitre-3-Routage.pdf
 
Chapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfChapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdf
 
Chapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdfChapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdf
 
Chapitre-3-Routage.pdf
Chapitre-3-Routage.pdfChapitre-3-Routage.pdf
Chapitre-3-Routage.pdf
 
Chapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfChapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdf
 
Chapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdfChapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdf
 

Chap-SQL-LID-P1.pdf

  • 1. Réalisé par Pr. Chiheb CHAIEB Cours base de données 16/10/2022 SQL : LID & LMD & LDD
  • 2. 1. Extraire des données à l’aide de l’instruction SQL SELECT 2. Restreindre et trier les données 3. Utiliser des fonctions mono lignes afin de personnaliser la sortie 4. Afficher des données agrégées à l’aide des fonctions de groupe 5. Afficher des données de plusieurs tables 6. Utiliser des sous –interrogations 7. Utiliser des opérateurs ensemblistes 2 16/10/2022 SQL : LID & LMD & LDD
  • 3. 8. Manipuler des données 3 9. Utiliser des instructions LDD pour créer et gérer des tables 16/10/2022 SQL : LID & LMD & LDD
  • 4. Chapitre 1 Extraire des données à l’aide de l’instruction SQL SELECT 4 16/10/2022 SQL : LID & LMD & LDD
  • 5.  Décrire des fonctionnalités des instructions SQL SELECT.  Exécuter des instructions SELECT de base. 16/10/2022 SQL : LID & LMD & LDD
  • 6. Sélection Projection Table 1 Table 2 Table 1 Table 1 Jointure 16/10/2022 SQL : LID & LMD & LDD
  • 7. SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;  L’instruction SELECT identifie les colonnes à afficher.  La clause FROM identifie la table contenant ces colonnes. 16/10/2022 SQL : LID & LMD & LDD
  • 10.  Les instructions SQL ne distinguent pas les majuscules des minuscules.  Les instructions SQL peuvent être écrites sur une ou plusieurs lignes.  Les mots-clés ne peuvent pas être abrégés ou répartis sur plusieurs lignes.  Les clauses sont généralement placées sur des lignes distinctes. 16/10/2022 SQL : LID & LMD & LDD
  • 11.  Créez les expressions avec des données de type nombre et date à l’aide d’opérateurs arithmétiques Opérateur Description + Ajouter - Soustraire * Multiplier / Diviser 16/10/2022 SQL : LID & LMD & LDD
  • 12. R S T= R U S salary + 300 SELECT last_name, salary, FROM employees; … 16/10/2022 SQL : LID & LMD & LDD
  • 13. 12*salary+100 SELECT last_name, salary, FROM employees; 12*(salary+100) SELECT last_name, salary, FROM employees; … … 1 2 16/10/2022 SQL : LID & LMD & LDD
  • 14.  Une valeur NULL est une valeur qui n’est pas disponible, pas affectée ou inconnue .  Une valeur NULL est différente d’un zéro ou d’un espace. SELECT last_name, job_id,salary,commission_pct FROM employees; … … 16/10/2022 SQL : LID & LMD & LDD
  • 15.  Les expressions arithmétiques contenant une valeur NULL renvoient une valeur NULL. … … 12*salary*commission_pct SELECT last_name, FROM employees; 16/10/2022 SQL : LID & LMD & LDD
  • 16.  Un alias de colonne :  Renomme un entête de colonne  Est utile avec les calculs  Suit immédiatement le nom d’une colonne (le mot clé facultatif AS peut également être utilisé entre le nom de la colonne et l’alias)  Nécessité des guillemets s’il contient des espaces ou des caractères spéciaux (# $), ou s’il distingue les majuscules des minuscules. 16/10/2022 SQL : LID & LMD & LDD
  • 17. SELECT last_name "Name" , salary*12 "Annual Salary" FROM employees; comm SELECT last_name AS name, commission_pct FROM employees; … … 16/10/2022 SQL : LID & LMD & LDD
  • 18.  Un opérateur de concaténation :  Lie des colonnes ou des chaînes de caractères à d’autres colonnes.  Est représenté par deux barres verticales (||).  Crée une colonne résultante qui est une expression de type caractère. SELECT FROM last_name||job_id AS "Employees" employees; … 16/10/2022 SQL : LID & LMD & LDD
  • 19.  Un littéral est un caractère, un nombre ou une date inclus dans l’instruction SELECT.  Les valeurs littérales de type date et caractère doivent être incluses entre apostrophes.  Chaque chaîne de caractères est sortie une fois pour chaque ligne renvoyée. 16/10/2022 SQL : LID & LMD & LDD
  • 20. … SELECT last_name ||' is a '||job_id AS "Employee Details" FROM employees; 16/10/2022 SQL : LID & LMD & LDD
  • 21.  Indiquer votre propre délimiteur de chaînes de caractères. Exp : [], {}, () ou <>  Choisir n’importe quel délimiteur  Améliorer la lisibilité et la simplicité d’utilisation q'[, it's assigned Manager Id: ]' SELECT department_name || || manager_id AS "Department and Manager" FROM departments; … 16/10/2022 SQL : LID & LMD & LDD
  • 22.  Par défaut, les interrogations renvoient toutes les lignes, y compris les lignes en double. SELECT department_id FROM employees; … DISTINCT SELECT FROM department_id employees; … 1 2 16/10/2022 SQL : LID & LMD & LDD
  • 23.  Utilisez la commande DESCRIBE pour afficher la structure d’une table. DESC[RIBE]nom_table 16/10/2022 SQL : LID & LMD & LDD
  • 25.  Ce chapitre vous a permis d’apprendre à :  Ecrire une instruction SELECT qui :  Renvoie toutes les lignes et colonnes  Renvoie des colonnes particulières d’une table.  Utilise des alias de colonne pour afficher des entêtes plus évocateurs SELECT *|{[DISTINCT] column|expression [alias],...} FROM table; 16/10/2022 SQL : LID & LMD & LDD
  • 26. Chapitre 2 Restreindre (Filtrer) et trier les données 2 16/10/2022 SQL : LID & LMD & LDD
  • 27.  Limiter les lignes extraites par une interrogation.  Trier les lignes extraites par une interrogation.  Utiliser l’esperluette d’interprétation pour restreindre et trier la sortie lors de l’exécution. 16/10/2022 SQL : LID & LMD & LDD
  • 28. “extraire tous les employés du départment 90” EMPLOYEES … 16/10/2022 SQL : LID & LMD & LDD
  • 29.  Restreindre les lignes renvoyées à l’aide la clause WHERE: SELECT *|{[DISTINCT] column|expression [alias],...} FROM table [WHERE condition(s)];  La clause WHERE suit la clause FROM. 16/10/2022 SQL : LID & LMD & LDD
  • 30. WHERE department_id = 90 SELECT employee_id, last_name, job_id, department_id FROM employees ; 16/10/2022 SQL : LID & LMD & LDD
  • 31. 'Whalen' SELECT last_name, job_id, department_id FROM employees WHERE last_name = ;  Les chaînes de caractères et les dates sont incluses entre apostrophes.  Les valeurs de type caractère distinguent les majuscules des minuscules et les valeurs de date sont sensibles au format.  Le format de date par défaut est DD-MM-RR 16/10/2022 SQL : LID & LMD & LDD
  • 32. Operator Meaning = Egal à > Supérieur à >= Supérieur ou égal à < Inférieur à <= Inférieur ou égal à <> Non égal à BETWEEN ...AND... Entre deux valeurs (incluses) IN(set) Correspond à une valeur quelconque d’une liste LIKE Correspond à un modèle de caractère IS NULL Est une valeur NULL 16/10/2022 SQL : LID & LMD & LDD
  • 33. <= 3000 SELECT last_name, salary FROM employees WHERE salary ; 16/10/2022 SQL : LID & LMD & LDD
  • 34.  Utilisez la condition BETWEEN pour afficher les lignes en fonction d’une plage de valeurs. SELECT last_name, salary FROM employees WHERE salary BETWEEN 2500 AND 3500 ; Limite inférieure Limite supérieure 16/10/2022 SQL : LID & LMD & LDD
  • 35.  Utilisez la condition d’appartenance IN afin de tester les valeurs d’une liste. SELECT employee_id, last_name, salary, manager_id FROM employees WHERE manager_id IN (100, 101, 201) ; 16/10/2022 SQL : LID & LMD & LDD
  • 36. SELECTfirst_name FROM employees WHERE first_name LIKE 'S%' ;  Utilisez la condition LIKE pour effectuer des recherches de chaînes de caractères valides via l’utilisation de caractères génériques.  Les conditions de recherche peuvent contenir soit des caractères littéraux, soit des nombres :  % indique un nombre quelconque de caractères (zéro ou plus)  _ indique un caractère unique 16/10/2022 SQL : LID & LMD & LDD
  • 37.  Vous pouvez combiner des caractères de mise en correspondance de modèle: SELECT last_name FROM employees WHERE last_name LIKE '_o%' ;  Vous pouvez utiliser l’identificateur ESCAPE () pour rechercher les symboles % et _ proprement dits. 16/10/2022 SQL : LID & LMD & LDD
  • 38.  Tester la présence de valeurs NULL avec l’opérateur IS NULL. manager_id IS NULL SELECT last_name, manager_id FROM employees WHERE ; 16/10/2022 SQL : LID & LMD & LDD
  • 39. Opérateur Signification AND Renvoie TRUE si les deux conditions sont vraies. OR Renvoie TRUE si l’une des deux conditions est vraie. NOT Renvoie TRUE si la condition qui suit est fausse. 16/10/2022 SQL : LID & LMD & LDD
  • 40.  L’opérateur AND nécessite que les deux conditions soient vraies: salary >=10000 job_id LIKE '%MAN%' SELECT employee_id, last_name, job_id, salary FROM employees WHERE AND ; 16/10/2022 SQL : LID & LMD & LDD
  • 41.  L’opérateur OR nécessite que l’une des deux conditions soit vraie: salary >=10000 job_id LIKE '%MAN%' SELECT employee_id, last_name, job_id, salary FROM employees WHERE OR ; 16/10/2022 SQL : LID & LMD & LDD
  • 42. SELECT last_name, job_id FROM employees WHERE job_id NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP') ; 16/10/2022 SQL : LID & LMD & LDD
  • 43. Vous pouvez utiliser des parenthèses pour remplacer des règles de priorité Operator Meaning 1 Arithmetic operators 2 Concatenation operator 3 Comparison conditions 4 IS [NOT] NULL, LIKE, [NOT] IN 5 [NOT] BETWEEN 6 Not equal to 7 NOT logical condition 8 AND logical condition 9 OR logical condition 16/10/2022 SQL : LID & LMD & LDD
  • 44. SELECT last_name, job_id, salary OR AND FROM employees WHERE job_id = 'SA_REP' job_id = 'AD_PRES' salary > 15000; SELECT last_name, job_id, salary FROM WHERE employees (job_id = 'SA_REP' job_id = 'AD_PRES') OR AND salary > 15000; 1 2 16/10/2022 SQL : LID & LMD & LDD
  • 45.  Triez les lignes extraites à l’aide de la clause ORDER BY:  ASC : ordre croissant (par défaut)  DESC : ordre déscroissant  La clause ORDER BY vient en dernier dans l’instruction SELECT: SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date ; … 16/10/2022 SQL : LID & LMD & LDD
  • 46.  Trier par ordre décroissant :  Trier par alias de colonnes:  Triez selon plusieurs colonnes: SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date DESC ; 1 annsal SELECT employee_id, last_name, salary*12 FROM employees ORDER BY annsal ; 2 SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary DESC; 3 16/10/2022 SQL : LID & LMD & LDD
  • 47. ... salary = ? … … department_id = ? … ... last_name = ? ... Je souhaite interroger différentes valeurs 16/10/2022 SQL : LID & LMD & LDD
  • 48.  Utilisez les variables de substitution pour :  Stocker temporairement des valeurs, via l’esperluette d’interprétation (&) et la double esperluette d’interprétation (&&)  Utilisez des variables de substitution en complément des éléments suivants :  Conditions WHERE  Clauses ORDER BY  Expressions de colonne  Noms des tables  Instructions SELECT entières 16/10/2022 SQL : LID & LMD & LDD
  • 49. SELECT employee_id, last_name, salary, department_id FROM employees WHERE employee_id = &employee_num ;  Utilisez une variable précédée d’une esperluette (&) afin d’inviter l’utilisateur à saisir une valeur: 16/10/2022 SQL : LID & LMD & LDD
  • 50. SELECT last_name, department_id, salary*12 FROM employees WHERE job_id = '&job_title' ;  Utilisez des apostrophes pour les valeurs de type date et caractère : 16/10/2022 SQL : LID & LMD & LDD
  • 51. &condition SELECT employee_id, last_name, job_id,&column_name FROM employees WHERE ORDER BY &order_column ; salary salary > 15000 last_name 16/10/2022 SQL : LID & LMD & LDD
  • 52. SELECT employee_id, last_name, job_id, &&column_name FROM employees ORDER BY &column_name ; …  Utilisez la double esperluette (&&) si vous souhaitez réutiliser la valeur de la variable sans inviter chaque fois l’utilisateur à la saisir: 16/10/2022 SQL : LID & LMD & LDD
  • 53.  Ce chapitre vous a permis d’apprendre à :  Utiliser la clause WHERE pour restreindre les lignes du résultat:  Utiliser les conditions de comparaisons  Utiliser les conditions BETWEEN, IN, LIKE et NULL.  Appliquer les opérateurs logiques AND, OR et NOT .  Utiliser la clause order by pour trier les lignes de résultat  Utiliser l’esperluette d’interprétation pour restreindre et trier le résultat lors de l’exécution. SELECT *|{[DISTINCT] column|expression [alias],...} FROM table [WHERE condition(s)] [ORDER BY {column, expr, alias} [ASC|DESC]] ; 16/10/2022 SQL : LID & LMD & LDD
  • 54. Chapitre 3 Utiliser des fonctions monolignes afin de personnaliser la sortie 5 16/10/2022 SQL : LID & LMD & LDD
  • 55.  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 des instructions SELECT.  Décrire l’utilisation des fonctions de conversion. 5 16/10/2022 SQL : LID & LMD & LDD
  • 56. Fonction Entrée arg 1 arg 2 arg n La fonction exécute une action Résultat Valeur de résultat 16/10/2022 SQL : LID & LMD & LDD
  • 57. Fonctions monoligne Fonctions multiligne Renvoie un résultat par ligne 5 Renvoie un résultat par ensemble de lignes Fonctions 16/10/2022 SQL : LID & LMD & LDD
  • 58.  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. 5 function_name [(arg1, arg2,...)] 16/10/2022 SQL : LID & LMD & LDD
  • 59. Fonctions de conversion 5 Fonctions de type caractère Fonctions numériques Fonctions de date Fonctions générales Fonctions monolignes 16/10/2022 SQL : LID & LMD & LDD
  • 60. 10 16/10/2022 SQL : LID & LMD & LDD
  • 61. Fonctions de type caractère Fonctions de manipulation de La casse LOWER UPPER INITCAP Fonctions de manipulation de caractères CONCAT SUBSTR LENGTH INSTR LPAD | RPAD TRIM REPLACE 16/10/2022 SQL : LID & LMD & LDD
  • 62.  Ces fonctions convertissent la casse de chaînes de caractères : Function Result LOWER('SQL Course') sql course UPPER('SQL Course') SQL COURSE INITCAP('SQL Course') Sql Course 16/10/2022 SQL : LID & LMD & LDD
  • 63.  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 LOWER(last_name) = 'higgins'; SELECT employee_id, last_name, department_id FROM employees WHERE last_name = 'higgins'; no rows selected 16/10/2022 SQL : LID & LMD & LDD
  • 64.  Ces fonctions manipulent des caractères: Function Result 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 16/10/2022 SQL : LID & LMD & LDD
  • 65. SELECT employee_id, CONCAT(first_name, last_name) NAME, job_id, LENGTH (last_name), INSTR(last_name, 'a') "Contains 'a'?" FROM WHERE employees SUBSTR(job_id, 4) = 'REP'; 3 1 2 1 2 3 16/10/2022 SQL : LID & LMD & LDD
  • 66.  ROUND : arrondit la valeur à une décimale donnée.  TRUNC : tronque la valeur à une décimale donnée.  MOD : renvoie le reste de la division. Function Result ROUND(45.926, 2) 45.93 TRUNC(45.926, 2) 45.92 MOD(1600, 300) 100 16/10/2022 SQL : LID & LMD & LDD
  • 67. SELECT ROUND(45.923,2), ROUND(45.923,0), ROUND(45.923,-1) FROM DUAL; 1 2 3 DUAL est une table factice que vous pouvez utiliser pour afficher les résultats de fonctions de calcul. 3 1 2 16/10/2022 SQL : LID & LMD & LDD
  • 68. SELECT TRUNC(45.923,2), TRUNC(45.923), TRUNC(45.923,-1) FROM DUAL; 3 3 1 2 1 2 16/10/2022 SQL : LID & LMD & LDD
  • 69.  Pour tous les employés dont le poste est Sales Representative (SA_REP), calculer le reste du salaire après division par 5000 : MOD(salary, 5000) SELECT last_name, salary, FROM employees WHERE job_id = 'SA_REP'; 16/10/2022 SQL : LID & LMD & LDD
  • 70.  Dans la base de données Oracle, les dates sont stockées dans un format numériques interne : siècle, année, mois, jour, heures, minutes et secondes.  Le format de date par défaut est DD-MON-RR. SELECT last_name, hire_date FROM employees WHERE hire_date < '01-FEB-88'; 16/10/2022 SQL : LID & LMD & LDD
  • 71.  SYSDATE est une fonction qui renvoie :  La date  L’heure  Calcul arithmétique 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. 16/10/2022 SQL : LID & LMD & LDD
  • 72. (SYSDATE-hire_date)/7 AS WEEKS SELECT last_name, FROM employees WHERE department_id = 90; 16/10/2022 SQL : LID & LMD & LDD
  • 73. Function Result MONTHS_BETWEEN Nombre de mois entre deux dates ADD_MONTHS Ajout d’un mois à une date NEXT_DAY Jour qui suit la date indiquée LAST_DAY Dernier jour du mois ROUND Date arrondie TRUNC Date tronquée 16/10/2022 SQL : LID & LMD & LDD
  • 74. Function Result MONTHS_BETWEEN ('01-SEP-95','11-JAN-94') 19.6774194 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' 16/10/2022 SQL : LID & LMD & LDD
  • 75. Supposons SYSDATE = '25-JUL-03': Function Result ROUND(SYSDATE,'MONTH') 01-AUG-03 ROUND(SYSDATE ,'YEAR') 01-JAN-04 TRUNC(SYSDATE ,'MONTH') 01-JUL-03 TRUNC(SYSDATE ,'YEAR') 01-JAN-03 16/10/2022 SQL : LID & LMD & LDD
  • 76. 26 16/10/2022 SQL : LID & LMD & LDD
  • 77. Conversion implicite de type de données Conversion explicite de type de données Conversion de type de données 16/10/2022 SQL : LID & LMD & LDD
  • 78.  Pour les affectations, le serveur Oracle peut convertir automatiquement les types de données suivants: From To VARCHAR2 or CHAR NUMBER VARCHAR2 or CHAR DATE  L’expression hire_date>’01-Jan-90’ entraîne la conversion implicite de la chaîne ’01-Jan-90’ en date.  L’expression salary=‘2000’ entraîne la conversion implicite de la chaîne ‘2000’ en valeur numérique 2000. 16/10/2022 SQL : LID & LMD & LDD
  • 80.  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') 16/10/2022 SQL : LID & LMD & LDD
  • 81. Element Result YYYY Année complète en 4 chiffres YY Année en deux 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 16/10/2022 SQL : LID & LMD & LDD
  • 82.  Les éléments d’heure formattent la partie heure de la date:  Ajouter 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" MONTH 12 of OCTOBER ddspth fourteenth HH24:MI:SS AM 15:45:32 PM 16/10/2022 SQL : LID & LMD & LDD
  • 83. SELECT last_name, TO_CHAR(hire_date, 'fmDD Month YYYY') AS HIREDATE FROM employees; … 16/10/2022 SQL : LID & LMD & LDD
  • 84. 34  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: Element Result 9 Représente un nombre 0 Force l’affichage d’un zéro $ Insère un signe dollar L Utilise le symbole monétaire local . 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') 16/10/2022 SQL : LID & LMD & LDD
  • 85. TO_CHAR(salary, '$99,999.00') SALARY SELECT FROM employees WHERE last_name = 'Ernst'; 16/10/2022 SQL : LID & LMD & LDD
  • 86.  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: TO_NUMBER(char[], 'format_model') TO_DATE(char[], 'format_model') 16/10/2022 SQL : LID & LMD & LDD
  • 87.  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) 16/10/2022 SQL : LID & LMD & LDD
  • 88.  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') 16/10/2022 SQL : LID & LMD & LDD
  • 89. SELECT last_name, salary, NVL(commission_pct, 0), (salary*12) + (salary*12*NVL(commission_pct, 0)) AN_SAL FROM employees; … 1 1 2 2 16/10/2022 SQL : LID & LMD & LDD
  • 90. SELECT last_name, salary, commission_pct, NVL2(commission_pct, 'SAL+COMM', 'SAL') income FROM employees WHERE department_id IN (50, 80); 1 2 2 1 16/10/2022 SQL : LID & LMD & LDD
  • 91. LENGTH(first_name) "expr1", SELECT first_name, last_name, LENGTH(last_name) "expr2", NULLIF(LENGTH(first_name), LENGTH(last_name)) result FROM employees; … 1 2 3 1 2 3 16/10/2022 SQL : LID & LMD & LDD
  • 92.  Ce chapitre vous a permis d’apprendre à:  Effectuer des calculs sur des données.  Modifier des données individuelles.  Manipuler la sortie de groupes de lignes.  Modifier des formats de date pour un affichage.  Convertir des types de données de colonnes.  Utiliser les fonctions NVL. 16/10/2022 SQL : LID & LMD & LDD