TP6-Ennonce - Traitmnt Data - Com
TP6-Ennonce - Traitmnt Data - Com
TP6-Ennonce - Traitmnt Data - Com
TP 6
Exercice 1
En utilisant le jeu de données ci dessus, donner la requête en sql permettant la restitution des 4
premières caractères de la colonne a et les affichés sous une colonne de nom substring, selon
l’affichage suivant :
Exercice 2
On dispose d'une liste de noms propres mal formatés avec des espaces inutiles.
Exercice 3
Soit le schéma relationnel suivant :
Employe (NumEmp, Nom, fonction, #NumSup,dateEmbauche,sal,comm,
#Numdep)
Departement (NumDept,NomD,lieu)
Projet (NumProj,NomP, #NumDept)
Travaille (#NumEmp, #NumProj, nbHeures)
*) Supérieur référence le NumEmp du supérieur
1
1-Calculer la moyenne des salaires, le salaire minimum et maximum, ainsi que le nombre
d'employés par département, exemple d affichage :
Exercice 4
2
Remarque : union all : même chose qu union, la différence qu elle affiche les doublons
8-
La fonction CUBE vous permet de générer des sous-totaux comme l' ROLLUP
extension. De plus, l' CUBE extension générera des sous-totaux pour toutes les
combinaisons de colonnes de regroupement spécifiées dans la GROUP BY clause.
Syntaxe de cube
SELECT
c1, c2, AGGREGATE_FUNCTION(c3)
FROM
table_name
GROUP BY CUBE(c1 , c2);
3
Donner requête qui permet de :
-Calculer les totaux dans la même requête et sur toutes les clauses de
regroupement
a-Utiliser cube (voir affichage)
b-Utiliser GROUPING SETS
-
Exercise 5
1-creer la table :
CREATE TABLE inventory (
warehouse VARCHAR(255),
product VARCHAR(255) NOT NULL,
model VARCHAR(50) NOT NULL,
quantity INT,
PRIMARY KEY (warehouse,product,model)
);
2- inserer data dans inventory table:
INSERT INTO inventory(warehouse, product, model, quantity)
VALUES('San Jose', 'iPhone','6s',100);
INSERT INTO inventory(warehouse, product, model, quantity)
VALUES('San Fransisco', 'iPhone','6s',50);
INSERT INTO inventory(warehouse, product, model, quantity)
VALUES('San Jose','iPhone','7',50);
INSERT INTO inventory(warehouse, product, model, quantity)
VALUES('San Fransisco', 'iPhone','7',10);
INSERT INTO inventory(warehouse, product, model, quantity)
VALUES('San Jose','iPhone','X',150);
INSERT INTO inventory(warehouse, product, model, quantity)
VALUES('San Fransisco', 'iPhone','X',200);
INSERT INTO inventory(warehouse, product, model, quantity)
VALUES('San Jose','Samsung','Galaxy S',200);
INSERT INTO inventory(warehouse, product, model, quantity)
VALUES('San Fransisco','Samsung','Galaxy S',200);
INSERT INTO inventory(warehouse, product, model, quantity)
VALUES('San Fransisco','Samsung','Note 8',100);
INSERT INTO inventory(warehouse, product, model, quantity)
VALUES('San Jose','Samsung','Note 8',150);
4
5-retourne tous les ensembles de regroupement à l'aide d'une seule requête, exemple
d’affichage :
a- utiliser union all
b- Utiliser GROUPINGSETS
5-Même question que 4) mais donner un titre à somme qt (utiliser COALESCE), exemple
8-Donner la Somme des qt par warhouse, utiliser group by seul, exemple d’affichage:
5
9- meme question que 8, en rajoutant la somme totale, exemple d’affichage:
10- Donner la Somme des qt : plusieurs colonnes avec group by et avec un ordre de trie,
11- Donner la Somme des qt : le groupement avec des subtotals, exemple d’affichage:
Exercice 6
A partir d'une table des réception de produits et des commandes clients, notre magazinier
aimerait avoir un état des stocke au jour le jour... Voyons cela en détail...Les tables de notre
jeu d'essai :
CREATE TABLE T_RECEPTION_RCP
(PRD_ID INT,
RCP_DATE DATE,
RCP_QUANTITE FLOAT) ;
6
CREATE TABLE T_COMMANDE_CMD
(PRD_ID INT,
CMD_DATE DATE,
CMD_QUANTITE INT) ;
Les lignes de réception sont celles des produits alimentant le stock. Les lignes des commandes
sont celles sortant du stock...
Donner la requête en sql qui permet à notre magasinier obtenir la présentation suivante :
Qui lui permet de connaître au jour le jour ou il est avec toutes les variations de stock.