SQLite dans VSCode
[Mise à jour le 9/3/2024]
En cours de modification
1. Présentation
Le paragraphe “Programmation” fait référence au projet VSCode contenant la base
sejour.db.Téléchargeable
ici pour tester les exemples
Remarque
- Chaque client séjourne dans une à plusieurs stations
- Chaque station accueille zéro ou plusieurs clients
Remarque : les flèches pointent vers les parents.
2. Programmation
2.1 Créer une base
Créer un répertoire et l'ouvrir dans VSCode (Exemple ci-contre : Sejours)
Créer un fichier avec l'extension .db (Exemple : sejour.db)
L’extension de fichier .db contient la base de données créée avec le système de gestion de base de données SQLite.
2.2 Ouvrir la base dans l'explorateur Sqlite
Exemple : sélection de sejours.db
Faire un clic droit sur le fichier .db et sélectionner Open database ou F1 → SQLite: Open database et choisir la base de données.L'explorateur Sqlite (SQLITE EXPLORER) s'ouvre et affiche la base sélectionnée en bas et à gauche de la fenêtre.
2.3 Se connecter à la base
Dans un
nouveau projet, cliquer sur
dans la barre d'état et sélectionner
SQLite. Dans un
projet existant, cliquer sur un fichier
.sql pour faire apparaître les données dans la barre d'état.
Cliquer sur
et sélectionner la base à utiliser (Ex :
sejour.db).
2.4 Créer une table
Contrairement à la norme SQL et aux autres systèmes de base de données,
seulement trois modifications sont possibles:
- Renommer une table.
- Renommer une colonne.
- Ajouter une nouvelle colonne à une table.
En dehors de ces deux possibilités, la table devra être reconstruite. Le
nom des attributs doit donc être choisi avec soin.
Faire un clic droit sur le nom de la base dans SQLITE EXPLORER et sélectionner New Query.
Sélectionner la requête, faire un clic droit dessus et sélectionner
Run Selected Query. Si la requête est correcte, la page ci-dessous s'ouvre pour indiquer que la table a été créé.
Rafraîchir la base en cliquant sur l'icône
dans
SQLITE EXPLORER pour voir apparaître la table
clients.
CONTRAINTES DE CLÉ ÉTRANGÈRE
Le paramétrage de VSCode pour la prise en charge des contraintes de clé étrangère est traité au paragraphe 3 “Contraintes d'intégrité”.
2.5 Supprimer une table
DROP TABLE IF EXISTS nomtable;
Poursuivre les modifications ici
2.6 Ajouter et modifier des données dans une table
2.6.1 Ajouter des données
Syntaxe
- *.sql
INSERT INTO table1 VALUES
(valeur1-1, sur toutes les colonnes...),
(valeur2-1, sur toutes les colonnes...),
...;
Exemple
Cliquer sur l'icône
pour créer une nouvelle page .sql. L'enregistrer sous le nom
insertions.sql.
Nous allons placer les requêtes SQL d'insertion des données dans les tables dans ce fichier.
Entrer la requête ci-dessous dans le fichier
insertions.sql.
- *.sql
-- Un seul enregistrement
-- Id est automatiquement incrémenté
INSERT INTO clients(nom,prenom,ville,region,solde)
VALUES
('Bauer','Elmut','Berlin','Europe',9825);
Sélectionner la requête, faire un clic droit dessus et sélectionner
Run Selected Query.Si la requête est correcte, un clic sur
dans
SQLITE EXPLORER affiche la table comme ci-dessous.
On peut également entrer plusieurs enregistrements dans la table comme dans la requête ci-dessous.
- *.sql
-- Plusieurs enregistrements
-- Id est automatiquement incrémenté
INSERT INTO clients(nom,prenom,ville,region,solde)
VALUES
('Smith','John','Londres','Europe',12436),
('Jonhson','Britney','New York','Amérique',6721);
Entrer cette requête dans le même fichier, la sélectionner et l'exécuter. La table doit maintenant correspondre à la figure ci-dessous.
2.6.2 Modifier des cellules
Syntaxe
- *.sql
UPDATE TABLE SET col1=val1
WHERE [sélection]
Exemple
Cliquer sur l'icône
pour créer une nouvelle page .sql. L'enregistrer sous le nom
mises_a_jour.sql.
Entrer la requête ci-dessous dans le fichier
mises_a_jour.sql.
- *.sql
UPDATE clients SET solde = 9000
WHERE nom="Bauer";
Sélectionner la requête, faire un clic droit dessus et sélectionner
Run Selected Query.Si la requête est correcte, un clic sur
dans
SQLITE EXPLORER affiche la table comme ci-dessous.
2.6.3 Supprimer des lignes
Syntaxe
- *.sql
DELETE FROM table1
WHERE [sélection]
Exemple
- *.sql
DELETE FROM Clients
WHERE Id>2 -- Supprime la troisième ligne dans la table
2.7 Interroger la base
Les exemples ci-dessous peuvent être testés avec
VSCode après avoir téléchargé et installé le projet
Sejours.
2.7.1 Requête de base
Syntaxe
- *.sql
SELECT colonne1 [AS alias1],
colonne2 [AS alias2]
FROM table1 [AS t1], table2 [AS t2]
WHERE [critères de jointure et sélection]
GROUP BY colonnei
ORDER BY colonnej [ASC|DESC];
2.7.2 Sélection simple
On peut sélectionner des colonnes d'une ou plusieurs tables données en paramètre avec SELECT. La commande WHERE permet de spécifier des critères de sélection.
Exemple : nom et du lieu des stations se trouvant en Europe ?
- *.sql
SELECT nomstation, lieu
FROM stations
WHERE region = 'Europe';
2.7.3 Tri des résultats
Il est possible de trier le résultat d'une requête avec la clause ORDER BY suivie de la liste des attributs suivie des mots-clés ASC (croissant) ou DESC (décroissant). Par défaut le tri est croissant.
Exemple
- *.sql
SELECT *
FROM stations
ORDER BY region ASC, lieu DESC;
Il est possible de renommer les attributs avec le mot-clé AS. On utilise un alias pour en faciliter la lecture lors de l'affichage.
Exemple : le contenu des colonnes nom et prenom est regroupé dans une colonne avec l'alias Individu.
- *.sql
SELECT prenom||' '||nom AS Individu, ville AS Ville
FROM clients;
2.7.5 Fonctions de groupes (agrégation)
Les fonctions de groupe permettent d'obtenir des informations sur un ensemble de lignes en travaillant sur les colonnes et non pas sur les lignes comme avec WHERE.
Exemples de fonctions
COUNT donne le nombre de lignes d'une colonne.
AVG calcule la moyenne d'une colonne.
SUM calcule la somme d'une colonne
MIN,MAX calculent le minimum et le maximum d'une colonne
Exemple : combien de stations situées en Europe sont-elles référencées dans la base de données ?
- *.sql
SELECT COUNT(nomstation) AS Nombre
FROM stations
WHERE region='Europe';
2.7.6 Jointures
Une jointure permet d'associer plusieurs tables dans une même requête.
Syntaxe
- *.sql
SELECT colonne1 [AS c1],
colonne2 [AS c2]
FROM table1 [AS t1] JOIN table2 [AS t2] ON t1.clea = t2.cleb
AND t1.cleb = t2.cleb;
Exemple : liste (partiel) des clients avec les séjours qu'ils ont effectués.
- *.sql
SELECT nom AS "Nom Client", nomstation AS Station
FROM clients
JOIN sejours ON clients.id=sejours.id
ORDER BY nom;
3. Contraintes d'intégrité