Académique Documents
Professionnel Documents
Culture Documents
Pr A.ABATAL 1
Langage de manipulation des Données
consiste à:
2
Ajout d‘enregistrement dans une Table
L'ordre INSERT permet d'ajouter un nouveau enregistrement
dans une table.
Syntaxe 1:
INSERT
INSERT INTO
INTO Nomtable
Nomtable [(champs
[(champs [,[, champs
champs ...])]
...])]
VALUES
VALUES (valeur
(valeur [,[, valeur...]
valeur...] ););
3
Ajout d‘enregistrement dans une Table
SQL>
SQL> INSERT
INSERT INTO
INTO emp
emp (empno,
(empno, ename,
ename, job,
job,
22 mgr,
mgr, hiredate,
hiredate, sal,
sal, deptno)
deptno)
33 VALUES
VALUES (8000,
(8000, ‘SAAD',
‘SAAD', 'ANALYST',
'ANALYST',
44 7839,
7839, SYSDATE,
SYSDATE, 4000,
4000, 20);
20);
4
Ajout d‘enregistrement dans une Table
Syntaxe 2:
INSERT
INSERT INTO
INTO Nomtable
Nomtable [(champs
[(champs [,[, champs
champs ...])]
...])]
(select
(select …);
…);
5
Modification des données d’une Table
SQL>
SQL> UPDATE
UPDATE emp
emp
22 SET
SET com =
com =00
33 WHERE
WHERE com
com isis NULL;
NULL;
SQL>
SQL> UPDATE
UPDATE emp
emp
22 SET
SET mgr
mgr == (SELECT
(SELECT empno
empno
33 FROM
FROM emp
emp
44 WHERE
WHERE (deptno
(deptno == 30)
30) AND
AND (job
(job like
like 'MANAGER')
'MANAGER') ,,
55 job
job ='SALSESMEN'
='SALSESMEN'
66 WHERE
WHERE deptno
deptno == 30;
30;
7
Suppression des enregistrements d’une Table
L'ordre DELETE permet de supprimer des enregistrements
a partir d’une table.
Syntaxe :
DELETE
DELETE [FROM]
[FROM] Nomtable
Nomtable
[WHERE
[WHERE condition];
condition];
SQL>
SQL> DELETE
DELETE dept
dept
22 WHERE
WHERE dname
dname == 'FINANCES';
'FINANCES';
SQL>
SQL> DELETE
DELETE FROM
FROM emp
emp
22 WHERE
WHERE deptno
deptno ==
33 (SELECT
(SELECT deptno
deptno
44 FROM
FROM dept
dept
55 WHERE
WHERE dname
dname ='SALES');
='SALES');
9
Transactions de Base de Données
• Une transaction se compose des éléments suivants :
Ensemble d'ordres du LMD effectuant une opération
cohérente des données
Un ordre du LDD ou LCD
• Une transaction commence à l'exécution d’un ordre SQL et se
termine par l'un des événements suivants :
COMMIT ou ROLLBACK
Exécution d'un ordre LDD ou LCD (validation
automatique)
Fin de session utilisateur
Panne du système
10
Transactions de Base de Données
• Avant toute opération de sauvegarde ou de restauration
(COMMIT ou ROLLBACK) :
Les résultats des ordres du LMD exécutés par l'utilisateur
courant ne peuvent pas être affichés par d'autres utilisateurs.
Les lignes concernées sont verrouillées. Aucun autre utilisateur
ne peut les modifier
•Apréstoute opération de sauvegarde ou de retoration
(COMMIT ou ROLLBACK) :
Les modifications des données dans la base sont définitives
(perte de l'état précédent de la base)
Tous les utilisateurs peuvent voir le résultat des modifications.
Les lignes verrouillées sont libérées et peuvent de nouveau être
manipulées par d'autres utilisateurs
11
Transactions de Base de Données
SQL>
SQL> COMMIT;
COMMIT;
Commit
Commit complete.
complete.
SQL>
SQL> ROLLBACK;
ROLLBACK;
Rollback
Rollback complete.
complete.
SQL>
SQL> UPDATE
UPDATE ...
...
SQL>
SQL> SAVEPOINT
SAVEPOINT point1;
point1;
Savepoint
Savepoint created.
created.
SQL>
SQL> DELETE
DELETE … …
SQL>
SQL> ROLLBACK
ROLLBACK TO TO point1;
point1;
Rollback
Rollback complete.
complete.
12
Langage de définition des Données
• Table
• Vue
• Séquence
• Index
• Synonyme
13
Création de Tables
Syntaxe :
CREATE TABLE nomtable
(champs typechamps [DEFAULT valeur], ...);
CREATE TABLE nomtable
[(champs1, champs2...)] as sousinterrogation;
15
Création de Tables
SQL>
SQL> CREATE
CREATE TABLE
TABLE dept
dept
22 (( deptno
deptno NUMBER(2),
NUMBER(2),
33 dname
dname VARCHAR2(15),
VARCHAR2(15),
44 loc
loc VARCHAR2(12));
VARCHAR2(12));
SQL>
SQL> CREATE
CREATE TABLE
TABLE Empclerk
Empclerk
22 AS
AS SELECT
SELECT empno
empno mat,
mat, ename,
ename, nom,
nom,
33 sal
sal ++ comm
comm as
as salaire,
salaire, hiredate,
hiredate, deptno
deptno
44 FROM
FROM emp emp
55 WHERE
WHERE job
job like
like 'clerk');
'clerk');
16
Dictionnaire de Données
17
Modification de la structure d’une Tables
18
Modification de la structure d’une Tables
Syntaxe (suite):
ALTER
ALTER TABLE
TABLE table
table
RENAME
RENAME COLUMN
COLUMN ancien_nom
ancien_nom TO
TO nouveau_nom
nouveau_nom
Exemple :
SQL>
SQL> ALTER
ALTER TABLE
TABLE Empclerk
Empclerk
22 ADD
ADD (Matmgr
(Matmgr NUMBER(2));
NUMBER(2));
SQL>
SQL> ALTER
ALTER TABLE
TABLE Empclerk
Empclerk
22 MODIFY
MODIFY (JOB
(JOB VARCHAR2(15));
VARCHAR2(15));
19
Gestion des tables
Supprimer une Table
SQL>
SQL> DROP
DROP TABLE
TABLE Nomtable;
Nomtable;
Ajout de Commentaires
SQL>
SQL> COMMENT
COMMENT ON ON TABLE
TABLE NomTable
NomTable
22 IS
IS 'Commentaire';
'Commentaire';
20
Les Contraintes d’intégrités
• NOT NULL
• UNIQUE
• PRIMARY KEY
• FOREIGN KEY
• CHECK
21
Les Contraintes d’intégrités
Syntaxe :
CREATE
CREATE TABLE
TABLE [Schema.]NomTable
[Schema.]NomTable
(Champs
(Champs TypeChamps
TypeChamps [DEFAULT
[DEFAULT Valeur]
Valeur]
[[CONSTRAINT
[[CONSTRAINT NomContrainte]
NomContrainte] TypeContrainte],
TypeContrainte],
…
… ,,
[[CONSTRAINT
[[CONSTRAINT NomContrainte]
NomContrainte] TypeContrainte(Champs,
TypeContrainte(Champs, ...),]
...),]
…
… ););
ALTER
ALTER TABLE
TABLE NomTable
NomTable
ADD
ADD [CONSTRAINT
[CONSTRAINT NomContrainte]
NomContrainte] TypeContrainte(Champs);
TypeContrainte(Champs);
22
Les Contraintes d’intégrités
SQL>
SQL> CREATE
CREATE TABLE
TABLE Employes(
Employes(
22 empno
empno NUMBER(4)
NUMBER(4) PRIMARY
PRIMARY KEY,
KEY,
33 ename
ename VARCHAR2(15)
VARCHAR2(15) NOT
NOT NULL,
NULL,
44 job
job VARCHAR2(10),
VARCHAR2(10),
55 mgr
mgr NUMBER(4),
NUMBER(4),
66 hiredate
hiredate DATE,
DATE,
77 sal
sal NUMBER(8,2),
NUMBER(8,2),
88 comm
comm NUMBER(8,2),
NUMBER(8,2),
99 deptno
deptno NUMBER(2)
NUMBER(2) NOT
NOT NULL
NULL ,,
10
10 CONSTRAINT
CONSTRAINT un_dept
un_dept UNIQUE
UNIQUE (dname)
(dname) ,,
11
11 CONSTRAINT
CONSTRAINT Emp_Dept_Fk
Emp_Dept_Fk FOREIGN
FOREIGN KEY
KEY (deptno)
(deptno)
12
12 REFERENCES
REFERENCES dept
dept (deptno)
(deptno) ON
ON DELETE
DELETE CASCADE
CASCADE ););
23
Les Contraintes d’intégrités
SQL>
SQL> ALTER
ALTER TABLE
TABLE Employes
Employes
22 ADD
ADD CONSTRAINT
CONSTRAINT Emp_Emp_Fk
Emp_Emp_Fk
33 FOREIGN
FOREIGN KEY(mgr)
KEY(mgr) REFERENCES
REFERENCES emp(empno);
emp(empno);
SQL>
SQL> ALTER
ALTER TABLE
TABLE Employes
Employes
22 ADD
ADD CONSTRAINT
CONSTRAINT CONSTRAINT
CONSTRAINT CHECK
CHECK (Comm
(Comm >> 0);
0);
24
Gestion des contraintes
Supprimer une contrainte
SQL>
SQL> ALTER
ALTER TABLE
TABLE NomTable
NomTable
22 DROP
DROP CONSTRAINT
CONSTRAINT NomContrainte
NomContrainte [CASCADE];
[CASCADE];
Désactiver une Contraintes
SQL>
SQL> ALTER
ALTER TABLE
TABLE NomTable
NomTable
22 DISABLE
DISABLE CONSTRAINT
CONSTRAINT NomContrainte
NomContrainte [CASCADE];
[CASCADE];
Activer une Contraintes
SQL>
SQL> ALTER
ALTER TABLE
TABLE NomTable
NomTable
22 ENABLE
ENABLE CONSTRAINT
CONSTRAINT NomContrainte
NomContrainte [CASCADE];
[CASCADE];
table (ou sur d’autres vues). C’est une fenêtre par laquelle
d'accès )
26
Création d'une Vue
Syntaxe
CREATE
CREATE VIEW
VIEW NomVue
NomVue [(alias[,
[(alias[, alias]...)]
alias]...)]
AS
AS SousInterogation
SousInterogation
[WITH
[WITH CHECK
CHECK OPTION]
OPTION]
[WITH
[WITH READ
READ ONLY]
ONLY]
SQL>
SQL> CREATE
CREATE VIEWVIEW manager
manager
22 (matricule,
(matricule, nom,
nom, fonction,
fonction, dateembouche,
dateembouche, salaire,
salaire, Departement
Departement ))
33 AS
AS SELECT
SELECT empno,
empno, ename,
ename, job,hiredate,
job,hiredate, sal
sal ++ nvl(comm,0),
nvl(comm,0), dname
dname
44 FROM
FROM emp, emp, dept
dept
55 WHERE
WHERE ((emp.deptno
((emp.deptno == dept.deptno)
dept.deptno)
66 and
and empno
empno inin (select
(select mgr
mgr from
from emp
emp where
where mgr
mgr isis not
not NULL))
NULL))
77 WITH
WITH READ
READ ONLYONLY
SQL>
SQL> desc
desc manager;
manager;
SQL>
SQL> select
select **
22 from
from manager
manager ;;
DROP
DROP VIEW
VIEW NomVue;
NomVue;
29