Académique Documents
Professionnel Documents
Culture Documents
IT-LEARNING COMPUS
06/12/2011
Langage
Table SALGRADE
IT-LEARNING COMPUS
06/12/2011
IT-LEARNING COMPUS
06/12/2011
Table DUAL
Table DUAL C'est une particularit d'Oracle. Cette pseudo-table ne contient qu'une seule ligne et une seule colonne et ne peut tre utilise qu'avec une requte select . Elle permet de faire afficher une expression dont la valeur ne dpend d'aucune table en particulier. Exemple Afficher la date d'aujourd'hui, le nom de l'utilisateur et le rsultat d'un calcul, revient crire. select sysdate, user, round(3676 / 7) from dual ;
IT-LEARNING COMPUS
06/12/2011
Cration de Tables
Syntaxe :
CREATE TABLE nomtable (champs typechamps [DEFAULT valeur], ...);
Les identificateurs utiliss doivent respecter les rgles suivantes: Commencer par une lettre et contenir que les caractres A Z, 0 9, _, $, et # (30 caractres maximum). tre diffrent des autres objets appartenant au mme utilisateur et des mots rserv Oracle
IT-LEARNING COMPUS
06/12/2011
Cration de Tables
Types de donnes
VARCHAR2(taille) CHAR(taille)
Description
Donnes caractres de longueur variable (2000 caractres maximum) Donnes caractres de longueur fixe (255 caractres maximum)
NUMBER(taille,dcimale) Numrique de longueur variable DATE LONG LONG RAW Valeurs de date et d'heure Donnes caractres de longueur variable, jusqu' 2 giga-octets Binaire(image)
IT-LEARNING COMPUS
06/12/2011
Cration de Tables
CREATE TABLE
Empclerk
hiredate, deptno
AS SELECT empno mat, ename, nom, sal + comm as salaire, FROM emp WHERE job like 'clerk');
IT-LEARNING COMPUS
06/12/2011
IT-LEARNING COMPUS
10
06/12/2011
PRIMARY KEY
FOREIGN KEY
CHECK
IT-LEARNING COMPUS
11
06/12/2011
IT-LEARNING COMPUS
12
06/12/2011
ALTER TABLE
Employes
DROP CONSTRAINT
IT-LEARNING COMPUS
14
06/12/2011
Notion
de vue
Une vue est une table virtuelle base sur une ou plusieurs table
(ou sur dautres vues). Cest une fentre par laquelle il est possible de visualiser ou de modifier des donnes venant de ces tables (appels tables de base).
IT-LEARNING COMPUS
15
06/12/2011
La SousInterogation(ordre select) ne doit pas comporter la clause ORDER BY. WITH CHECK OPTION permet de garantir que les ordres LMD reste dans le domaine de la vue. WITH READ ONLY assure qu'aucune opration LMD ne sera excute dans la vue.
IT-LEARNING COMPUS
16
06/12/2011
CREATE VIEW manager (matricule, nom, fonction, dateembouche, salaire, Departement ) AS SELECT empno, ename, job,hiredate, sal + nvl(comm,0), dname FROM emp, dept WHERE ((emp.deptno = dept.deptno) and empno in (select mgr from emp where mgr is not NULL)) WITH READ ONLY
IT-LEARNING COMPUS
17
06/12/2011
L'ordre DROP VIEW permet supprimer une vue (les tables de base correspondantes ne sont pas supprimes). Syntaxe
IT-LEARNING COMPUS
18
06/12/2011
Index
Un index Oracle est un objet de schma qui permet d'acclrer l'extraction de lignes par le biais d'un pointeur.
Lorsqu'une colonne est frquemment utilise dans la clause WHERE ou dans une condition de jointure. Lorsqu'une colonne contient un large ventail de valeurs. Lorsqu'une colonne contient un grand nombre de valeurs NULL. Lorsque deux ou plusieurs colonnes sont frquemment utilises conjointement dans une clause WHERE ou une condition de jointure. Lorsque la table est de grande taille et que la plupart des requtes doivent extraire moins de 2 4 % de lignes.
19 06/12/2011
IT-LEARNING COMPUS
CREATE INDEX
Un index se cre par la commande CREATE INDEX : CREATE [UNIQUE] INDEX [nom-schma.]nom-index ON <nom-table> ( { nomcolonne [ASC | DESC ] } ) On peut spcifier par l'option UNIQUE que chaque valeur d'index doit tre unique dans la table. On peut spcifier par l'option ASC et DESC un tri en ordre croissant ou dcroissant (respectivement).
Exemple : index sur les numros de pice, sans double, en ordre croissant CREATE UNIQUE INDEX emp_idx ON EMP (EMPNO ASC) ;
IT-LEARNING COMPUS
20
06/12/2011
CREATE INDEX
Exemple 1: Index B-Tree Ce type dindex conserve en permanence une arborescence symtrique (balance). Toutes les feuilles sont la mme profondeur. Le temps de recherche est ainsi peu prs constant quel que soit lenregistrement cherch. Le plus bas niveau de lindex (leaf blocks) contient les valeurs des colonnes indexes et le rowid. Remarque : Nous observons lefficacit de b-tree quand les valeurs du champ index sont uniques. CREATE UNIQUE INDEX nom_idx ON Pilote btree (nom ASC);
IT-LEARNING COMPUS
21
06/12/2011
CREATE INDEX
Exemple 2: Index bitmap Un bitmap ne stocke quune chane de bits. Chacun deux correspond une possible valeur de la colonne indexe. Si le bit est positionn 1, pour une valeur donne de lindex, cela signifie que la ligne courante contient la valeur. Une fonction de transformation convertit la position du bit en un rowid. CREATE BITMAP INDEX nom_bitmap_idx ON Pilote (compa);
Les index bitmaps sont trs bien adapts la recherche dinformations base sur des critres dgalit (exemple : compa = AF), mais ne conviennent pas du tout des critres de comparaison (exemple : nbHVol > 657).
IT-LEARNING COMPUS
22
06/12/2011
CREATE INDEX
Exemple 2: Index bass sur des fonctions Une fonction de calcul (expressions arithmtiques ou fonctions SQL, PL/SQL ou C) peut dfinir un index. Celui-ci est dit bas sur une fonction CREATE INDEX idx_fct_Solde_CompteEpargne ON CompteEpargne ((credit- debit) *(1+(txInt/100))-agios, credit, debit, txInt, agios);
IT-LEARNING COMPUS
23
06/12/2011
DROP INDEX
Pour modifier un index, vous devez le supprimer puis le recrer. Utiliser DROP INDEX Pour supprimer un index Pour supprimer un index, vous devez en tre le propritaire ou avoir le privilge DROP ANY INDEX. Un index est automatiquement supprim ds qu'on supprime la table laquelle il appartient.
IT-LEARNING COMPUS
24
06/12/2011
CREATE SEQUENCE
Une squence est un compteur programmable stock en mmoire par Oracle et utilisable de manire partag. Il est, en gnral, utilis pour fournir les n des cls d'enregistrements. CREATE SEQUENCE nom_squence [INCREMENT BY entier1] [START WITH entier2] Exemple create sequence seqdept increment by 10 start with 10
IT-LEARNING COMPUS
25
06/12/2011
Utilisation SEQUENCE
Deux pseudo-colonnes permettent d'utiliser les squences :
CURRVAL retourne la valeur courante de la squence ; NEXTVAL incrmente la squence et retourne la nouvelle valeur.
Exemple : insert into dept(deptno, dname,loc) values (seqdept.nextval, 'Finances', 'casablanca') Pour voir la valeur d'une squence, on utilise currval avec la table dual select seqdept.currval from dual.
IT-LEARNING COMPUS
26
06/12/2011
Lordre Select
Lutilisation la plus frquente de SQL seffectue dans les requtes afin de rechercher les donnes dans une base de donnes.
Syntaxe
select [distinct] * | <liste des champs > From <Liste des tables> [where <critre de slection >] [group by <critres de regroupement>] [having <conditions de filtrage sur les groupes>] [order by <liste des champs > asc | desc ] ;
IT-LEARNING COMPUS 27 06/12/2011
Les
Les ordres SQL peuvent tre crits sur plusieurs lignes. Les mots-cls ne doivent pas tre abrgs ni scinds sur deux
lignes diffrentes.
Les
distinctes.
IT-LEARNING COMPUS
28
06/12/2011
Exemple de SELECT
SELECT * FROM dept; DEPTNO --------10 20 30 40 DNAME -------------ACCOUNTING RESEARCH SALES OPERATIONS LOC ------------NEW YORK DALLAS CHICAGO BOSTON
SELECT deptno, loc FROM dept; DEPTNO --------10 20 30 40 LOC ------------NEW YORK DALLAS CHICAGO BOSTON
IT-LEARNING COMPUS
29
06/12/2011
Exemple de SELECT
SELECT * FROM dept; DEPTNO --------10 20 30 40 DNAME -------------ACCOUNTING RESEARCH SALES OPERATIONS LOC ------------NEW YORK DALLAS CHICAGO BOSTON SELECT DISTINCT deptno FROM emp; DEPTNO --------10 20 30
06/12/2011
LAlias de Colonne
Permet de renommer un en-tte de colonne (champs) Suit immdiatement le nom de la colonne ; le mot-cl AS peut
tre plac entre le nom et lalias est optionnel
Doit
contient des espaces, des caractres spciaux ou si les majuscules/minuscules doivent tre diffrencies
SELECT ename AS name, sal salary FROM emp;
IT-LEARNING COMPUS
31
06/12/2011
Le littral
Les
Les oprateurs
IT-LEARNING COMPUS
33
06/12/2011
ENAME SAL ---------- --------MARTIN 1250 TURNER 1500 WARD 1250 ADAMS 1100 MILLER 1300 SELECT FROM WHERE
Limite infrieure
Limite suprieure
ENAME SAL MGR ---------- --------- --------FORD 3000 7566 SMITH 800 7902 SCOTT 3000 7566 ADAMS 1100 7788
34 06/12/2011
IT-LEARNING COMPUS
35
06/12/2011
NOT BETWEEN ... AND IS NOT IN ... NOT LIKE ... IS NOT NULL
...
SELECT ename, job FROM emp WHERE job NOT IN ('CLERK','MANAGER','ANALYST'); ENAME ---------KING MARTIN ALLEN TURNER WARD JOB --------PRESIDENT SALESMAN SALESMAN SALESMAN SALESMAN
IT-LEARNING COMPUS
36
06/12/2011
SELECT ename
FROM
emp;
Employee Details ------------------------KING is a PRESIDENT BLAKE is a MANAGER CLARK is a MANAGER JONES is a MANAGER MARTIN is a SALESMAN ... 14 rows selected.
IT-LEARNING COMPUS
37
06/12/2011
ENAME DEPTNO SAL ---------- --------- --------KING 10 5000 CLARK 10 2450 MILLER 10 1300 FORD 20 3000 ... 14 rows selected.
IT-LEARNING COMPUS
38
06/12/2011
Equijointure
Non-quijointure
Jointure externe
Autojointure
IT-LEARNING COMPUS
39
06/12/2011
Jointure croise
Dfinition Une Cross-Jointure (Jointure croise) consiste en le produit cartsien des deux tables sur lesquelles la jointure est effectue.
IT-LEARNING COMPUS
40
06/12/2011
Jointure Interne
Dfinition Une Jointure Interne permet d'intgrer plusieurs Tables de Donnes en mettant en correspondance les occurrences de plusieurs tables qui ont un attribut commun. Exemple SELECT empno,ename,dname FROM emp NATURAL JOIN dept; Problme:
Si des attributs de mme nom et de signification diffrente apparaissent dans les tables jointes, ils seront utiliss pour raliser la jointure naturelle. D'o un fort risque d'erreur non matrises ! Si un attribut possde deux noms diffrents dans les deux tables, la jointure ne peut pas avoir lieu
IT-LEARNING COMPUS
41
06/12/2011
Jointure Interne
Solution: Spcifier le nom du (des) attribut(s) qui servent de rfrence pour la jointure Commande INNER JOIN ... USING ou INNER JOIN ON : Elle permet de prciser le nom de l'attribut utilis pour raliser la correspondance entre les tables.
Exemple
SELECT empno,ename,dname FROM emp INNER JOIN dept USING (deptno); ou SELECT empno,ename,dname FROM emp INNER JOIN dept ON emp. deptno = dept. deptno;
IT-LEARNING COMPUS
42
06/12/2011
Exemple dquijointure
EMPNO ENAME DEPTNO DEPTNO LOC ----- ------ ------ ------ --------7839 KING 10 10 NEW YORK 7698 BLAKE 30 30 CHICAGO 7782 CLARK 10 10 NEW YORK 7566 JONES 20 20 DALLAS ... 14 rows selected.
IT-LEARNING COMPUS
43
06/12/2011
Exemple de non-quijointure
SELECT e.ename, e.sal, s.grade FROM emp e, salgrade s WHERE e.sal BETWEEN s.losal AND s.hisal;
ENAME SAL GRADE ---------- --------- --------JAMES 950 1 SMITH 800 1 ADAMS 1100 1 ... 14 rows selected.
IT-LEARNING COMPUS
44
06/12/2011
SELECT e.ename, d.deptno, d.dname FROM emp e, dept d WHERE e.deptno(+) = d.deptno ORDER BY e.deptno;
ENAME DEPTNO DNAME ---------- --------- ------------KING 10 ACCOUNTING CLARK 10 ACCOUNTING ... 40 OPERATIONS 15 rows selected.
IT-LEARNING COMPUS
45
06/12/2011
Jointure Externe
SELECT empno,ename,dname FROM emp e LEFT OUTER JOIN dept d ON e. deptno = d. deptno; SELECT empno,ename,dname FROM dept d RIGHT OUTER JOIN emp e ON d. deptno = e. deptno;
IT-LEARNING COMPUS
46
06/12/2011
Exemple de lautojointures
SELECT worker.ename||' works for '||manager.ename FROM emp worker, emp manager WHERE worker.mgr = manager.empno;
WORKER.ENAME||'WORKSFOR'||MANAG ------------------------------BLAKE works for KING CLARK works for KING JONES works for KING MARTIN works for BLAKE ... 13 rows selected.
IT-LEARNING COMPUS
47
06/12/2011
MAX ([DISTINCT|ALL]expr)
MIN ([DISTINCT|ALL]expr) SUM ([DISTINCT|ALL]n)
IT-LEARNING COMPUS
48
06/12/2011
IT-LEARNING COMPUS
49
06/12/2011
IT-LEARNING COMPUS
50
06/12/2011
2916.6667
DEPTNO AVG(SAL) "salaire moyen pour ------- --------chaque 2175 10 2916.6667 dpartement 20 2175 de la table 30 1566.6667 EMP"
1566.6667
IT-LEARNING COMPUS
52
06/12/2011
MAX(AVG(SAL)) ------------2916.6667
IT-LEARNING COMPUS
53
06/12/2011
affichs.
IT-LEARNING COMPUS
54
06/12/2011
IT-LEARNING COMPUS
55
06/12/2011
job, SUM(sal) PAYROLL emp job NOT LIKE 'SALES%' job SUM(sal)>5000 SUM(sal);
IT-LEARNING COMPUS
56
06/12/2011
Les Sous-Interrogations
Syntaxe SELECT select_list FROM tables WHERE expr operator (SELECT select_list FROM tables ) ;
Types de Sous-Interrogations
Sous-interrogation mono-ligne
Oprateurs mono-ligne Sous-interrogation multi-ligne Oprateurs multi-ligne
IT-LEARNING COMPUS
58
06/12/2011
CLERK
AND
IT-LEARNING COMPUS
59
06/12/2011
ENAME JOB SAL ---------- --------- --------SMITH CLERK 800 SELECT FROM GROUP BY HAVING deptno, MIN(sal) emp deptno 800 MIN(sal) > (SELECT MIN(sal) FROM emp WHERE deptno = 20);
60 06/12/2011
IT-LEARNING COMPUS
AND
empno, ename, job 1300 1100 emp 800 sal < ANY 950 (SELECT sal FROM emp WHERE job = 'CLERK) job <> ''CLERK'; ENAME ---------MARTIN WARD JOB --------SALESMAN SALESMAN
IT-LEARNING COMPUS
61
06/12/2011
empno, ename, job 1566.6667 2175 emp 2916.6667 sal > ALL (SELECT avg(sal) FROM emp GROUP BY deptno) ENAME ---------KING JONES FORD SCOTT JOB --------PRESIDENT MANAGER ANALYST ANALYST
IT-LEARNING COMPUS
62
06/12/2011
IT-LEARNING COMPUS
63
06/12/2011
EMPNO SAL DEPTNO -------- --------- --------7839 5000 10 7698 2850 30 7566 2975 20 ... 6 rows selected.
IT-LEARNING COMPUS
64
06/12/2011
Pour
IT-LEARNING COMPUS
65
06/12/2011
IT-LEARNING COMPUS
66
06/12/2011
IT-LEARNING COMPUS
67
06/12/2011
IT-LEARNING COMPUS
68
06/12/2011
IT-LEARNING COMPUS
69
06/12/2011
NAME EMPID ---------- --------BALFORD 6235 BRIGGS 7225 JEWELL 7001 SPENCER 6087 ... 6 rows selected.
IT-LEARNING COMPUS
70
06/12/2011
Indiquez les valeurs dans l'ordre par dfaut des colonnes dans
la table.
Placez
quotes.
IT-LEARNING COMPUS
71
06/12/2011
emp (empno, ename, job, mgr, hiredate, sal, deptno) (8000, SAAD', 'ANALYST', 7839, SYSDATE, 4000, 20);
IT-LEARNING COMPUS
72
06/12/2011
IT-LEARNING COMPUS
73
06/12/2011
La
clause WHERE permet de modifier une ou plusieurs lignes spcifiques; en cas dabsence de cette clause toutes les lignes seront modifies. Chaque opration de modification doit respecter les contraintes dintgrit rfrentielle de la base de donnes.
IT-LEARNING COMPUS
74
06/12/2011
emp com
=0
com is NULL;
IT-LEARNING COMPUS
75
06/12/2011
La
clause WHERE permet de supprimer une ou plusieurs lignes spcifiques en labsence de cette clause, toutes les lignes sont supprimes. Chaque opration de modification doit respecter les contraintes dintgrit rfrentielle de la base de donnes.
76 06/12/2011
IT-LEARNING COMPUS
DELETE WHERE
FROM
WHERE
dept
dname ='SALES');
IT-LEARNING COMPUS
77
06/12/2011
IT-LEARNING COMPUS
78
06/12/2011
IT-LEARNING COMPUS
79
06/12/2011
IT-LEARNING COMPUS
80
06/12/2011
IT-LEARNING COMPUS
81
06/12/2011
IT-LEARNING COMPUS
82
06/12/2011
IT-LEARNING COMPUS
83
06/12/2011
IT-LEARNING COMPUS
84
06/12/2011
IT-LEARNING COMPUS
85
06/12/2011
IT-LEARNING COMPUS
86
06/12/2011
IT-LEARNING COMPUS
87
06/12/2011
IT-LEARNING COMPUS
88
06/12/2011
IT-LEARNING COMPUS
89
06/12/2011
IT-LEARNING COMPUS
90
06/12/2011