Consigner également les commandes de chaque exercice dans un fichier de script.
Les colonnes entre `
représentent un alias et celles entre *
un calcul.
Créer la base de données cuisto contenant la table recipes et lui attribuer tous les privilèges à l'utilisateur chef
Utiliser l'utilisateur chef pour réaliser l'exercice
Rédiger une requête d'insertion complète (identifier toutes les colonnes et leur valeur)
Rédiger une requête d'insertion minimale
Exécuter les insertions suivantes pour populer la table
INSERT INTO recipes
VALUES ('Sandwich', 'Une garniture entre 2 tranches de pain', 'Pain, Garniture', 'Trancher, Garnir, Déguster', 5, 'Principal'),
('Sandwich', 'Du fromage entre 2 tranches de pain', 'Pain, Fromage', 'Trancher, Garnir, Griller, Déguster', 7, 'Principal'),
('Paté chinois', NULL, 'Steak, Blé d''inde, Patates', 'Cuire la viande, mélanger', 30, 'Principal'),
('Lasagne', 'Pâtes étagées', 'Pâtes, sauce', 'Cuire, Étendre, Garnir', 35, 'Principal'),
('Poutine', NULL, 'Patates, Sauce brune, Fromage en grain', 'Couper les patates en frites, cuire au four, réchauffer la sauce, servir', 30, 'Principal'),
('Soupe', 'Bouillon de légumes', 'Légumes de saison', 'Mélanger dans un chaudron, bouillir', 20, 'Entrée'),
('Soupe', 'Crème de brocoli', 'Bouillon, Patates, Brocoli', 'Cuire, Passer au mélangeur', 25, 'Entrée'),
('Soupe', 'Poulet et nouilles', 'Poulet, nouilles', 'Cuire le poulet et les pâtes séparément, mélanger', 45, 'Entrée');
INSERT INTO recipes (name, description, category)
VALUES ('Pomme', 'Fruit frais', 'Collation'), ('Cheddar', 'Batonnets de fromage', 'Collation'), ('Craquelins', 'Petits biscuits', 'Collation');
Rédiger les requêtes de récupération pour afficher les informations suivantes
+---------------+----------------------------------------+----------------------------------------+---------------------------------------------------------------------------+------------------+-----------+
| name | description | ingredients | steps | preparation_time | category |
+---------------+----------------------------------------+----------------------------------------+---------------------------------------------------------------------------+------------------+-----------+
| Sandwich | Une garniture entre 2 tranches de pain | Pain, Garniture | Trancher, Garnir, Déguster | 5 | Principal |
| Sandwich | Du fromage entre 2 tranches de pain | Pain, Fromage | Trancher, Garnir, Griller, Déguster | 7 | Principal |
...
| Soupe | Bouillon de légumes | Légumes de saison | Mélanger dans un chaudron, bouillir | 20 | Entrée |
| Soupe | Poulet et nouilles | Poulet, nouilles | Cuire le poulet et les pâtes séparément, mélanger | 45 | Entrée |
| Cheddar | Batonnets de fromage | NULL | NULL | 0 | Collation |
+---------------+----------------------------------------+----------------------------------------+---------------------------------------------------------------------------+------------------+-----------+
+---------------+-----------------------+
| `Nom` | `Temps de préparation`|
+---------------+-----------------------+
| Sandwich | 5 |
| Paté chinois | 30 |
...
| Pomme | 0 |
| Craquelins | 0 |
+---------------+-----------------------+
+-----------------------------------------------------+
| *Recette* |
+-----------------------------------------------------+
| Sandwich : Une garniture entre 2 tranches de pain |
| Sandwich : Du fromage entre 2 tranches de pain |
...
| Cheddar : Batonnets de fromage |
| Craquelins : Petits biscuits |
+-----------------------------------------------------+
Créer la base de données todo contenant la table tasks et lui attribuer tous les privilèges à l'utilisateur manager
Utiliser l'utilisateur manager pour réaliser l'exercice
Rédiger une requête d'insertion complète (identifier toutes les colonnes et leur valeur)
Rédiger une requête d'insertion minimale
Exécuter les insertions suivantes pour populer la table
INSERT INTO tasks
VALUES (DEFAULT, 'a', 'tache a', 10, '2021-01-01', 'alice', 8, TRUE),
(DEFAULT, 'b', 'tache b', 3, '2021-01-01', 'bob', 5, TRUE),
(DEFAULT, 'c', 'tache c', 30, '2021-01-01', 'charlie', 10, TRUE),
(DEFAULT, 'd', NULL, 10, '2021-02-01', 'alice', 5, FALSE),
(DEFAULT, 'e', NULL, 12, '2021-02-01', 'alice', 14, FALSE),
(DEFAULT, 'f', 'tache f', 24, '2021-02-01', 'charlie', NULL, TRUE),
(DEFAULT, 'g', 'tache g', 34, '2021-03-01', 'bob', 30, FALSE),
(DEFAULT, 'h', NULL, 1, '2021-03-01', 'bob', 1, TRUE),
(DEFAULT, 'i', 'tache i', 18, '2021-04-01', 'bob', NULL, FALSE),
(DEFAULT, 'j', 'tache j', 4, '2021-05-01', 'charlie', NULL, TRUE),
(DEFAULT, 'k', 'tache k', 16, '2021-06-01', 'charlie', 12, TRUE),
(DEFAULT, 'l', 'tache l', 22, '2021-06-01', 'charlie', 21, FALSE),
(DEFAULT, 'm', NULL, 8, '2021-07-01', 'charlie', NULL, TRUE),
(DEFAULT, 'n', NULL, 6, '2021-08-01', 'alice', NULL, FALSE),
(DEFAULT, 'o', NULL, 2, '2021-08-01', 'charlie', 4, FALSE),
(DEFAULT, 'p', 'tache p', 10, '2021-08-01', 'bob', 8, FALSE),
(DEFAULT, 'q', NULL, 1, '2021-09-01', 'alice', 10, TRUE),
(DEFAULT, 'r', 'tache r', 3, '2021-09-01', 'alice', 7, TRUE),
(DEFAULT, 's', 'tache s', 5, '2021-10-01', 'bob', 4, FALSE),
(DEFAULT, 't', NULL, 7, '2021-10-01', 'charlie', 6, TRUE),
(DEFAULT, 'u', NULL, 2, '2021-10-01', 'charlie', 5, FALSE),
(DEFAULT, 'v', 'tache v', 4, '2021-11-01', 'bob', 5, FALSE),
(DEFAULT, 'w', 'tache w', 6, '2021-11-01', 'alice', 10, FALSE),
(DEFAULT, 'x', 'tache x', 12, '2021-12-01', 'alice', 10, TRUE),
(DEFAULT, 'y', 'tache y', 24, '2021-12-01', 'charlie', 20, FALSE),
(DEFAULT, 'z', 'tache z', 36, '2021-12-01', 'bob', 30, TRUE);
Rédiger les requêtes de récupération pour afficher les informations suivantes, sélectionner et renommer les colonnes selon les indications sous chaque requête
+------+-------------+------------+--------------------+-----------------+-----------+
| name | description | due_date | estimated_duration | actual_duration | completed |
+------+-------------+------------+--------------------+-----------------+-----------+
| a | tache a | 2021-01-01 | 10 | 8 | 1 |
| d | NULL | 2021-02-01 | 10 | 5 | 0 |
...
| w | tache w | 2021-11-01 | 6 | 10 | 0 |
| x | tache x | 2021-12-01 | 12 | 10 | 1 |
+------+-------------+------------+--------------------+-----------------+-----------+
+------+-------------+
| name | description |
+------+-------------+
| f | tache f |
...
+------+-------------+
+------+-------------+------------+--------------------+-----------------+-----------+
| name | description | due_date | estimated_duration | actual_duration | completed |
+------+-------------+------------+--------------------+-----------------+-----------+
| b | tache b | 2021-01-01 | 3 | 5 | 1 |
| e | NULL | 2021-02-01 | 12 | 14 | 0 |
...
| v | tache v | 2021-11-01 | 4 | 5 | 0 |
| w | tache w | 2021-11-01 | 6 | 10 | 0 |
+------+-------------+------------+--------------------+-----------------+-----------+
+-------+---------------+--------------+-----------+------------+---------------+--------+
| `Nom` | `Description` | `Echeancier` | `Estimé` | `Effectif` | `Complétée` | *Gain* |
+-------+---------------+--------------+-----------+------------+---------------+--------+
| a | tache a | 2021-01-01 | 10 | 8 | 1 | 2 |
| d | NULL | 2021-02-01 | 10 | 5 | 0 | 5 |
...
| t | NULL | 2021-10-01 | 7 | 6 | 1 | 1 |
| y | tache y | 2021-12-01 | 24 | 20 | 0 | 4 |
+-----+-------------+------------+---------+----------+-------------+------+
+-------+---------------+-----------+------------+---------+----------+
| `Nom` | `Description` | `Estimé` | `Effectif` | *Perte* | *Retard* |
+-------+---------------+-----------+------------+---------+----------+
| b | tache b | 3 | 5 | 2 | 66% |
| o | NULL | 2 | 4 | 2 | 100% |
...
| v | tache v | 4 | 5 | 1 | 25% |
| w | tache w | 6 | 10 | 4 | 66% |
+-------+---------------+-----------+------------+---------+----------+
Exécuter la commande suivante dans votre terminal root pour injecter une base de données dans votre serveur.
echo 'CkNSRUFURSBPUiBSRVBMQUNFIERBVEFCQVNFIHN0b3JtczsgCgpDUkVBVEUgT1IgUkVQTEFDRSBU
QUJMRSBzdG9ybXMuZXZlbnRzICgKICBpZCBJTlQgVU5TSUdORUQgQVVUT19JTkNSRU1FTlQgS0VZ
LAogIGNpdHkgVkFSQ0hBUigyMDApIE5PVCBOVUxMLAogIHN0YXRlIFZBUkNIQVIoMjAwKSBOT1Qg
TlVMTCwKICBjb3VudHJ5IFZBUkNIQVIoMjAwKSBOT1QgTlVMTCwKICBzdGFydCBEQVRFVElNRSBO
T1QgTlVMTCwKICBlbmQgREFURVRJTUUgREVGQVVMVCBOVUxMLAogIHR5cGUgVkFSQ0hBUigyMDAp
IE5PVCBOVUxMIENPTU1FTlQgJ2V4OiB3aWxkZmlyZSwgdGh1bmRlcnN0b3JtLCB3aW5kLCBmbG9v
ZCwgdHJvcGljYWwgc3Rvcm0sIHRvcm5hZG8sIGhlYXZ5IHJhaW4sIGVhcnRocXVha2UgZXRjLics
CiAgc3RyZW5ndGggRkxPQVQoNSwgMikgREVGQVVMVCBOVUxMIENPTU1FTlQgJyh3aW5kIHNwZWVk
LCBSaWNodGVyIHNjYWxlLCBGdWppdGEgU2NhbGUsIGV0Yy4pLCB3aGVyZSBhcHBsaWNhYmxlLics
CiAgZGFtYWdlX2VzdGltYXRlIElOVCBVTlNJR05FRCBERUZBVUxUIDAKKTsgCgo=' | base64 --decode | mysql;
# Informations sur les colonnes
# type: wildfire, thunderstorm, wind, flood, etc.
# strength: wind speed, Richter scale, Fujita Scale, etc.
Inspecter le serveur pour repèrer la base de données créée
Résumer la structure de la table de la base de données sous la même forme que les modèles de données des exercices précédents
NOM TABLE
-------------
col_a TYPE ATTR ATTR = DEFAULT
col_b TYPE ATTR ATTR = DEFAULT
...
Rédiger une requête d'insertion complète (identifier toutes les colonnes et leur valeur)
Rédiger une requête d'insertion minimale