--01) Lancer l'interface SQL*plus, en utilisant l'une des deux mani�res suivantes:
--b. A l'interface ligne de commande , tapez la commande : sqlplus /nolog:
sqlplus /nolog
SQL>
SQL> --02) Se connecter � la base Oracle en utilisant la commande : connect
system/motdepasse :
SQL>
SQL> connect /as sysdba
Connected.
SQL>
SQL> --03) Cr�er un utilisateur qui s appelle TP1:
SQL>
SQL> create user TP1 identified by smi5_tp1 quota 5M on system;
User created.
SQL>
SQL> --04) Donner � cet utilisateur les droits create session et create table :
SQL>
SQL> grant all privileges to TP1;
Grant succeeded.
SQL>
SQL> --05) Se d�connecter de la base Oracle avec la commande:disconnect :
SQL>
SQL> disconnect
Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 -
Production
SQL>
SQL> --06) Se connecter de nouveau � oracle en utilisant le login de l'utilisateur
cr�e :
SQL>
SQL> connect TP1/smi5_tp1
Connected.
SQL>
SQL> --07) Pr�ciser les cl�s primaires et les cl�s �trang�res des relations ci-
dessus :
SQL>
SQL> ----------- Nauteur,Nlivre,Nmembre,Nlivre&Nauteur,Npret;
SQL>
SQL> --08)Cr�er les tables de cette base de donn�es. Les contraintes doivent �tre
nomm�es de la mani�re suivante:
InitialeTypeContrainte_nomTable[_nomTableReference].
SQL>
SQL> create table Auteur(
2 Nauteur number(6) primary key,
3 nom varchar2(20),
4 prenom varchar2(20),
5 nationalite varchar2(20));
Table created.
SQL> create table Livre(
2 Nlivre number(6) primary key,
3 titre varchar2(20),
4 nbPages number(3),
5 annee number(4),
6 prix number(6,2));
Table created.
SQL> create table Membre(
2 Nmembre number(6) primary key,
3 nom varchar2(20),
4 prenom varchar2(20),
5 dateInscription date);
Table created.
SQL> create table possede(
2 Nlivre number(6), constraint fk_Nlivre_pos foreign key(Nlivre) references
Livre(Nlivre) on delete cascade,
3 Nauteur number(6), constraint fk_Nauteur_pos foreign key(Nauteur) references
Auteur(Nauteur) on delete cascade,
4 constraint Pk_possede primary key (Nlivre,Nauteur));
Table created.
SQL> create table pret(
2 Npret number(6) primary key,
3 Nmembre number(6), constraint fk_Nmembre_pr foreign key(Nmembre) references
Membre(Nmembre) on delete cascade,
4 Nlivre number(6), constraint fk_Nlivre_pr foreign key(Nlivre) references
Livre(Nlivre) on delete cascade,
5 datePret date);
Table created.
SQL>
SQL> --09) En utilisant la vue user_objects, v�rifier la pr�sence des objets cr��s.
Utiliser : select object_name, object_type from .
SQL>
SQL> desc Livre
Name Null? Type
----------------------------------------- -------- ----------------------------
NLIVRE NOT NULL NUMBER(6)
TITRE VARCHAR2(20)
NBPAGES NUMBER(3)
ANNEE NUMBER(4)
PRIX NUMBER(6,2)
SQL> desc Auteur
Name Null? Type
----------------------------------------- -------- ----------------------------
NAUTEUR NOT NULL NUMBER(6)
NOM VARCHAR2(20)
PRENOM VARCHAR2(20)
NATIONALITE VARCHAR2(20)
SQL> desc Membre
Name Null? Type
----------------------------------------- -------- ----------------------------
NMEMBRE NOT NULL NUMBER(6)
NOM VARCHAR2(20)
PRENOM VARCHAR2(20)
DATEINSCRIPTION DATE
SQL> desc possede
Name Null? Type
----------------------------------------- -------- ----------------------------
NLIVRE NOT NULL NUMBER(6)
NAUTEUR NOT NULL NUMBER(6)
SQL> desc pret
Name Null? Type
----------------------------------------- -------- ----------------------------
NPRET NOT NULL NUMBER(6)
NMEMBRE NUMBER(6)
NLIVRE NUMBER(6)
DATEPRET DATE
SQL>
SQL> select table_name,constraint_name, constraint_type from user_constraints order
by 1;
TABLE_NAME CONSTRAINT_NAME C
------------------------------ ------------------------------ -
AUTEUR SYS_C008027 P
LIVRE SYS_C008028 P
MEMBRE SYS_C008029 P
POSSEDE PK_POSSEDE P
POSSEDE FK_NLIVRE_POS R
POSSEDE FK_NAUTEUR_POS R
PRET SYS_C008033 P
PRET FK_NMEMBRE_PR R
PRET FK_NLIVRE_PR R
9 rows selected.
SQL>
SQL> --10) Cr�er les index sur une cl� primaire et une des cl�s �trang�res de la
table pr�t :
SQL>
SQL> create index id_pret on pret(Npret);
create index id_pret on pret(Npret)
*
ERROR at line 1:
ORA-01408: such column list already indexed
SQL> create index id_Nlivre on pret(Nlivre);
Index created.
SQL> create index id_Nmembre on pret(Nmembre);
Index created.
SQL>
SQL> --Rq : on ne peut pas cr�e un index pour la cl� primaire car elle est index�
par default.
SQL>
SQL> --11) Augmenter la taille de la colonne nom de la table membre :
SQL>
SQL> alter table Membre Modify nom varchar2(28);
Table altered.
SQL>
SQL> --12) Ajouter le champ email a la table membre :
SQL>
SQL> alter table Membre add email varchar2(30);
Table altered.
SQL>
SQL> --13) Ajouter la colonne adresse � la table membre :
SQL>
SQL> alter table Membre add adress varchar2(30);
Table altered.
SQL>
SQL> --14) Supprimer les contraintes de la table pr�t :
SQL>
SQL> select constraint_name, constraint_type
2 from user_constraints
3 where table_name='PRET';
CONSTRAINT_NAME C
------------------------------ -
SYS_C008033 P
FK_NMEMBRE_PR R
FK_NLIVRE_PR R
SQL>
SQL> alter table pret drop primary key cascade;
Table altered.
SQL> alter table pret drop constraint fk_Nmembre_pr;
Table altered.
SQL> alter table pret drop constraint fk_Nlivre_pr;
Table altered.
SQL>
SQL> --Rq : prototype : "alter table nom_table drop constraint constraint_name;"
SQL>
SQL> --15)Modifier la table pr�t en y ajoutant les contraintes suivantes :
SQL> ---a. Nmembre est une cl� �trang�re de la table membre :
SQL>
SQL> alter table pret add constraint fk2_Nmembre_pr foreign key(Nmembre) references
Membre(Nmembre) on delete cascade;
Table altered.
SQL>
SQL> ---b. Nlivre est une cl� �trang�re de la table livre :
SQL>
SQL> alter table pret add constraint fk2_Nlivre_pr foreign key(Nlivre) references
Livre(Nlivre) on delete cascade;
Table altered.
SQL>
SQL> --16) Ajouter la contrainte de cl� primaire � pr�t :
SQL>
SQL> alter table pret add constraint Pk2_Npret primary key(Npret);
Table altered.
SQL>
SQL> --17) Modifier la table livre en y ajoutant la colonne Nauteur et la
contrainte indiquant que cette colonne est une cl� �trang�re :
SQL>
SQL> alter table Livre Modify Nauteur number(6);
Table altered.
SQL> alter table Livre add constraint fk_Nauteur foreign key (Nauteur) references
Auteur(Nauteur) on delete cascade;
Table altered.
SQL>
SQL> --18) Supprimer la table poss�de :
SQL>
SQL> drop table possede;
Table dropped.
SQL>
SQL> --19)Ajouter une contrainte � la table livre qui assure que titre de livre est
une valeur bien d�termin�e :
SQL>
SQL> alter table livre add check (titre is not null);
Table altered.
SQL>
SQL> --20) Ajoute les champs langue et NbreExemplaires � la table livre :
SQL>
SQL> alter table livre add (langue varchar2(30),NbreExemple number(4));
Table altered.
SQL>
SQL> --21) Ajouter la contrainte qui assure l'unicit� du nom et pr�nom du membre :
SQL>
SQL> alter table Membre add Unique (nom,prenom);
Table altered.
SQL>
SQL> --22) Cr�er les index sur les champs suivants :
SQL> ---a. nom et pr�nom de l auteur:
SQL>
SQL> create index ind1 on Auteur (nom,prenom);
Index created.
SQL>
SQL> ---b. nom et pr�nom du membre:
SQL>
SQL> create index ind2 on Membre (nom,prenom);
create index ind2 on Membre (nom,prenom)
*
ERROR at line 1:
ORA-01408: such column list already indexed
SQL>
SQL> ---c. le titre du livre:
SQL>
SQL> create index ind3 on Livre (titre);
Index created.
SQL>
SQL> --23) Supprimer l'index d�ja cr�e sur la table auteur :
SQL>
SQL> drop index ind1;
Index dropped.
SQL>
SQL> --24) Ajouter la contrainte qui sp�cifie que date_retour est >= date_pret :
SQL>
SQL> alter table pret add (dateRetour Date,check(dateRetour>=datePret));
Table altered.
SQL> disconnect
Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 -
Production
SQL> spool off