Merge branch 'master' of https://git.etud.insa-toulouse.fr/rbonnet/tp_bdd2
This commit is contained in:
commit
b50863af37
3 changed files with 145 additions and 92 deletions
153
insert.sql
153
insert.sql
|
@ -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',
|
||||
'Nathan',
|
||||
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'
|
||||
);
|
||||
|
||||
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
|
||||
INSERT INTO Etablissement VALUES (
|
||||
|
@ -33,74 +116,13 @@ INSERT INTO Etablissement VALUES (
|
|||
'Paris'
|
||||
);
|
||||
|
||||
INSERT INTO Personnel VALUES (
|
||||
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
|
||||
--Axel
|
||||
INSERT INTO Partenaire VALUES (
|
||||
01,
|
||||
'GFGH',
|
||||
'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 (
|
||||
3,
|
||||
'cr1'
|
||||
|
@ -126,6 +148,7 @@ INSERT INTO Encadrement VALUES (
|
|||
2,
|
||||
3
|
||||
);
|
||||
|
||||
INSERT INTO Labo_externe VALUES (
|
||||
1,
|
||||
'CNES',
|
||||
|
|
60
request.sql
60
request.sql
|
@ -14,16 +14,16 @@ WHERE idPersonnel = idScientifique AND idPersonnel IN (
|
|||
);
|
||||
|
||||
-- Ronan Q2
|
||||
SELECT DISTINCT ae.nom, ae.prenom, le.pays FROM Personnel AS perso
|
||||
JOIN Publie_Scientifique ps on perso.idPersonnel = ps.idScientifique
|
||||
SELECT ae.nom, ae.prenom le.pays FROM Personnel AS perso
|
||||
JOIN Publie_Scientifique ps on perso.idPersonnel = ps.idPersonnel
|
||||
RIGHT JOIN Publication publi on publi.idPublication = ps.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
|
||||
WHERE perso.nom = 'Olougouna'
|
||||
AND perso.prenom = 'Axel'
|
||||
WHERE perso.nom = 'Azi'
|
||||
AND perso.prenom = 'Jean'
|
||||
AND annee >= '2016-01-01'
|
||||
AND annee <= '2023-01-01';
|
||||
AND annee <= '2020-01-01';
|
||||
|
||||
--Axel Q3
|
||||
SELECT COUNT(DISTINCT idAuteurExterne) AS nbCollab FROM Publie_Externe pe
|
||||
|
@ -34,8 +34,11 @@ WHERE idScientifique = '01';
|
|||
|
||||
|
||||
-- Axel Q4
|
||||
SELECT COUNT(DISTINCT ) as nbPaysCollab FROM Publication
|
||||
WHERE classeConf = 'A';
|
||||
SELECT COUNT(DISTINCT pays) AS nbPaysCollab FROM Labo_Externe le
|
||||
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
|
||||
SELECT idDoctorant, COUNT(idPublication) FROM Publie_Doctorant
|
||||
|
@ -50,7 +53,7 @@ SELECT nom, prenom FROM Personnel
|
|||
WHERE idPersonnel IN (
|
||||
SELECT idScientifique FROM Scientifique
|
||||
WHERE idScientifique NOT IN (
|
||||
SELECT idScientifique FROM Encadrement
|
||||
SELECT idScientifique FROM Encadrement
|
||||
)
|
||||
);
|
||||
|
||||
|
@ -94,7 +97,7 @@ GROUP BY idDoctorant;
|
|||
--Yasmine QUESTION 8
|
||||
|
||||
SELECT idEnseignant
|
||||
FROM Enseignant-chercheur
|
||||
FROM Enseignant_chercheur
|
||||
NOT IN ( (SELECT idScientifique
|
||||
FROM Publie_scientifique)
|
||||
UNION
|
||||
|
@ -102,29 +105,46 @@ NOT IN ( (SELECT idScientifique
|
|||
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 Testé
|
||||
>>>>>>> af456634e468d2a6e5d3dbc4e169d73853af5baf
|
||||
|
||||
SELECT Count(Distinct idPublication)
|
||||
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)
|
||||
FROM Enseignant-chercheur E,Personnel P ,Scientifique S
|
||||
SELECT Count(Distinct E.idEnseignant)
|
||||
FROM Enseignant_chercheur E,Personnel P ,Scientifique S
|
||||
WHERE P.idPersonnel=S.idScientifique
|
||||
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)
|
||||
FROM Enseignant-chercheur
|
||||
FROM Enseignant_chercheur
|
||||
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
|
||||
FROM Partenaire P, Participe_externe PEX
|
||||
|
@ -136,5 +156,5 @@ and not exists (Select *
|
|||
|
||||
From Participe_externe PEX2
|
||||
Where PEX2.idPartenaire=P.idPartenaire and
|
||||
PEX2.idPr=PR.idProjet));
|
||||
PEX2.idProjet=PR.idProjet));
|
||||
|
||||
|
|
24
tables.sql
24
tables.sql
|
@ -1,5 +1,5 @@
|
|||
-- Nathan
|
||||
CREATE TYPE echelon AS ENUM (
|
||||
CREATE TYPE T_CLASSECONF AS ENUM (
|
||||
'A*',
|
||||
'A',
|
||||
'B',
|
||||
|
@ -7,17 +7,27 @@ CREATE TYPE echelon AS ENUM (
|
|||
);
|
||||
|
||||
-- Nathan
|
||||
CREATE TYPE grade AS ENUM (
|
||||
CREATE TYPE T_GRADE AS ENUM (
|
||||
'cr1',
|
||||
'cr2',
|
||||
'mcf',
|
||||
'mcf hors classe'
|
||||
);
|
||||
|
||||
CREATE TYPE T_ECHELON AS ENUM (
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7
|
||||
);
|
||||
|
||||
-- Axel
|
||||
CREATE TABLE Personnel
|
||||
(
|
||||
idPersonnel INT CONSTRAINT UnePersonne PRIMARY KEY,
|
||||
idPersonnel SERIAL CONSTRAINT UnePersonne PRIMARY KEY,
|
||||
nom VARCHAR,
|
||||
prenom VARCHAR,
|
||||
date_de_naissance DATE,
|
||||
|
@ -27,7 +37,7 @@ CREATE TABLE Personnel
|
|||
|
||||
--Axel
|
||||
CREATE TABLE Doctorant(
|
||||
idDoctorant INT NOT NULL,
|
||||
idDoctorant SERIAL NOT NULL,
|
||||
date_debut_these DATE,
|
||||
date_soutenance DATE,
|
||||
FOREIGN KEY (idDoctorant) REFERENCES Personnel(idPersonnel) ON DELETE CASCADE,
|
||||
|
@ -37,7 +47,7 @@ CREATE TABLE Doctorant(
|
|||
--Yasmine
|
||||
CREATE TABLE Scientifique(
|
||||
idScientifique INT NOT NULL,
|
||||
grade VARCHAR,
|
||||
grade T_GRADE,
|
||||
FOREIGN KEY (idScientifique) REFERENCES Personnel(idPersonnel) ON DELETE CASCADE,
|
||||
PRIMARY KEY (idScientifique)
|
||||
);
|
||||
|
@ -55,7 +65,7 @@ CREATE TABLE Etablissement(
|
|||
CREATE TABLE Enseignant_Chercheur(
|
||||
idEnseignant INT NOT NULL,
|
||||
idEtablissement INT NOT NULL,
|
||||
echelon ECHELON,
|
||||
echelon T_ECHELON,
|
||||
FOREIGN KEY (idEtablissement) REFERENCES Etablissement(idEtablissement) ON DELETE CASCADE,
|
||||
FOREIGN KEY (idEnseignant) REFERENCES Personnel(idPersonnel) ON DELETE CASCADE,
|
||||
PRIMARY KEY (idEnseignant)
|
||||
|
@ -118,7 +128,7 @@ CREATE TABLE Publication(
|
|||
titre VARCHAR,
|
||||
annee DATE,
|
||||
nomConf VARCHAR,
|
||||
classeConf VARCHAR,
|
||||
classeConf T_CLASSECONF,
|
||||
nbPages INT,
|
||||
PRIMARY KEY (idPublication)
|
||||
);
|
||||
|
|
Loading…
Reference in a new issue