Import de données depuis un fichier CSV

Nous allons à présent réinitialiser la base avec des données contenues dans un fichier.

Question

Exécuter les instructions nécessaires afin de supprimer les données existantes dans les tables (instruction DELETE du SQL LMD). Vérifier que les tables sont vides.

Solution

1
DELETE FROM uv;
2
SELECT * FROM uv;
3
DELETE FROM etu;
4
SELECT * FROM etu;

Question

Créer les deux fichiers de données suivants, respectivement etus.csv et uvs.csv. Regarder le contenu des fichiers. Pourquoi les appelle-t-on des fichiers CSV ?

1
1;A;Dupont;Pierre
2
2;B;Durand;Georges
3
3;C;Duchemin;Paul
4
4;D;Dugenou;Alain
5
5;E;Dupied;Albert
1
1;NF17
2
1;NF18
3
1;NF19
4
1;NF20
5
1;LA13
6
1;PH01
7
2;NF17
8
2;NF18
9
2;NF19
10
2;TN01
11
2;LA14
12
2;PH01
13
3;NF17
14
3;NF18
15
3;NF19
16
3;NF21
17
3;LA14
18
3;PH01
19
4;NF17
20
4;NF20
21
4;NF21
22
4;GE10
23
4;LA14
24
4;PH01
25
5;NF17
26
5;NF18
27
5;NF20
28
5;GE10
29
5;PH01
30
5;PH02

Question

Insérer les données en complétant les instructions suivantes.

1
\copy ... (...) FROM '...' WITH CSV DELIMITER '...'
2
\copy ... (...) FROM '...' WITH CSV DELIMITER '...'

Solution

1
\copy etu (pknumsecu, knumetu, nom, prenom) FROM 'etus.csv' WITH CSV DELIMITER ';' QUOTE '"'
2
\copy uv (fketu, pkcode) FROM 'uvs.csv' WITH CSV DELIMITER ';' QUOTE '"'

Question

Écrivez les requêtes permettant d'obtenir le nombre d'UV suivies par un étudiant et le nombre d'étudiants inscrits par UV.

Solution

1
SELECT pkcode, COUNT(fketu)
2
FROM uv
3
GROUP BY pkcode;
1
SELECT fketu, COUNT(pkcode)
2
FROM uv
3
GROUP BY fketu;