This commit is contained in:
Bonnet Ronan 2022-12-09 12:10:45 +01:00
commit b50863af37
3 changed files with 145 additions and 92 deletions

View file

@ -1,12 +1,95 @@
INSERT INTO Personnel VALUES ( ----------------------------------------------------------------------
0, -- --
-- Personnel --
-- --
----------------------------------------------------------------------
-- Nathan
INSERT nom, prenom, date_de_naissance, adress, date_de_recrutement INTO Personnel VALUES (
'Billard', 'Billard',
'Nathan', 'Nathan',
DATE '2000-12-25', DATE '2000-12-25',
'chez Nathan', '15 avenue du Colonel Roche',
DATE '2020-9-15'
);
INSERT nom, prenom, date_de_naissance, adress, date_de_recrutement INTO Personnel VALUES (
'Bonnet',
'Ronan',
DATE '2002-12-25',
'chez Ronan',
'2020-9-15' '2020-9-15'
); );
INSERT nom, prenom, date_de_naissance, adress, date_de_recrutement INTO Personnel VALUES (
'Olougouna',
'Axel',
DATE '2001-12-25',
'chez Axel',
'2020-9-15'
);
INSERT nom, prenom, date_de_naissance, adress, date_de_recrutement INTO Personnel VALUES (
'Grane',
'Yasmine',
DATE '2001-12-25',
'chez Yasmine',
'2020-9-15'
);
INSERT nom, prenom, date_de_naissance, adress, date_de_recrutement INTO Personnel VALUES (
'Wonderland',
'Alice',
DATE '1978-12-25',
'chez les lapins',
'2020-9-15'
);
INSERT nom, prenom, date_de_naissance, adress, date_de_recrutement INTO Personnel VALUES (
'Le Bricoleur',
'Bob',
DATE '1878-12-25',
'au chantier',
'2020-9-15'
);
INSERT nom, prenom, date_de_naissance, adress, date_de_recrutement INTO Personnel VALUES (
'Romilly',
'Étienne',
DATE '1995-03-17',
'32 avenue des Maronnais',
DATE '2013-09-01'
);
INSERT nom, prenom, date_de_naissance, adress, date_de_recrutement INTO Personnel VALUES (
'Jacques',
'Léonne',
DATE '2002-01-07',
'158 rue de la passion',
DATE '2021-08-25'
);
----------------------------------------------------------------------
-- --
-- Doctorant --
-- --
----------------------------------------------------------------------
INSERT date_debut_these, date_soutenance INTO Doctorant VALUES (
DATE '2020-06-23',
DATE '2023-08-03'
);
INSERT date_debut_these, date_soutenance INTO Doctorant VALUES (
DATE '2019-07-13',
DATE '2020-11-08'
);
INSERT date_debut_these, date_soutenance INTO Doctorant VALUES (
DATE '2021-07-30',
DATE '2022-09-29'
);
--Axel --Axel
INSERT INTO Etablissement VALUES ( INSERT INTO Etablissement VALUES (
@ -33,74 +116,13 @@ INSERT INTO Etablissement VALUES (
'Paris' 'Paris'
); );
INSERT INTO Personnel VALUES ( --Axel
1,
'Bonnet',
'Ronan',
DATE '2002-12-25',
'chez Ronan',
'2020-9-15'
);
INSERT INTO Personnel VALUES (
2,
'Olougouna',
'Axel',
DATE '2001-12-25',
'chez Axel',
'2020-9-15'
);
INSERT INTO Personnel VALUES (
3,
'Grane',
'Yasmine',
DATE '2001-12-25',
'chez Yasmine',
'2020-9-15'
);
INSERT INTO Personnel VALUES (
4,
'Wonderland',
'Alice',
DATE '1978-12-25',
'chez les lapins',
'2020-9-15'
);
INSERT INTO Personnel VALUES (
5,
'Le Bricoleur',
'Bob',
DATE '1878-12-25',
'au chantier',
'2020-9-15'
);--Axel
INSERT INTO Partenaire VALUES ( INSERT INTO Partenaire VALUES (
01, 01,
'GFGH', 'GFGH',
'Allemagne' 'Allemagne'
); );
INSERT INTO Doctorant VALUES (
4,
DATE '2020-06-23',
DATE '2023-08-03'
);
INSERT INTO Doctorant VALUES (
1,
DATE '2019-07-13',
DATE '2020-11-08'
);
iNSERT INTO Doctorant VALUES (
2,
DATE '2021-07-30',
DATE '2022-09-29'
);
INSERT INTO Scientifique VALUES ( INSERT INTO Scientifique VALUES (
3, 3,
'cr1' 'cr1'
@ -126,6 +148,7 @@ INSERT INTO Encadrement VALUES (
2, 2,
3 3
); );
INSERT INTO Labo_externe VALUES ( INSERT INTO Labo_externe VALUES (
1, 1,
'CNES', 'CNES',

View file

@ -14,16 +14,16 @@ WHERE idPersonnel = idScientifique AND idPersonnel IN (
); );
-- Ronan Q2 -- Ronan Q2
SELECT DISTINCT ae.nom, ae.prenom, le.pays FROM Personnel AS perso SELECT ae.nom, ae.prenom le.pays FROM Personnel AS perso
JOIN Publie_Scientifique ps on perso.idPersonnel = ps.idScientifique JOIN Publie_Scientifique ps on perso.idPersonnel = ps.idPersonnel
RIGHT JOIN Publication publi on publi.idPublication = ps.idPublication RIGHT JOIN Publication publi on publi.idPublication = ps.idPublication
RIGHT JOIN Publie_Externe pe on publi.idPublication = pe.idPublication RIGHT JOIN Publie_Externe pe on publi.idPublication = pe.idPublication
JOIN Auteur_Externe ae on ae.idAuteur = pe.idAuteurExterne JOIN Auteur_Externe ae on ae.idAuteur = pe.idAuteur
JOIN Labo_Externe le on ae.idLabo = le.idLabo JOIN Labo_Externe le on ae.idLabo = le.idLabo
WHERE perso.nom = 'Olougouna' WHERE perso.nom = 'Azi'
AND perso.prenom = 'Axel' AND perso.prenom = 'Jean'
AND annee >= '2016-01-01' AND annee >= '2016-01-01'
AND annee <= '2023-01-01'; AND annee <= '2020-01-01';
--Axel Q3 --Axel Q3
SELECT COUNT(DISTINCT idAuteurExterne) AS nbCollab FROM Publie_Externe pe SELECT COUNT(DISTINCT idAuteurExterne) AS nbCollab FROM Publie_Externe pe
@ -34,8 +34,11 @@ WHERE idScientifique = '01';
-- Axel Q4 -- Axel Q4
SELECT COUNT(DISTINCT ) as nbPaysCollab FROM Publication SELECT COUNT(DISTINCT pays) AS nbPaysCollab FROM Labo_Externe le
WHERE classeConf = 'A'; RIGHT JOIN Auteur_Externe ae ON ae.idLabo = le.idLabo
RIGHT JOIN Publie_Externe pe ON pe.idAuteurExterne = ae.idAuteurExterne
JOIN Publication pub ON pub.idPublication = pe.idPublication
WHERE pub.classeConf = 'A';
-- Nathan Q5 -- Nathan Q5
SELECT idDoctorant, COUNT(idPublication) FROM Publie_Doctorant SELECT idDoctorant, COUNT(idPublication) FROM Publie_Doctorant
@ -50,7 +53,7 @@ SELECT nom, prenom FROM Personnel
WHERE idPersonnel IN ( WHERE idPersonnel IN (
SELECT idScientifique FROM Scientifique SELECT idScientifique FROM Scientifique
WHERE idScientifique NOT IN ( WHERE idScientifique NOT IN (
SELECT idScientifique FROM Encadrement SELECT idScientifique FROM Encadrement
) )
); );
@ -94,7 +97,7 @@ GROUP BY idDoctorant;
--Yasmine QUESTION 8 --Yasmine QUESTION 8
SELECT idEnseignant SELECT idEnseignant
FROM Enseignant-chercheur FROM Enseignant_chercheur
NOT IN ( (SELECT idScientifique NOT IN ( (SELECT idScientifique
FROM Publie_scientifique) FROM Publie_scientifique)
UNION UNION
@ -102,29 +105,46 @@ NOT IN ( (SELECT idScientifique
FROM Encadrement) FROM Encadrement)
) ; ) ;
<<<<<<< HEAD
-- Axel Q12
SELECT idEnseignant FROM Enseignant_Chercheur ec
RIGHT JOIN Publie_Scientifique ps ON ps.idScientifique = ec.idScientifique
RIGHT JOIN Publication pub ON pub.idPublication = ps.idScientifique
WHERE pub.classeConf = 'A';
--EXCEPT SELECT idEnseignant FROM Enseignant_Chercheur ec
--RIGHT JOIN Publie_Scientifique ps ON ps.idScientifique = ec.idScientifique
--RIGHT JOIN Publication pub ON pub.idPublication = ps.idScientifique
--WHERE pub.classeConf = 'A'
-- AND pub.classeConf IN 'A*' 'B';
-- Yasmine QUESTION 14 -- Yasmine QUESTION 14
=======
-- Yasmine QUESTION 14 Testé
>>>>>>> af456634e468d2a6e5d3dbc4e169d73853af5baf
SELECT Count(Distinct idPublication) SELECT Count(Distinct idPublication)
FROM Publication FROM Publication
GROUP BY annee ; GROUP BY publication.annee;
-- Yasmine QUESTION 15 -- Yasmine QUESTION 15 Testé PAS D'ERREUR DE SYNTAXE
SELECT Count(Distinct E,idEnseignant) SELECT Count(Distinct E.idEnseignant)
FROM Enseignant-chercheur E,Personnel P ,Scientifique S FROM Enseignant_chercheur E,Personnel P ,Scientifique S
WHERE P.idPersonnel=S.idScientifique WHERE P.idPersonnel=S.idScientifique
AND S.idScientifique=E.idEnseignant AND S.idScientifique=E.idEnseignant
GROUP BY idEtablissement  ; GROUP BY idEtablissement;
-- Yasmine QUESTION 19 -- Yasmine QUESTION 19 Testé PAS D'ERREUR DE SYNTAXE
SELECT idEtablissement, Count(Distinct idEnseignant) SELECT idEtablissement, Count(Distinct idEnseignant)
FROM Enseignant-chercheur FROM Enseignant_chercheur
GROUP BY idEtablissement GROUP BY idEtablissement
HAVING count(Distinct idEnseignant) >= 50 ; HAVING count(Distinct idEnseignant) >= 50;
--Yasmine QUESTION 21 --Yasmine QUESTION 21 Testé PAS D'ERREUR DE SYNTAXE
SELECT Distinct P.Pays SELECT Distinct P.Pays
FROM Partenaire P, Participe_externe PEX FROM Partenaire P, Participe_externe PEX
@ -136,5 +156,5 @@ and not exists (Select *
From Participe_externe PEX2 From Participe_externe PEX2
Where PEX2.idPartenaire=P.idPartenaire and Where PEX2.idPartenaire=P.idPartenaire and
PEX2.idPr=PR.idProjet)); PEX2.idProjet=PR.idProjet));

View file

@ -1,5 +1,5 @@
-- Nathan -- Nathan
CREATE TYPE echelon AS ENUM ( CREATE TYPE T_CLASSECONF AS ENUM (
'A*', 'A*',
'A', 'A',
'B', 'B',
@ -7,17 +7,27 @@ CREATE TYPE echelon AS ENUM (
); );
-- Nathan -- Nathan
CREATE TYPE grade AS ENUM ( CREATE TYPE T_GRADE AS ENUM (
'cr1', 'cr1',
'cr2', 'cr2',
'mcf', 'mcf',
'mcf hors classe' 'mcf hors classe'
); );
CREATE TYPE T_ECHELON AS ENUM (
1,
2,
3,
4,
5,
6,
7
);
-- Axel -- Axel
CREATE TABLE Personnel CREATE TABLE Personnel
( (
idPersonnel INT CONSTRAINT UnePersonne PRIMARY KEY, idPersonnel SERIAL CONSTRAINT UnePersonne PRIMARY KEY,
nom VARCHAR, nom VARCHAR,
prenom VARCHAR, prenom VARCHAR,
date_de_naissance DATE, date_de_naissance DATE,
@ -27,7 +37,7 @@ CREATE TABLE Personnel
--Axel --Axel
CREATE TABLE Doctorant( CREATE TABLE Doctorant(
idDoctorant INT NOT NULL, idDoctorant SERIAL NOT NULL,
date_debut_these DATE, date_debut_these DATE,
date_soutenance DATE, date_soutenance DATE,
FOREIGN KEY (idDoctorant) REFERENCES Personnel(idPersonnel) ON DELETE CASCADE, FOREIGN KEY (idDoctorant) REFERENCES Personnel(idPersonnel) ON DELETE CASCADE,
@ -37,7 +47,7 @@ CREATE TABLE Doctorant(
--Yasmine --Yasmine
CREATE TABLE Scientifique( CREATE TABLE Scientifique(
idScientifique INT NOT NULL, idScientifique INT NOT NULL,
grade VARCHAR, grade T_GRADE,
FOREIGN KEY (idScientifique) REFERENCES Personnel(idPersonnel) ON DELETE CASCADE, FOREIGN KEY (idScientifique) REFERENCES Personnel(idPersonnel) ON DELETE CASCADE,
PRIMARY KEY (idScientifique) PRIMARY KEY (idScientifique)
); );
@ -55,7 +65,7 @@ CREATE TABLE Etablissement(
CREATE TABLE Enseignant_Chercheur( CREATE TABLE Enseignant_Chercheur(
idEnseignant INT NOT NULL, idEnseignant INT NOT NULL,
idEtablissement INT NOT NULL, idEtablissement INT NOT NULL,
echelon ECHELON, echelon T_ECHELON,
FOREIGN KEY (idEtablissement) REFERENCES Etablissement(idEtablissement) ON DELETE CASCADE, FOREIGN KEY (idEtablissement) REFERENCES Etablissement(idEtablissement) ON DELETE CASCADE,
FOREIGN KEY (idEnseignant) REFERENCES Personnel(idPersonnel) ON DELETE CASCADE, FOREIGN KEY (idEnseignant) REFERENCES Personnel(idPersonnel) ON DELETE CASCADE,
PRIMARY KEY (idEnseignant) PRIMARY KEY (idEnseignant)
@ -118,7 +128,7 @@ CREATE TABLE Publication(
titre VARCHAR, titre VARCHAR,
annee DATE, annee DATE,
nomConf VARCHAR, nomConf VARCHAR,
classeConf VARCHAR, classeConf T_CLASSECONF,
nbPages INT, nbPages INT,
PRIMARY KEY (idPublication) PRIMARY KEY (idPublication)
); );