SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 ·...

40
© [email protected] Fonction NVL Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction NVL( ) Afficher zéro à la place des valeurs vides dans la colonne mgr de la table EMP Même type

Transcript of SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 ·...

Page 1: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Fonction NVLFonction NVLVous pouvez substituer la valeur nulle par une autre valeur avec la fonction NVL( )

Afficher zéro à la place des valeurs vides dans la colonne mgr de la table EMP

Même type

Page 2: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Fonction DECODEFonction DECODE

Facilite la recherche conditionnelle, jouant le rôle de CASE ou IF-THEN-ELSESyntaxeDECODE (Colonne|Expression, recherche1, résultat1

[, recherche2, résultat2,…,][, Sinon])

Page 3: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Fonction DECODEFonction DECODEOn souhaite consulter le nouveau salaire des employés:

10% de plus pour les analystes50% pour le président20% pour les managers

IF job='ANALYSTE' THEN sal=sal*1.1IF job='PRESIDENT' THEN sal=sal*1.5IF job='MANAGER' THEN sal=sal*1.2ELSE sal = sal

Page 4: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Imbrication des fonctions Imbrication des fonctions monomono--ligneslignes

Le niveau d'imbrication des fonctions mono-lignes est illimitéLes fonctions imbriquées sont évaluées de l'intérieur vers l'extérieur

F3(F2(F1(paramètre1), paramètre2), paramètre3)Etape 1

Etape 2

Etape 3

Page 5: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Imbrication des fonctions Imbrication des fonctions monomono--ligneligne

Remplacer les données vide du champ mgrpar "Pas de Manager"

Page 6: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Fonctions Fonctions multimulti--ligneligne

Agissent sur des groupes de lignesDonnent un résultat par groupeUn groupe peut-être une table ou un ensemble de lignes dans une table

Page 7: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Fonctions Fonctions multimulti--ligneligne

EMPEMP

““maximum maximum salarysalary in in

thethe EMP tableEMP table””

DEPTNO SAL--------- ---------

10 245010 500010 130020 80020 110020 300020 300020 297530 160030 285030 125030 95030 150030 1250

MAX(SAL)

---------

5000

Page 8: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Types de fonctionsTypes de fonctions

Variance de expr en ignorant les valeurs NullVARIANCE([DISTINCT|ALL]expr)

Somme de valeurs de expr, en ignorant les valeurs NullSUM ([DISTINCT|ALL]expr)

Valeur maximale de expr en ignorant les valeurs NullMAX([DISTINCT|ALL]expr)

Ecart-type de expr en ignorant les valeurs NullSTDDEV ([DISTINCT|ALL]expr)

Valeur minimale de expr en ignorant les valeurs NullMIN([DISTINCT|ALL]expr)

Nombre de ligne où expr est différent de Null. * comptabilise toutes les lignes sélectionnées y compris les doublons et les lignes Null

COUNT({*|[DISTINCT|ALL]expr})

Valeur moyenne de col en ignorant les valeurs NullAVG([DISTINCT|ALL]col)

DescriptionFonction

ConseilsAvec DISTINCT, la fonction ne prend en compte que les valeurs distinctes.Avec ALL, la fonction tient compte de toutes les valeurs y compris les doublonsSi expr est spécifié, les types de données possibles pour les arguments sont CHAR, VARCHAR2, NUMBER, ou DATEToutes les fonctions multi-ligne, à l'exception de COUNT(*) ignorent les valeurs Null

Page 9: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Fonctions AVG, SUM, Fonctions AVG, SUM, VARIANCE et STDDEVVARIANCE et STDDEV

S'utilisent avec des données numériquesAfficher le salaire moyenne et la somme des salaires

AVG(SAL) MAX(SAL) MIN(SAL) SUM(SAL)-------- --------- --------- ---------

1400 1600 1250 5600

SQL> SELECT AVG(sal), MAX(sal),2 MIN(sal), SUM(sal)3 FROM emp4 WHERE job LIKE 'SALES%';

Page 10: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Fonctions AVG, SUM, Fonctions AVG, SUM, VARIANCE et STDDEVVARIANCE et STDDEV

Attention aux valeurs nulles ignorées dans AVGSQL> SELECT AVG(comm)2 FROM emp;

AVG(COMM)---------

550

Page 11: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Fonctions AVG, SUM, Fonctions AVG, SUM, VARIANCE et STDDEVVARIANCE et STDDEV

Attention aux valeurs nulles ignorées dans AVG

SQL> SELECT AVG(NVL(comm,0))2 FROM emp;

AVG(NVL(COMM,0))----------------

157.14286

Page 12: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Fonctions MIN et MAXFonctions MIN et MAX

S'utilisent avec tous types de données

Afficher le nom des employés qui apparaissent en premier et en dernier dans le classement alphabétique

SQL> SELECT MIN(hiredate), MAX(hiredate)2 FROM emp;

MIN(HIRED MAX(HIRED--------- ---------17-DEC-80 12-JAN-83

Page 13: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Fonction COUNTFonction COUNTAfficher le nombre de commissions pour le département 30

Ramène le nombre de lignes d'une table

Ramène le nombre de lignes non Null

Page 14: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

OpOpéérateurs Ensemblistesrateurs Ensemblistes

Toutes les lignes sélectionnées par la première requête moins les lignes sélectionnées dans la seconde requêteMINUS

Renvoie toutes les lignes ramenées par les deux requêtes, y compris les doublonsUNION ALL

Renvoie toutes les lignes distinctes ramenées par les deux requêtesUNION

Donne toutes les lignes communes aux deux requêtesINTERSECT

RésultatOpérateur

Page 15: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

RRèègles des opgles des opéérateurs rateurs ensemblistesensemblistes

Les expressions citées dans la clause SELECT doivent

Être égales en nombreAvoir des données de même type

Vous pouvez utiliser les fonctions explicites de conversion

Les doublons sont automatiquement éliminés (sauf avec l'opérateur UNION ALL)

Page 16: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

RRèègles des opgles des opéérateurs rateurs ensemblistesensemblistes

Les noms de colonnes apparaissent dans le résultat sont ceux de la première requêtePar défaut, le résultat est trié par ordre croissant (sauf avec l'opérateur UNION ALL)Utilisez des parenthèses pour modifier la séquence d'exécution

Page 17: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

SousSous--requêtesrequêtes

Quels sont les salariés qui gagnent plus que Jones ?

Quels sont les salariés qui ont un salaire supérieur àcelui de Jones ?

Requête initiale

??

Quel est le salaire de Jones ???

Sous-requête

Page 18: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

SousSous--requêtesrequêtesSyntaxe

SELECT select_listeFROM tableWHERE expr opérateur

(SELECT select_listeFROM table)

La sous-requête est exécutée une fois avant la requête principaleLe résultat de la sous-requête est utilisé par la requête principale

Page 19: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

SousSous--requêtesrequêtes

Conventions d'utilisations Placez les sous-requêtes entre parenthèsesPlacez les sous-requêtes à droite de l'opérateur de comparaisonN'ajoutez jamais la clause ORDER BY à une sous-requête

Une seule clause ORDER BY est autorisée par requête

Page 20: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Types de Types de soussous--requêtesrequêtes• Sous-requête mono-ligne

Requête Initiale

Sous req.RenvoieRenvoie

CLERKCLERK

• Sous-requête multi-ligne

CLERKCLERKMANAGERMANAGER

Requête Initiale

Sous req.RenvoieRenvoie

• Sous-requête multi-colonne

CLERK 7900CLERK 7900MANAGER 7698MANAGER 7698

Requête Initiale

Sous req.RenvoieRenvoie

Page 21: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

SousSous--requêtesrequêtes monomono--ligneligne

Ne ramènent qu'une seule ligneUtilisent des opérateurs de comparaison mono-ligne

Différent de<>Inférieur ou égal à<=Inférieur à<Supérieur ou égal à>= Supérieur à>

Egal à=

SignificationOpérateur

Page 22: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

SousSous--requêtesrequêtes monomono--ligneligneAfficher les employés occupant le même poste que l'employé 7369 et gagnent plus que l'employé 7876

CLERK

1100

Page 23: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

SousSous--requêtesrequêtes monomono--ligneligneTrouver les employés qui touchent un salaire supérieur à la moyenne

Page 24: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

SousSous--requêtesrequêtes multimulti--ligneligneRamènent plusieurs lignesUtilisent des opérateurs de comparaison multi-ligne

Compare la valeur à toutes les valeurs ramenées par la sous-requête> ALL ⇒ signifie supérieur au maximum< ALL ⇒ signifie inférieur au minimum

ALL

Compare la valeur à chaque valeur ramenée par la sous-requête< ANY ⇒ signifie inférieur à au moins une des valeurs, donc < au maximum> ANY ⇒ signifie supérieur à au moins une des valeurs, donc > au minimum= ANY ⇒ équivalent IN

ANY

Egal à un élément quelconque de la listeIN

DescriptionOpérateur

Page 25: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

SousSous--requêtesrequêtes multimulti--ligneligneAfficher les employés dont le salaire est inférieur à celui de

n'importe quel employé 'MANAGER'

Page 26: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

SousSous--requêtesrequêtes multimulti--ligneligneAfficher les employés dont le salaire est supérieur au

salaire moyen de tous les départements

Page 27: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Requêtes de jointureRequêtes de jointure

SELECT table1.column, table2.columnFROM table1, table2WHERE table1.column(+) = table2.column;

SELECT table1.column, table2.columnFROM table1, table2WHERE table1.column(+) = table2.column;

SELECT table1.column, table2.columnFROM table1, table2WHERE table1.column = table2.column(+);

SELECT table1.column, table2.columnFROM table1, table2WHERE table1.column = table2.column(+);

DemiDemi--JointureJointure DroiteDroite

DemiDemi--JointureJointure GaucheGauche

Page 28: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Requêtes de jointureRequêtes de jointure

SQL> SELECT e.ename, d.deptno, d.dname2 FROM emp e, dept d3 WHERE e.deptno(+) = d.deptno4 ORDER BY e.deptno;

ENAME DEPTNO DNAME---------- --------- -------------KING 10 ACCOUNTINGCLARK 10 ACCOUNTING...

40 OPERATIONS15 rows selected.

Page 29: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Requête paramRequête paraméétrtrééee

Je souhaite que les critères des requêtes soient saisis pendant l’exécution....sal = ? …

… deptno = ? ….. ename = ? ...

UtilisateurUtilisateur

Page 30: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Requête paramRequête paraméétrtrééee

SQL*Plus permet de stocker temporairement des variables

Simple en utilisant le caractère &Double en utilisant les caractères &&

Page 31: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Requête paramRequête paraméétrtrééee

Afficher le nom des employés situés dans un département saisi par l'utilisateur

Page 32: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Requête paramRequête paraméétrtrééeeSET VERIFY ON

Permet d'afficher le texte de la commande avant et après la saisie de l'utilisateur

AttentionPlacez les valeurs de type caractère et date entre simples quottes

Page 33: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Les variables de substitutionLes variables de substitution

Peuvent remplacerUne condition WHEREUne clause ORDER BYUn nom de colonneUn nom de tableUne expressionUn ordre SELECT

Page 34: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Les variables de substitutionLes variables de substitution

SQL> SELECT empno, ename, job, &column_name2 FROM emp3 WHERE &condition4 ORDER BY &order_column;

Enter value for column_name: salsalEnter value for condition: sal>=3000sal>=3000Enter value for order_column: enameename

EMPNO ENAME JOB SAL--------- ---------- --------- ---------

7902 FORD ANALYST 30007839 KING PRESIDENT 50007788 SCOTT ANALYST 3000

Page 35: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Les variables de substitutionLes variables de substitution

Spécifier un && si vous voulez réutiliser la valeur de la variable sans interroger l'utilisateur à chaque foisSQL> SELECT empno, ename, job, &&column_name2 FROM emp3 ORDER BY &column_name;

Enter value for column_name: deptnodeptnoEMPNO ENAME JOB DEPTNO

--------- ---------- --------- ---------7839 KING PRESIDENT 107782 CLARK MANAGER 107934 MILLER CLERK 10

...14 rows selected.

Page 36: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

DDééfinition des variables finition des variables utilisateurutilisateur

Les commandes ACCEPT lit une chaîne de caractère et la stocke dans une variableDEFINE crée une variable et lui affecte une valeur

Lit une ligne saisie par l'utilisateur et la stocke dans une variableACCEPT

Affiche toutes les variablesDEFINEAffiche la variable, sa valeur et son typeDEFINE variable

Crée une variable de type CHAR et lui affecte une valeurDEFINE variable = valeur

DescriptionCommande

Page 37: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Command ACCEPTCommand ACCEPTAffiche un message d'invité personnaliséet récupère une valeur saisie par l'utilisateur

En définissant le type de donnée (CHAR, NUMBER et DATE)En masquant parfois la saisie des mots de passe

Syntaxe

ACCEPT variable [Type] [FORMAT fmt] [PROMPT invite] [HIDE]

Page 38: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Command ACCEPTCommand ACCEPT

ACCEPT dept PROMPT 'Provide the department name: 'SELECT * FROM deptWHERE dname = UPPER('&dept')/

Provide the department name: SalesSales

DEPTNO DNAME LOC--------- -------------- -------------

30 SALES CHICAGO

Page 39: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Commande DEFINECommande DEFINE

Permet de changer la valeur d'une variablePermet d'afficher la liste des variables définiesPour définir vos variables dans SQL*PLUS, modifier le fichier login.sqlUNDEFINE permet de libérer une variable

Page 40: SQL - Oracle - Freedcanl.free.fr/Etudes/COURS_IUT_IQ2/BDD2/CM/SQL_-_Oracle... · 2006-10-17 · Fonction NVL Vous pouvez substituer la valeur nulle par une autre valeur avec la fonction

© [email protected]

Commande DEFINECommande DEFINE

DEFINE DEPTNAME = "sales" (CHAR) DEFINE DEPTNAME = "sales" (CHAR)

SQL> DEFINE deptname = salesSQL> DEFINE deptname

SQL> SELECT * 2 FROM dept3 WHERE dname = UPPER('&deptname');