TP 1 – Création de tables et initiation à la

Transcription

TP 1 – Création de tables et initiation à la
TP 1 – Création de tables et initiation à la manipulation de données
Création des tables :
Create TABLE DEPARTEMENT
(
dept_no CHAR(4) NOT NULL, dept_nom VARCHAR(40), PRIMARY KEY (dept_no)
);
Create TABLE FONCTIONS
(
no_fonction int NOT NULL, nom_fonction VARCHAR(50), salmin FLOAT, salmax FLOAT,
PRIMARY KEY (no_fonction)
);
Create TABLE EMPLOYES
(
no_emp int NOT NULL, nom_emp VARCHAR(16) NOT NULL, prenom_emp VARCHAR(14) NOT
NULL, sexe CHAR(1) CHECK (H|F), commission int NULL, no_fonction int, PRIMARY KEY
(no_emp), FOREIGN KEY (no_fonction)
);
Create TABLE TRAVAILLER
(
dept_no CHAR(4), no_emp int, FOREIGN KEY (dept_no + no_emp), PRIMARY KEY (dept_no, no
emp)
);
Ajout de no_sup :
Create TABLE EMPLOYES
(
no_emp int NOT NULL, nom_emp VARCHAR(16) NOT NULL, prenom_emp VARCHAR(14) NOT
NULL, sexe CHAR(1) CHECK (sexe : H or sexe : F), commission int NULL, no_fonction int,
no_sup int NOT NULL UNIQUE, PRIMARY KEY (no_emp), FOREIGN KEY (no_fonction)
);
Champs de
données
no_emp
Type de données
int
nom_emp
prenom_emp
sexe
varchar(16)
varchar
char
commission
no_sup
no_fonction
int
int
int
Longueu
r
16
14
1
Contraintes
Clé primaire
NOT NULL
NOT NULL
NOT NULL
NOT NULL
valeur =‘M’ ou ‘F’
NOT NULL
NOT NULLUNIQUE
Clé étrangère
Ajouter une valeur par défaut : Rajouter l'instruction :
ALTER TABLE employes
ALTER COLUMN sexe SET DEFAULT 'M';
Manipulation de données.
1 - Dans l’onglet SQL, écrire l’instruction suivante :
-
Directeur avec un salaire variant de 52 000 à 65 000€ par an :
INSERT INTO Fonctions VALUES (‘1’, ‘ Directeur’, 52000, 65000)
Ajout de INSERT INTO Fonctions VALUES ('1', 'Directeur', 52000, 65000);
2 - Cliquez sur l’onglet Affichage :
Affichage.
3 - Que fait cette instruction ?
Cette instruction définie une nouvelle valeur dans la table fonction. En effet, elle indique que la
fonction de la personne qui a l'identifiant 1 est le directeur et qu'il a un salaire variant entre 52000
et 65000€ par an.
4 - Ajouter une nouvelle ligne dans la table Fonctions avec les informations suivantes :
-
Commercial avec un salaire variant de 12 000 à 35 000€ par an (identifiant n°2)
Ajout de INSERT INTO Fonctions VALUES ('2', 'Commercial', 12000, 35000);
5 - Insertion de deux départements : 1-Recherche et 2- Commercial
Ajout de INSERT INTO departement VALUES ('1', 'Recherche');
Ajout de INSERT INTO departement VALUES ('2', 'Commercial');
6 - Le directeur est rattaché au département Recherche et développement et les commerciaux
au département Commercial
Ajout de INSERT INTO TRAVAILLER VALUES ('2','1') ;
Ajout de INSERT INTO TRAVAILLER VALUES ('2', '2');
Ajout de INSERT INTO TRAVAILLER VALUES ('1', '3');
Ajout de INSERT INTO TRAVAILLER VALUES ('1', '4') ;
7 - Insertion de 4 employés : deux commerciaux ayant une commission et deux directeurs
n’ayant pas de commission.
Ajout de INSERT INTO employes VALUES ('1', 'Enzo', 'e', 'M', 500, '2', '1');
Ajout de INSERT INTO employes VALUES ('2', 'Lucie', 'l', 'F', 300, '2', '1');
Ajout de INSERT INTO employes VALUES ('3', 'Adeline', 'a', 'F', NULL, '1', '2');
Ajout de INSERT INTO employes VALUES (''4', 'Jules', 'j', M', NULL, '1', '3);
8 - Ecrire le code SQL suivant :
UPDATE Fonctions
Set dept_nom
= ‘Recherche et Développement’
WHERE dept_no = 1 ;
UPDATE Fonctions
Set nom_fonction = ‘Recherche et Développement’
WHERE no_fonction = 1 ;
Que fait cette instruction ?
Cette instruction modifie les valeurs d'une table. Ici, il s'agit de la table fonction. En effet
l'instruction sélectionne la valeur de 'Recherche et Développement' de la colonne
dept_nom et la qualifie avec un nom de sous-champ ou un indice de tableau, ici le chiffre
1 pour la valeur Recherche et Dévelopement. Cela revient à dire que le directeur qui porte
le numéro 1 est rattaché à la valeur Recherche et Développement.
(L'instruction sert à modifier le nom de dept_nom en Recherche et Développement là où la
dept_no est égal à 1.)
9 - Modifier le salaire maximum de la fonction commercial à 20 000€
UPDATE Fonctions
Set salmax = 20000
WHERE numfonction = '2';
10 - Nom, prénom et commission des employés ayant une commission, classée par commission
décroissante.
Select nom_emp, prenom_emp, commission
From employes
Where commission = integer DESC;
11 - Liste des employés classés par fonction.
Select nom_emp
From employes
Order by fonction;

Documents pareils