MGHIRBI
Plan
2
1. Introduction
SQL est devenu le langage standard pour décrire et manipuler les BDR.
1. LDD (DDL : “ Data Definition Language ”) : permet de créer des bases de données,
des tables, des index, des contraintes. Exp : CREATE, ALTER, DROP…
2. LMD (DML : “ Data Manipulation Language ”) permet de manipuler les données.
Exp : INSERT, UPDATE, DELETE…
3. LID (DQL : “ Data Query Language ”) : permet d’extraire et interroger des données.
Exp: SELECT…
4. LCD (DCL : “ Data Control Language ”) : permet de gérer les droits d'accès aux
tables. Exp : GRANT, REVOKE..
5. LCT (TCL : “ Transaction Control Language ”) : permet de contrôler la bonne
exécution des transactions. Exp : COMMIT, ROLLBACK…
6. SQL intégré : “ Embedded SQL ” : éléments procéduraux que l'on a intégré à un
langage hôte. Exp : SET, DECLARE CURSOR, OPEN, FETCH...
2-DÉFINITION DE SCHÉMAS
4
2.1 Création de Tables
Syntaxe
CREATE TABLE <nomtable>
(<colonne1> type1 [NOT NULL|NULL],[CONTRAINTE DE COLONNE1],
<colonne2> type2 [NOT NULL|NULL], DEFAULT,
<colonne3> type3 [NOT NULL|NULL],[CONTRAINTE DE COLONNE3] ,
…..
6
2.1 Création de Tables
Syntaxe
schéma :
• S’il est omis, il sera assimilé au nom de l’utilisateur connecté.
• S’il est précisé, il désigne soit l’utilisateur courant soit un autre utilisateur de
la base
• Dans ce cas, il faut que l’utilisateur courant ait le droit de créer une table dans un
autre schéma.
Une contrainte peut être nommée: Précédée par le mot réservé "CONSTRAINT"
CONSTRAINT PK_table PRIMARY KEY(attribut)
CONSTRAINT CHK_xxx CHECK [attr] [in values]
CONSTRAINT FK_tab1_tab2 FOREIGN KEY…..
7
➔la condition est une condition pouvant spécifier des plages ou des listes
de valeurs possibles.
CREATE TABLE pilote (numpil INT NOT NULL, nompil CHAR(20) NOT NULL, adr
CHAR(50) NOT NULL, sal DEC (8,3) DEFAULT 0,
PRIMARY KEY (numpil));
CREATE TABLE pilote (numpil INT NOT NULL, nompil CHAR(20) NOT NULL, adr
CHAR(50) NOT NULL, sal DEC (8,3) DEFAULT 0,
PRIMARY KEY (numpil));
CREATE TABLE Avion (numav INT NOT NULL,nomav CHAR(20) NOT NULL, cap INT NOT
NULL, loc CHAR(20),
CONSTRAINT PK_avion PRIMARY KEY (numav));
10
1. Pilote (numpil, nompil, adr, sal)
2. Avion (numav, nomav, cap, loc)
Exemples: 3. Vol (numvol, #numpil, #numav, villedep, date-dep, date-arr,
villearr, hdep, harr)
CREATE TABLE pilote (numpil INT NOT NULL, nompil CHAR(20) NOT NULL, adr
CHAR(50) NOT NULL, sal DEC (8,3) DEFAULT 0,
PRIMARY KEY (numpil));
CREATE TABLE Avion (numav INT NOT NULL,nomav CHAR(20) NOT NULL, cap INT NOT
NULL, loc CHAR(20),
CONSTRAINT PK_avion PRIMARY KEY (numav));
CREATE TABLE Vol (numvol INT NOT NULL, Numpil INT NOT NULL, numav INT NOT
NULL, villedep CHAR(30) NOT NULL, villearr CHAR(20) NOT NULL, hdep DEC(2,2), harr
DEC (2,2),
CONSTRAINT PK_vol PRIMARY KEY (numvol),
CONSTRAINT FK_vol_Pilote FOREIGN KEY numpil REFERENCES Pilote,
CONSTRAINT FK_vol_Avion FOREIGN KEY numav REFERENCES Avion,
CONSTRAINT chK_hd CHECK (hdep BETWEEN 1 AND 24),
CONSTRAINT chK_ha CHECK (harr BETWEEN 1 AND 24));
11
ENUM Peut contenir une liste de données possible. La liste peut contenir jusqu'à 65 535 données.
VARCHAR2 (taille) Chaîne de caractères de longueur variable 1 car. 2000 car. 'A'
NVARCHAR2 Chaîne de caractères de longueur variable utilisant le jeu de 'Bonjour DD'
(taille) car. national 13
--TYPES DE DONNÉES SQL--
Peut contenir un grand nombre à virgule flotante. L'utilisateur doit définir le nombre maximal que la
DOUBLE(size,d)
donnée peut avoir avec le paramètre size et le nombre de chiffre arpès la virgule avec le paramètre d.
Rq: NUMERIC (ou DECIMAL ou DEC) : nombre décimal à représentation exacte à échelle et
DECIMAL(size,d) précision facultatives
BIT : chaîne de bit de longueur fixe
BIT VARYING : chaîne de bit de longueur maximale 14
https://www.w3schools.com/sql/sql_datatypes.asp 15
3. EVOLUTION D’UN SCHÉMA
16
Ordre Remane:
Exemple 1:
Ou
Exemple 2:
17
3.2. Modification structurelle
Exemples
19
Exemples
Modifier la définition d’une colonne
◼ Type, taille ou contraintes
21
3.3. Modification comportementale
23
Exemple 3 : 24
3.3. Modification comportementale
Suppression de contraintes
Exemple 5:
Si l’option CASCADE n’avait pas été spécifiée, Oracle aurait renvoyé une
erreur: cette clé unique/primaire est référencée par des clés étrangères ».
25
Désactivation de contraintes
CASCADE répercute la désactivation des clés étrangères des tables « fils » dépendantes.
message d’Oracle renvoyé est : « ORA-02297: impossible désactiSi vous voulez désactiver
une clé primaire référencée par une clé étrangère sans cette option, le ver contrainte… -
les dépendences existent ».
Les options KEEP INDEX et DROP INDEX permettent de préserver ou de détruire l’index
dans le cas de la désactivation d’une clé primaire.
Exemple 6:
La désactivation de cette contrainte par CASCADE désactive aussi une des clés
étrangères de la table référençant la première. 26
3.3. Modification comportementale
Réactivation de contraintes
Exemple 7 27
28
[3.4 Exploration des contraintes
dans le DD oracle]
OWNER Proporiétaire de la contrainte
CONSTRAINT_NAME Nom de la contrainte
CONSTRAINT_TYPE Type de la contrainte
• C (check constraint on a table)
• P (primary key)
• U (unique key)
• R (referential integrity)
• V (with check option, on a view)
• O (with read only, on a view)
31
Bibliographie
Livres:
◼ C.Soutou, SQL pour Oracle, editions 3 et 7
Supports de cours
◼ J.Y. Antoine, Administration des bases de données
32