corrigéContrôle2
corrigéContrôle2
corrigéContrôle2
1. Après avoir décrit la table EMPLOYEES, vous découvrez que la colonne SALAIRE a
le type de données NUMBER(8,2). Quels sont les valeurs de SALAIRE qui ne seront
pas autorisés dans cette colonne ? (Cochez toutes les réponses applicables) :
SALARY=12345678
SALARY=123456.78
SALARY=12345.678
SALARY=123456
SALARY=12.34
SQL-PLUS : console d’Oracle pour exécuter des requêtes SQl et des programmes PL-
SQL
3. Donnez trois opérateurs utilisés lorsqu’une sous requête ramènes plusieurs lignes.
IN, ALL, ANY, EXISTS
4. Peut-on modifier les données d’une table à travers une vue de la table contenant une
fonction de groupe ?
NON, on ne peut pas.
5. Comment peut-on terminer une transaction ? (Donnez toutes les manières possibles)
Commit, rollback, abort, exit, fermeture de session.
Table virtuelle calculée à partir d’autres tables ou vues par une requête
Pas d’existence physique mais recalculée chaque fois qu’elle est invoquée.
10. Quels sont les modes des transactions ? Quelles requêtes peut-on exécuter dans chaque
mode ?
Exercice
Remarque : les clés primaires sont soulignées et les clés étrangères sont marquées par *
4- Créer les deux tables Commande et Detail avec leurs contraintes d’intégrité
référentielles.
Create table detail (Numcom number foreign key references
Commande(Numcom),
Npro number foreign key references Produit(Numprod),
QteCom number,
Constraint pk_NcNpro primary key(Numcom*, Npro));
6- Créer une vue pour les commandes (Numero de la commande et du produit) fait depuis
le début de ce mois.
En supposant que les autres tables sont créées, Donnez les requêtes qui permettent de savoir :
7- Les clients qui soit sont de catégorie B1 ou C1, soit habitent à Fès ou à Oujda (ou les
deux conditions).
11- Afficher le total et la moyenne des comptes des clients, ainsi que le nombre de clients,
classé par catégorie dans chaque localité.
Declare
prixProdAvant Produit.prix%type ;
prixProdApres Produit.prix%type ;
Begin
End ;
13- Écrire un programme PL-SQL permettant de vérifier si un client, dont le numéro est
saisi au clavier, a fait au moins une commande et de le supprimer s’il n’a fait aucune.
Declare
NO_CLI Client.Numcli%type := &no_cl;
Nbr_com number := 0
Begin
Select count(*) into nbr_com FROM Commande where Numcli = NO_CLI ;
If(nbr_com < 1) then
Delete Client where Numcli = NO_CLI;
End id;
End ;