Construire une table type imbriquées tab_notes destinées à contenir les notes d'étudiants.
Cours : Construire une table type imbriquées tab_notes destinées à contenir les notes d'étudiants.. Rechercher de 53 000+ Dissertation Gratuites et MémoiresPar MARIA Mejrad • 28 Mars 2017 • Cours • 322 Mots (2 Pages) • 1 101 Vues
Série N°3
Construire une table type imbriquées tab_notes destinées à contenir les notes des étudiants :
Il faut d’abord donner le privilege de création type par :
grant create type to g_inf
create type tab_notes is table of number(5,2);
/[pic 1]
Pour afficher : desc tab_notes
Construire la table étudiant :
create table Etudiants( netu number(3) primary key,
nom varchar (10),
prenom varchar(10),
liste_notes tab_notes) nested table liste_notes store as not
pour afficher desc note [pic 2]
Insérer les lignes dans étudiant :
insert into Etudiants values(1,'maria','mejrad',tab_notes(12,10,11))
/
insert into Etudiants values(2,'yousra','mejrad',tab_notes(12,14,18))
/
insert into Etudiants values(3,'Moiz','mejrad',tab_notes(16,10,18))
/
En utilisant sql l’affichage de contenue :
select * from etudiants
/[pic 3]
Ajouter les notes a une ligne déjà insérées et vérification de contenue de table :
insert into table(select liste_notes from Etudiants where netu=1)values(18)[pic 4]
/
Utilisant SQL affichage en colonnes les notes de chaque étudiant :
select netu,nom,prenom,t.* from etudiants e,table(e.liste_notes)t[pic 5]
/
En utilisant Pl/SQL affichage en colonnes les notes des étudiants :
begin
for l in(select * from etudiants)
loop[pic 6]
dbms_output.put_line(l.netu);
dbms_output.put_line(l.nom);
for i in l.liste_notes.first..l.liste_notes.last
loop
dbms_output.put_line(l.liste_notes(i));
end loop;
end loop;
end;
Suppression les notes de l’étudiant 1
delete table(select liste_notes from etudiants where netu=1)
Suppression de la note de la valeur 18 de l’étudiant 1 et vérification du contenue de la table étudiant :
delete table(select liste_notes from etudiants where netu=2)where column_value=12
...