Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
info:bdd:sqlitevscode [2024/03/09 08:16] – [2.6 Ajouter et modifier des données dans une table] philinfo:bdd:sqlitevscode [2026/01/27 17:12] (Version actuelle) – [1. Présentation] mno
Ligne 2: Ligne 2:
  
 ===== SQLite dans VSCode ===== ===== SQLite dans VSCode =====
-[Mise à jour le 9/3/2024+[Mise à jour le 27/1/2026
-<html><p style="color:red">En cours de modification</p</html>+
 {{ :info:bdd:sqlite.jpg?nolink&250|}} {{ :info:bdd:sqlite.jpg?nolink&250|}}
  
Ligne 19: Ligne 19:
  
 ==== 1. Présentation ==== ==== 1. Présentation ====
-<callout type="primary" icon="true">Le paragraphe "Programmation" fait référence au projet VSCode contenant la base //sejour.db//.Téléchargeable <html><a href = "https://webge.fr/doc/tnsi/tp/BDD/TNSI_TP1_BDD_SQLite_VSCode_corr.zip" target="_blank" title="webge.fr">ici</a></html> pour tester les exemples</callout>+<callout type="primary" icon="true">Le paragraphe "Programmation" fait référence au projet VSCode contenant la base //sejour.db//.Téléchargeable <html><a href = "https://webge.fr/doc/tnsi/tp/BDD/TNSI_TP1_BDD_SQLite_VSCode_corr.zip" target="_blank" title="webge.fr"><b>ici</b></a></html> pour tester les exemples</callout>
  
   * **MCD**   * **MCD**
Ligne 25: Ligne 25:
  
 Remarque \\ Remarque \\
-- Chaque client séjourne dans une à plusieurs station \\+- Chaque client séjourne dans une à plusieurs stations \\
 - Chaque station accueille zéro ou plusieurs clients - Chaque station accueille zéro ou plusieurs clients
  
Ligne 34: Ligne 34:
  
 <callout type="warning" title="AVANT de COMMENCER" color="red" icon="true">**SQLITE3** doit être installé sur le PC (voir <html><a href= "https://www.sqlitetutorial.net/download-install-sqlite/" target="_blank">How To Download & Install SQLite Tools</a></html>). L'<html><a href="https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&ssr=false#overview" target="_blank">extension SQLite</a></html> doit être installée dans VSCode.</callout> \\ <callout type="warning" title="AVANT de COMMENCER" color="red" icon="true">**SQLITE3** doit être installé sur le PC (voir <html><a href= "https://www.sqlitetutorial.net/download-install-sqlite/" target="_blank">How To Download & Install SQLite Tools</a></html>). L'<html><a href="https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&ssr=false#overview" target="_blank">extension SQLite</a></html> doit être installée dans VSCode.</callout> \\
 +
  
 ====2. Programmation ==== ====2. Programmation ====
Ligne 46: Ligne 47:
  
 === 2.2 Ouvrir la base dans l'explorateur Sqlite === === 2.2 Ouvrir la base dans l'explorateur Sqlite ===
- 
 //Exemple// : sélection de sejours.db //Exemple// : sélection de sejours.db
 {{ :informatique:bdd:sqlitevs2.png?nolink|}} {{ :informatique:bdd:sqlitevs2.png?nolink|}}
Ligne 52: Ligne 52:
  
 === 2.3 Se connecter à la base === === 2.3 Se connecter à la base ===
-  - Cliquer sur {{:info:bdd:sqlitechoix.png?nolink|}} dans la barre d'état et sélectionner **SQLite**. \\+  - Dans un **nouveau projet**, cliquer sur {{:info:bdd:sqlitechoix.png?nolink|}} 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 {{:info:bdd:sqlitechoix2.png?nolink|}} et sélectionner la base à utiliser (Ex : //sejour.db//). \\ \\   - Cliquer sur {{:info:bdd:sqlitechoix2.png?nolink|}} et sélectionner la base à utiliser (Ex : //sejour.db//). \\ \\
 {{ :web:createtable.png?nolink|}} {{ :web:createtable.png?nolink|}}
 === 2.4 Créer une table === === 2.4 Créer une table ===
   * **Ressource** : <html><a href="https://www.sqlitetutorial.net/sqlite-create-table/" target="_blank">SQLITE tutorial - CREATE TABLE</a></html>   * **Ressource** : <html><a href="https://www.sqlitetutorial.net/sqlite-create-table/" target="_blank">SQLITE tutorial - CREATE TABLE</a></html>
 +
 <callout type="warning" icon="true">Contrairement à la norme SQL et aux autres systèmes de base de données,  <callout type="warning" icon="true">Contrairement à la norme SQL et aux autres systèmes de base de données, 
 seulement trois modifications sont possibles:\\ seulement trois modifications sont possibles:\\
Ligne 63: Ligne 64:
 - **Ajouter une nouvelle colonne** à une table.\\ - **Ajouter une nouvelle colonne** à une table.\\
 En dehors de ces deux possibilités, **la table devra être reconstruite**. **Le En dehors de ces deux possibilités, **la table devra être reconstruite**. **Le
-nom des attributs doit donc être choisi avec soin**.</callout>+nom des attributs doit donc être choisi avec soin**. 
 +</callout>
  
 {{ :info:bdd:sejour2.png?nolink|}} {{ :info:bdd:sejour2.png?nolink|}}
-  - Faire un clic droit sur le nom de la base dans **SQLITE EXPLORER** et sélectionner **New Query**.  +  - Faire un clic droit sur le nom de la base dans **SQLITE EXPLORER** et sélectionner **New Query**. \\ 
-    * Une nouvelle page avec l'extension .sql s'ouvre dans l'éditeur. +    * Une nouvelle page avec l'extension .sql s'ouvre dans l'éditeur. \\ 
-    * L'enregistrer avec le nom //creationtables.sql// +    * L'enregistrer avec le nom //creation.sql//Les requêtes SQL de création des tables seront sauvegardées dans ce fichier. \\ 
-  - Nous allons placer les requêtes SQL de création des tables dans ce fichier. \\ Entrer la requête ci-dessous dans le fichier //creationtables.sql//.{{ :web:infosql.png?nolink|}}<code sql *.sql>+    * Entrer la requête ci-dessous dans le fichier //creation.sql//. {{ :web:infosql.png?nolink|}}<code sql *.sql>
 CREATE TABLE clients CREATE TABLE clients
 ( (
-    id INTEGER PRIMARY KEY,+    id INTEGER PRIMARY KEY, -- alias de rowid
     nom VARCHAR(50),     nom VARCHAR(50),
     prenom VARCHAR(50),      prenom VARCHAR(50), 
Ligne 79: Ligne 81:
     solde INT     solde INT
 ); );
-</code>{{ :info:bdd:sejour5.png?nolink|}} +</code> 
-  - 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éé. {{ :info:bdd:sejour3.png?nolink&600 |}}+  - 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éé. {{ :info:bdd:sejour5.png?nolink|}} {{ :info:bdd:sejour3.png?nolink&600 |}}
   - Rafraîchir la base en cliquant sur l'icône {{:info:bdd:sejour4.png?nolink|}} dans **SQLITE EXPLORER** pour voir apparaître la table //clients//.   - Rafraîchir la base en cliquant sur l'icône {{:info:bdd:sejour4.png?nolink|}} dans **SQLITE EXPLORER** pour voir apparaître la table //clients//.
    
Ligne 86: Ligne 88:
  
 === 2.5 Supprimer une table === === 2.5 Supprimer une table ===
-<callout type="warning" icon="true">**DROP TABLE** //nomtable//;</callout> \\ +<callout type="warning" icon="true">**DROP TABLE IF EXISTS** //nomtable//;</callout>   
 + 
 +<html><p style="color:red">Poursuivre les modifications ici</p</html> 
 +\\
 === 2.6 Ajouter et modifier des données dans une table === === 2.6 Ajouter et modifier des données dans une table ===
 {{ :web:insertinto.png?nolink|}} {{ :web:insertinto.png?nolink|}}
Ligne 147: Ligne 152:
 DELETE FROM Clients  DELETE FROM Clients 
 WHERE Id>2 -- Supprime la troisième ligne dans la table WHERE Id>2 -- Supprime la troisième ligne dans la table
-</code>+</code> \\
  
 === 2.7 Interroger la base === === 2.7 Interroger la base ===
Ligne 237: Ligne 242:
 </code> </code>
  
-==== 3. Contraintes d'intégrité ====+\\ 
 + 
 +==== 3. Contraintes d'intégrité ==== 
   * **Ressources** : <html><a href="https://www.sqlitetutorial.net/sqlite-foreign-key/" target="_blank">SQLITE tutorial - FOREIGN KEY</a> et <a href="https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&ssr=false#overview" target="_blank">Extension VSCode SQLite</a></html>   * **Ressources** : <html><a href="https://www.sqlitetutorial.net/sqlite-foreign-key/" target="_blank">SQLITE tutorial - FOREIGN KEY</a> et <a href="https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&ssr=false#overview" target="_blank">Extension VSCode SQLite</a></html>
-<html><p style="color:red">A faire</p</html>+ 
 + 
 +<callout type="info" icon="true">Les contraintes d’intégrité dans un SGBD sont des règles imposées aux données pour garantir leur cohérence, leur validité et leur fiabilité. Elles forment la “garde‑fou” logique d’une base relationnelle.</callout> 
 + 
 +===🧱 3.1 Intégrité de domaine === 
 +  * **Objectif** : empêcher des valeurs absurdes ou incohérentes. 
 + 
 +<callout type="warning" color="orange" icon="true">Chaque attribut doit respecter un type, un format et éventuellement un ensemble de valeurs autorisées.</callout> 
 + 
 +<code *.sql> 
 +age INTEGER CHECK(age >= 0) 
 +email TEXT NOT NULL 
 +statut CHECK(statut IN ('actif','inactif')) 
 +</code> 
 + 
 +\\ 
 + 
 +===🔑 3.2 Intégrité de clé=== 
 +  * **Objectif** Garantir l’unicité et l’identification des tuples. 
 + 
 +  * **Clé primaire (PRIMARY KEY)** \\ 
 +    * Identifie chaque ligne de manière unique 
 +    * Ne peut pas être NULL 
 + 
 +  * **Clé candidate** \\ 
 +    * Attribut(s) pouvant servir de clé primaire 
 + 
 +  * **Clé unique (UNIQUE)** \\ 
 +    * Valeurs distinctes mais peut accepter NULL 
 + 
 +\\ 
 + 
 +===🔗 3.3 Intégrité référentielle === 
 +  * **Objectif** : : éviter les “orphelins” et maintenir la cohérence des relations. 
 + 
 +<callout type="warning" color="orange" icon="true">Elle impose que la valeur existe dans la table référencée.</callout> 
 + 
 +<code *.sql> 
 +ON DELETE RESTRICT → interdit la suppression si des enfants existent 
 +ON DELETE CASCADE → supprime aussi les enfants 
 +ON UPDATE CASCADE → met à jour les clés étrangères 
 +SET NULL SET DEFAULT 
 +</code> 
 + 
 +\\ 
 + 
 +===✔️ 3.4 Contraintes CHECK === 
 +  * **Objectif** : permettent d’exprimer des règles métier plus complexes. 
 +<code *.sql> 
 +CHECK(salaire > 0) 
 +CHECK(date_fin >= date_debut) 
 +</code> 
 + 
 +\\ 
 + 
 +===📦 3.5 Contraintes d’unicité et de non nullité === 
 +   * **UNIQUE** \\ Empêche les doublons (ex : numéro de sécurité sociale) 
 + 
 +   * **NOT NULL** \\ Oblige la présence d’une valeur (ex : nom d’un client) 
 + 
 +\\ 
 + 
 +===🧮 3.6 Intégrité transactionnelle === 
 +<callout type="info" color="blue" icon="true">Assurée par les propriétés ACID</callout> 
 +^ Propriété   ^ Rôle                                 ^ 
 +| Atomicité   | Tout ou rien                         | 
 +| Cohérence   | Respect des contraintes avant/après 
 +| Isolation   | Transactions indépendantes           | 
 +| Durabilité  | Les données validées persistent      | 
 + 
 +  * **Exemple** 
 +{{ :info:bdd:exemple_integrite.png?nolink |}}
  • info/bdd/sqlitevscode.1709968605.txt.gz
  • Dernière modification : 2025/06/19 19:24
  • (modification externe)