Vous êtes sur la page 1sur 5

TP 1 : MySQL sous phpMyAdmin

Partie 1 : Création de la base de données


Dans un premier temps, nous allons créer la base de travail. Il s’agit des relations concernant les notes des
étudiants.
1) En utilisant l'onglet Bases de données, créer la base base_employés.
CREATE DATABASE base_employés ;
2) Dans cette base, toujours à l’aide de l’interface (onglet Structure),

EMP(EMPNO, nom, fonction, dateEmb, sal, comm, # ND, *NEchef)


• NE numéro de l'employé. Clé primaire.
• nom nom de l'employé.
• fonction intitulé du poste occupé.
• dateEmb date d'embauche.
• sal salaire de l'employé.
• comm commission (part de salaire variable).
• ND n° du département dans lequel travaille l'employé. Clé étrangère en référence à ND de DEPT.
• NEchef n° d’employé du supérieur hiérarchique de l'employé. Clé étrangère en référence à NE de EMP
DEPT(DEPTNO, nom, ville)
• ND numéro des départements de l’entreprise. Clé primaire
• Nom nom des départements de l’entreprise.
• ville nom des villes où sont situés les départements.

Créer les tables


CREATE TABLE dept (
ND int(20),
nom varchar(40),
ville varchar(40)) ;
CREATE TABLE emp (
NE int(11) PRIMARY KEY,
nom varchar(40),
fonction varchar(40),
sal float,
dateEmb date,
comm float,
ND int(10) DEFAULT NULL,
NEchef int(10) DEFAULT NULL) ;
3) Ajouter les colonnes dateNaissance, prénom et genre de type ENUMERATION(F ,M) à la table ÉMP en
utilisant la commande « ALTER »
ALTER TABLE emp ADD COLUMN dateNaissance date ;
ALTER TABLE emp ADD COLUMN prénom char(40);
ALTER TABLE emp ADD COLUMN genre enum('F','M');
4) Ajouter la contrainte de l'unicité de la concaténation entre nom et prénom out
ALTER TABLE emp ADD CONSTRAINT UNIQUE (nom, prénom);
5) Modifier NE comme clé primaire AUTO INCREMENT de la table EMP.
ALTER TABLE emp MODIFY NE int(11) AUTO_INCREMENT, AUTO_INCREMENT=50;
6) Modifier les clés étrangères.
ALTER TABLE emp ADD CONSTRAINT fk_ dept FOREIGN KEY (ND) REFERENCES dept(ND);
ALTER TABLE emp ADD CONSTRAINT fk_ emp FOREIGN KEY (NEchef) REFERENCES emp(NE);

Partie 2 : Insertion de données


Le but ici est de se familiariser avec l’interface du logiciel et d’étudier quelques propriétés des champs.
1. En utilisant l’onglet, saisir manuellement (dans la table appropriée).

Le code
INSERT INTO dept (ND, nom, ville) VALUES
(125, 'Logistique', 'Casablanca'),
(127, 'Marketing', 'Casablanca'),
(128, 'Informatique', 'Casablanca');
INSERT INTO emp (NE, nom, prénom, fonction, dateNaissance, genre, sal, dateEmb, comm, ND, NEchef)

VALUES (, 'Arfaoui', 'Samira', 'developpeur', '1984-01-12', 'F', 10000, '2014-01-01', 2000, 128, 4),

(, 'Reda', 'Ali', 'stockage', '1990-02-12', 'M', 15000, '2019-01-02', 900, 125, 4),

(, 'Heddaoui', 'Chaimaa', 'manager', '1986-05-14', 'F', 6000, '2008-05-14', 300, 127, 4),

(, 'AMERANI', 'Abderrahman', 'presedent', '1980-05-14', 'M', 30000, '2000-05-01', 6000, 125, ’’),

(, 'MEHDI', 'ALI', 'informatitien', '1965-02-15', 'M', 10000, '1981-03-05', 700, 128, 4);

2. Vérifier que l’incrémentation automatique est bien fonctionnelle dans la table Employés.

3. Interdire les doublons dans le champ nom, prénom Employe et vérifier que cette contrainte est
respectée.

INSERT INTO emp (NE, nom, prénom) VALUES ('','MEHDI','ALI');


Partie 3 : Sélection de données
Nous allons ici pratiquer la sélection de données grâce au langage SQL.
1. Tous les employés avec leurs salaires triés par salaire décroissants.
SELECT NE,nom,prénom,sal FROM emp ORDER BY sal DESC;
2. Tous les employés du département 127 trié par ordre alphabétique.
SELECT NE,nom,prénom FROM emp WHERE ND=127 ORDER BY nom;
3. Tous les employés qui ne sont pas managers et qui sont embauchés en 1981.
SELECT * from emp WHERE NEchef IS NOT NULL and YEAR(dateEmb) = 1981;
4. Tous les managers des départements 125 et 128.
SELECT * from emp WHERE NEchef IS NULL AND ( ND=125 OR ND=128);
5. Tous les employés ne travaillant pas dans le département 30 et qui soit ont un salaire > à 2800, soit son
manager.
SELECT * FROM emp WHERE ND <> 30 AND sal > 2800 AND NEchef IS NULL;
6. Tous les numéros de département non vides.
SELECT DISTINCT ND FROM emp;
7. Tous les numéros de supérieurs hiérarchiques.
SELECT distinct NEchef FROM emp;
8. Tous les salaires, commissions et totaux (salaire + commission) des employés.
SELECT nom, sal, comm, sal+comm AS total FROM emp;
9. Nombres d'employés par profession avec le salaire moyen, minimum et maximum.
SELECT fonction, COUNT(NE) AS NE_PAR_fonction, AVG(sal) AS moyen,MIN(sal) AS minimum,
MAX(sal) AS maximum FROM emp GROUP BY fonction;
10. Salaires max dans chaque département (par numéro de département).
SELECT ND, MAX(sal) AS maximum FROM emp GROUP BY ND;

Partie 4 : Mise à jour de données


Ici sont étudiées de nouvelles clauses SQL, qui permettent la modification des données de la base.
1) Afficher la table des employes et, grâce au bouton, mettre à 0 comm de ARFAOUI SAMIRA.
UPDATE emp SET comm = 0 WHERE emP.NE = 1;
2)Modifier libellé de département Informatique par département système d’information et transformation
digital.
UPDATE dept SET nom = 'SITD' WHERE dept.ND = 128;
3)Modifier la date de naissance de l’employé « AMERANI » par 20/05/1980
UPDATE emp SET dateNaissance = '1980-05-20' WHERE emp.NE = 4 ;
4)Modifier le salaire de Mehdi ALI par « 10000 »
UPDATE emp SET sal = 10000 WHERE emp.NE = 5;
5)Modifier le chef de Heddaoui chaimaa par MEHDI ALI
UPDATE emp SET NEchef = 5 WHERE emp.NE = 3;

Vous aimerez peut-être aussi