0% found this document useful (0 votes)
2 views

1SQL

The document outlines the schema of a database related to courses, detailing tables for students, subjects, teachers, and grades. It includes various MySQL commands for displaying tables, querying data, and performing joins and aggregations. Additionally, it provides specific SQL queries for listing students, subjects, and teachers, as well as calculating statistics and averages.

Uploaded by

ezmandoye092
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

1SQL

The document outlines the schema of a database related to courses, detailing tables for students, subjects, teachers, and grades. It includes various MySQL commands for displaying tables, querying data, and performing joins and aggregations. Additionally, it provides specific SQL queries for listing students, subjects, and teachers, as well as calculating statistics and averages.

Uploaded by

ezmandoye092
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

1SQL

Le schéma de la base de données cours est le suivant: ✔


Etudiant(Numetu,Nometu,Prenometu,Dtnaiss,Cdsexe#) ✔
Matiere(Numat,Nomat,Coeff,Numens#) ✔ Sexe(Cdsexe,Lbsexe) ✔
Enseignant(Numens, Nomens,Prenomens,Grade,Ancien) ✔ Notes(Numetu#,
Numat#, note).
B) Commandes MySQL:
1) Afficher les tables:
```sql
SHOW TABLES;
```

2) Afficher la structure:
```sql
DESCRIBE Etudiant;
DESCRIBE Matiere;
DESCRIBE Sexe;
DESCRIBE Enseignant;
DESCRIBE Notes;
```

C) Requêtes simples:
1) Liste des étudiants:
```sql
SELECT Numetu, Nometu, Prenometu FROM Etudiant;
```

2) Matières par ordre alphabétique:


```sql
SELECT * FROM Matiere ORDER BY Nomat;
```
3) Enseignants par ancienneté:
```sql
SELECT Nomens, Prenomens, Ancien FROM Enseignant ORDER BY Ancien;
```

4) Liste des assistants:


```sql
SELECT * FROM Enseignant WHERE Grade = 'ASS';
```

5) Ancienneté spécifique:
```sql
SELECT * FROM Enseignant WHERE Ancien > 3;
SELECT * FROM Enseignant WHERE Ancien BETWEEN 2 AND 4;
```

6) Ancienneté de SIMON:
```sql
SELECT Ancien FROM Enseignant WHERE Nomens = 'SIMON' AND Prenomens =
'Étienne';
```

7) Étudiants avec prénom en J:


```sql
SELECT * FROM Etudiant WHERE Prenometu LIKE 'J%';
```

8-10) Effectifs:
```sql
SELECT COUNT(*) FROM Etudiant;
SELECT COUNT(*) FROM Etudiant WHERE Cdsexe = 'M';
SELECT COUNT(*) FROM Etudiant WHERE Cdsexe = 'F';
```

11-14) Statistiques ancienneté:


```sql
SELECT MIN(Ancien) FROM Enseignant;
SELECT MAX(Ancien) FROM Enseignant;
SELECT Nomens, Grade, Ancien FROM Enseignant WHERE Ancien IN (SELECT
MIN(Ancien) FROM Enseignant) OR Ancien IN (SELECT MAX(Ancien) FROM
Enseignant);
SELECT AVG(Ancien) FROM Enseignant;
```

15) Âge des étudiants:


```sql
SELECT Nometu, YEAR(CURRENT_DATE) - YEAR(Dtnaiss) AS age FROM Etudiant;
```

D) Jointures:
1) Enseignants d'histoire:
```sql
SELECT e.Nomens, e.Grade FROM Enseignant e JOIN Matiere m ON e.Numens =
m.Numens WHERE m.Nomat = 'Histoire';
```

2) Matières MCF/ASS:
```sql
SELECT m.Nomat, m.Coeff FROM Matiere m JOIN Enseignant e ON m.Numens =
e.Numens WHERE e.Grade IN ('MCF', 'ASS');
```

3-5) Notes et étudiants:


```sql
SELECT e.Nometu, e.Prenometu, n.note FROM Etudiant e JOIN Notes n ON
e.Numetu = n.Numetu JOIN Matiere m ON n.Numat = m.Numat WHERE m.Nomat
= 'Histoire' ORDER BY e.Nometu;

SELECT n.note, m.Nomat, e.Nometu FROM Notes n JOIN Matiere m ON n.Numat =


m.Numat JOIN Etudiant e ON n.Numetu = e.Numetu;

SELECT e.Nometu FROM Etudiant e WHERE NOT EXISTS (SELECT * FROM Notes n
JOIN Matiere m ON n.Numat = m.Numat WHERE m.Nomat = 'Histoire' AND
n.Numetu = e.Numetu);
```

E) Regroupements:
1-4) Moyennes et statistiques:
```sql
SELECT m.Nomat, AVG(n.note) as moyenne FROM Notes n JOIN Matiere m ON
n.Numat = m.Numat GROUP BY m.Nomat;

SELECT e.Nometu, AVG(n.note * m.Coeff) / SUM(m.Coeff) as moyenne FROM


Etudiant e JOIN Notes n ON e.Numetu = n.Numetu JOIN Matiere m ON n.Numat =
m.Numat GROUP BY e.Numetu;

SELECT COUNT(*) FROM (SELECT e.Numetu FROM Etudiant e JOIN Notes n ON


e.Numetu = n.Numetu JOIN Matiere m ON n.Numat = m.Numat GROUP BY
e.Numetu HAVING AVG(n.note) >= 10) as subquery;

SELECT m.Nomat FROM Notes n JOIN Matiere m ON n.Numat = m.Numat GROUP


BY m.Nomat HAVING AVG(n.note) < 10;
```

You might also like