Vous êtes sur la page 1sur 4

Correction exercices LANGAGE DE DEFINITION ET MANIPULATION DE

DONNEES

Exercice 1
Partie 1 – Définition des données

1. Create table Etudiant (numetu varchar(3) primary key, nom varchar(20) , prenom
varchar(20), datenaiss date, rue varchar(50), cp varchar(5), ville varchar(15));
2. Create table Matiere (codemat varchar(10) primary key, libelle varchar(50) , coef
decimal(3,1));
3. Create table Epreuve (numepreuve integer primary key, lieu varchar(50) , codemat
varchar(10), foreign key (codemat) references Matiere (codemat));
4. Create table Notation (numetu varchar(3) not null, numepreuve integer not null,
note decimal (5,2), constraint pk_notation primary key (numetu, numepreuve),
constraint fk_notationetu foreign key (numetu) references Etudiant (numetu),
constraint fk_notationepr foreign key (numepreuve) references Epreuve
(numepreuve));
5. Alter table Epreuve ADD datepreuve varchar(8) ;
6. Alter table Epreuve MODIFY datepreuve date ;
7. Create table Enseignant (numens varchar(3) primary key, nom varchar(20), prenom
varchar(20), ville varchar(20), datemb date) ;
8. Insert into Enseignant values (130, ‘PIGNON’, ‘François’, ‘Villeurbanne’, ’01-09-
2009’) ;
9. UPDATE Enseignant
set ville = ‘Ecully’ ;
10. DROP TABLE Enseignant CASCADE CONSTRAINTS

Partie 2 – Insertion des données

1. Insert into Enseignant (numetu , nom , prenom , datenaiss, rue, ville) values (110,
‘DUPONT’, ‘Albert’, ‘Villeurbanne’, ’01-06-1980’, ‘République’, ‘Lyon’) ;
2. On ne peut insérer les données de l’étudiant Marie MARTIN avec l’identifiant 110 car il
existe déjà.

Exercice 2
1) Create table ville (num_ville number(3) constraint pk_ville primary key, nomville
varchar2(3), Codepostal number(5)) ;
Create table vol (numvol number(2) constraint pk_vol primary key, villedepart
number(3) constraint fk_voldep references ville(num_ville), villearrivee number(3)
constraint fk_volarr references ville(num_ville), heuredepart number(2) constraint
ck_heured check (heuredepart between 0 and 23), heurearrivee number(2) constraint
ck_heureA check (heurearrivee between 0 and 23), jour date);
Create table passager (numpass number(3) constraint pk_pass primary key, nompass
varchar2(30), prenompass varchar2(30), age number(3), numvol number(2) constraint
fk_pass references vol(numvol);
2) Pour l’insertion on va faire un exemple et les autres sont identiques.
Insert into vol values (123, 15, 16, 9, 23, to_date(‘31/12/2008’, ‘DD/MM/YYYY’));
3) Alter table passager add (categorie number(1) null constraint ck_categorie check
(categorie in (1,2,3));
4) Update passager set Categorie = 3;
Update passager set Categorie = 2 where age < 18 or age > 60;
Update passager set Categorie = 1 where nompass like ‘R%’;
5) Alter table passager add (constraint ck_passager_age check(age >= 0));
Alter table vol add (constraint ck_vol check (villedepart <> villearrivee);
Alter table passager modify Categorie number(1) not null;
6) Creation table Categorrie contenant un cle primaire numcat et un autre colonne
designation, puis insertion de trois lignes dans ce tableau.
7) Alter table passager modify nompass varchar2(40) ;
Alter table passager modify prenompass varchar2(40) ;
8) Alter table ville modify nomville varchar2(4) ;
9) Alter table passager drop constraint pk_pass; ou Alter table passager drop constraint
primary key ;
10) Drop table ville cascade constraints ;

Exercice 3

1. Create table Article ( Code varcher2(30), prix number(20), qte number(20), numf
varchar2(30), Constraint pk_article primary key (code), Constraint fk_art_frs foreign
key (numf) references Frs (numf) );
2. Insert into Frs values (‘F1’, ‘SBZ’) ;
Insert into Frs values (‘F2’, ‘Sfax’) ;
Insert into Frs values (‘F3’, ‘SBZ’) ;
3. Update Article set qte=qte+10 where numf=’F2’;
4. Select count(*) from Article where numf=’F2’ group by numf;
5. Delete from Article where numf=’F2’ ;
6. Drop table Article ;
Drop table Frs ;

Exercice 4
//Q1

create database EMPRUNTS

go

use EMPRUNTS

create table AGENCE(Num_Ag int primary key,Nom_Ag varchar(30),Ville_Ag varchar(30))


create table CLIENT(Num_Cl int primary key,Nom_Cl varchar(30),Prenom_Cl
varchar(30),Ville_Cl varchar(30))

create table COMPTE(Num_Cp int primary key,Num_Cl int foreign key references
CLIENT(Num_Cl),Num_Ag int foreign key references AGENCE(Num_Ag),Solde float)

create table EMPRUNT(Num_Ep int primary key,Num_Cl int foreign key references
CLIENT(Num_Cl),Num_Ag int foreign key references AGENCE(Num_Ag),Montant float)

insert into AGENCE values(1,'AGENCE1','Casa')

insert into CLIENT values(1,'NOM1','PRENOM1','Rabat')

insert into COMPTE values(1,1,1,25000)

insert into EMPRUNT values(1,1,1,600000)

//Q2

alter table EMPRUNT add constraint montant_positif check(Montant>=0)

exec sp_helpconstraint EMPRUNT

//Q3

update EMPRUNT

set Montant=0

where Montant is null


//Q4

update CLIENT

set Ville_Cl=LOWER(Ville_Cl)

//Q5

update COMPTE

set Solde=Solde+Solde*0.5/100

where Num_Cl in

select Num_Cl

from CLIENT

where Ville_Cl='rabat'

Vous aimerez peut-être aussi