Appliquer la notion

Soit le schéma relationnel :

1
Employe (#Num, Nom, Prenom, Age, Salaire, Fonction=>Fonction, Societe=>Societe)
2
Fonction (#Intitule, SalaireMin, SalaireMax, NbHeures)
3
Societe (#Nom, Pays, Activite)

On crée les tables associées et leurs enregistrements.

1
CREATE TABLE societe(
2
nom VARCHAR(50),
3
pays VARCHAR(50),
4
activite VARCHAR(50),
5
PRIMARY KEY (nom)
6
);
7
8
9
CREATE TABLE employe(
10
num INTEGER,
11
nom VARCHAR(50),
12
prenom VARCHAR(50),
13
age INTEGER,
14
salaire REAL,
15
societe VARCHAR(50),
16
PRIMARY KEY (num),
17
FOREIGN KEY (societe) REFERENCES societe(nom)
18
);
19
20
                                           
21
INSERT INTO societe (nom, pays, activite)
22
VALUES ('Pied Piper', 'USA', 'Éditeur Logiciel');
23
24
INSERT INTO societe (nom, pays, activite)
25
VALUES ('LeapMusic', 'France', 'Éditeur Logiciel');
26
27
INSERT INTO societe (nom, activite)
28
VALUES ('Aperture Science', 'Fabrication de rideaux de douche');
29
30
INSERT INTO societe(nom, pays)
31
VALUES ('Black Mesa', 'USA');
32
33
INSERT INTO employe (num, nom, prenom, age, salaire, societe)
34
VALUES(1, 'Hendricks', 'Richard', 28, 420000, 'Pied Piper');
35
INSERT INTO employe (num, nom, prenom, age, salaire, societe)
36
VALUES(2, 'Gilfoyle', 'Bertram', 29, 399666, 'Pied Piper');
37
INSERT INTO employe (num, nom, prenom, age, salaire, societe) 
38
VALUES(3, 'Dunn', 'Donald "Jared"', 25, 120000, 'Pied Piper');
39
INSERT INTO employe (num, nom, prenom, age, salaire, societe)
40
VALUES(4, 'Hall', 'Monica', 27, 420000, 'Pied Piper');
41
42
INSERT INTO employe (num, nom, prenom, age, salaire, societe)
43
VALUES(5, 'Lake', 'Marty', 28, 420000, 'LeapMusic');
44
INSERT INTO employe (num, nom, prenom, age, salaire, societe)
45
VALUES(6, 'Gamesh', 'Jul', 18, 420000, 'LeapMusic');
46
INSERT INTO employe (num, nom, prenom, age, salaire, societe)
47
VALUES(7, 'Famous', 'PokeMe', 32, 820000, 'LeapMusic');
48
INSERT INTO employe  (num, nom, prenom, age, salaire, societe)
49
VALUES(8, 'Jones', 'Eddy', 44, 420000, 'LeapMusic');
50
51
INSERT INTO employe (num, nom, prenom, age, salaire, societe)
52
VALUES(9, Null, 'Caroline', 28, 23000, 'Aperture Science');
53
INSERT INTO employe (num, nom, prenom, age, salaire, societe)
54
VALUES(10, 'Johnson', 'Cave', 56, 4444444, 'Aperture Science');
55
INSERT INTO employe (num, nom, prenom, age, salaire, societe) 
56
VALUES(11, 'Rattmann', 'Doug', 45, 1337, 'Aperture Science');
57
58
INSERT INTO employe (num, nom, prenom, age, salaire, societe) 
59
VALUES(12, Null, 'G-Man', 42, 72000, 'Black Mesa');
60
INSERT INTO employe (num, nom, prenom, age, salaire, societe) 
61
VALUES(13, 'Freeman', 'Gordon', 34, 420000, 'Black Mesa');
62

Question

On veut consulter l’intégralité des données des sociétés.

Écrire une requête SQL permettant de réaliser cela.

Solution

1
SELECT *
2
FROM societe;

On obtient le résultat suivant :

nom

pays

activite

Pied Piper

USA

Éditeur Logiciel

LeapMusic

France

Éditeur Logiciel

Aperture Science

null

Fabrication de rideaux de douche

Black Mesa

USA

null

Question

On veut connaître l'ensemble des employés de ces entreprises.

Écrire une requête SQL permettant de réaliser cela.

Solution

1
SELECT *
2
FROM employe;

On obtient un résultat qui commence par :

num

nom

prenom

age

salaire

societe

1

Hendricks

Richard

28

420000

Pied Piper

2

Gilfoyle

Bertram

29

399666

Pied Piper

3

Dunn

Donald "Jared"

25

120000

Pied Piper