From b9562da82f6ec9f151ef600d9d73985a8eb0fa5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20MARQUET?= <72651575+BreizhHardware@users.noreply.github.com> Date: Fri, 26 Sep 2025 11:21:36 +0200 Subject: [PATCH] Obisidian vault auto-backup: 26-09-2025 11:21:36 on . 2 files edited --- .obsidian/workspace.json | 4 +- ISEN/BDD/CIPA4/TP1/tp1.sql | 97 ++++++++++++++++++++++++++++++++++---- 2 files changed, 89 insertions(+), 12 deletions(-) diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index b82e2e1..c8646d4 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -240,8 +240,9 @@ "obsidian-git:Open Git source control": false } }, - "active": "622da1d4e0ba0f73", + "active": "14045e30aacf0836", "lastOpenFiles": [ + "ISEN/BDD/CIPA4/TP1/tp1.sql~", "ISEN/BDD/CIPA4/TP1/tp1.sql", "ISEN/BDD/CIR2/TP1/Tp1.pdf", "ISEN/BDD/CIPA4/TP1/Tp1.pdf", @@ -277,7 +278,6 @@ "ISEN/Réunion/CIPA 4/Rentrée 2025-2026.md", "ISEN/English/CIPA4/15 sept 2025.md", "ISEN/FPGA/CIPA4/FPGA Cours 1.md", - "ISEN/FPGA/CIPA4", "ISEN/FHS/CIPA4/Anthropologie de l'entreprise/Question texte T2 (conflicted copy 2025-09-12 095312).md", "ISEN/BDD/CIR2/TD2.canvas", "Pasted image 20250905143950.png", diff --git a/ISEN/BDD/CIPA4/TP1/tp1.sql b/ISEN/BDD/CIPA4/TP1/tp1.sql index 53bf7cd..1b04146 100644 --- a/ISEN/BDD/CIPA4/TP1/tp1.sql +++ b/ISEN/BDD/CIPA4/TP1/tp1.sql @@ -1,10 +1,87 @@ -SELECT nom, salaire FROM employe WHERE salaire >= 1000 AND salaire <=1500 ORDER BY salaire, nom; -SELECT nom, salaire, comm FROM employe WHERE comm IS NOT NULL AND comm > 0; -SELECT nom, date_embauche FROM employe WHERE date_embauche >= '2001-01-01' AND date_embauche <= '2001-12-31' ORDER BY date_embauche; -SELECT * FROM employe WHERE fonction != 'secretaire'; -SELECT nom, fonction, num_service FROM employe WHERE fonction = 'directeur' AND (num_service = 20 OR num_service = 30); -SELECT nom FROM employe WHERE nom LIKE 'LE%' OR nom LIKE 'le%' OR nom LIKE 'Le%' OR nom LIKE 'lE%' ORDER BY LENGTH(nom), nom; -SELECT nom, AGE(CURRENT_DATE, date_embauche) AS "Durée d'embauche" FROM employe ORDER BY AGE(CURRENT_DATE, date_embauche); -SELECT nom, fonction, salaire, comm, salaire + COALESCE(comm, 0) AS "Revenu mensuel" FROM employe ORDER BY "Revenu mensuel"; -SELECT COUNT(*) FROM employe WHERE comm > salaire / 4; -SELECT MIN(salaire) AS "salaire min", ROUND(AVG(salaire),2) AS "salaire moy", MAX(salaire) AS "salaire max", ROUND(MAX(salaire)/MIN(salaire)) AS "rapport max/min" FROM employe; \ No newline at end of file +/* + a) Afficher le nom et le salaire des employés dont le salaire est entre 1000 et 1500 Euros, triés par ordre de salaire + (et, si égalité de salaire, par ordre de nom) + */ +SELECT nom, salaire + FROM employe + WHERE salaire >= 1000 + AND salaire <=1500 + ORDER BY salaire, nom; + +/* + b) fficher le nom, le salaire et la commission des employés ayant une commission + */ +SELECT nom, salaire, comm + FROM employe + WHERE comm IS NOT NULL + AND comm > 0; + +/* + c) Afficher le nom et la date d’embauche des employés dont la date d’embauche est comprise entre le 1er janvier et + le 31 décembre 2001, triés par date + */ +SELECT nom, date_embauche + FROM employe + WHERE date_embauche >= '2001-01-01' + AND date_embauche <= '2001-12-31' + ORDER BY date_embauche; + +/* + d) Afficher toutes les informations des employés qui n’ont pas la fonction de secrétaire + */ +SELECT * + FROM employe + WHERE fonction != 'secretaire'; + +/* + e) Afficher le nom des directeurs des services 20 et 30 + */ +SELECT nom, fonction, num_service + FROM employe + WHERE fonction = 'directeur' + AND (num_service = 20 OR num_service = 30); + +/* + f) Rechercher les employés dont le nom commence par "LE" (ou "le", "Le", . . . ) et les trier par ordre de longueur + de nom (nombre de caractères), puis (critère secondaire) par ordre alphabétique + */ +SELECT nom + FROM employe + WHERE LOWER(nom) LIKE 'le%' + ORDER BY LENGTH(nom), nom; + +/* + g) Afficher le nom et la durée d’embauche (à ce jour) des employés, triés par durée. Nommer cette dernière colonne + "Durée d’embauche", dans le résultat de la requête + */ +SELECT nom, + AGE(CURRENT_DATE, date_embauche) AS "Durée d'embauche" + FROM employe + ORDER BY AGE(CURRENT_DATE, date_embauche); + +/* + h) Afficher le nom, la fonction et le salaire + la commission éventuelle des employés, triés par montant + (salaire + commission). Nommer cette dernière colonne "Revenu mensuel" + */ +SELECT nom, fonction, salaire, comm, + salaire + COALESCE(comm, 0) AS "Revenu mensuel" + FROM employe + ORDER BY "Revenu mensuel"; + +/* + i) Afficher le nombre d’employés dont la commission est supérieure au quart du salaire + */ +SELECT COUNT(*) + FROM employe + WHERE comm > salaire / 4; + +/* + j) Afficher les salaires minimum, moyen (arrondi à 2 décimales) et maximum des employés, ainsi que le rapport + (arrondi à l’entier le plus proche) du salaire maximum sur le salaire minimum. Renommer les colonnes affichées + respectivement "salaire min", "salaire max", "salaire moy", "rapport max/min" + */ +SELECT MIN(salaire) AS "salaire min", + ROUND(AVG(salaire),2) AS "salaire moy", + MAX(salaire) AS "salaire max", + ROUND(MAX(salaire)/MIN(salaire)) AS "rapport max/min" + FROM employe; \ No newline at end of file