SQLite Créer, modifier, supprimer une table avec des exemples
⚡ Résumé intelligent
SQLite La gestion des tables repose sur trois commandes de définition de données : CREATE TABLE pour définir une table, ALTER TABLE pour la renommer ou ajouter et modifier des colonnes, et DROP TABLE pour la supprimer complètement de la base de données.
Les sections ci-dessous expliquent comment créer des tables, modifier leur structure et supprimer des tables. SQLite3 avec des exemples, couvrant les commandes CREATE TABLE, ALTER TABLE et DROP TABLE.
SQLite Créer une table
Syntaxe
Vous trouverez ci-dessous la syntaxe de l'instruction CREATE TABLE.
CREATE TABLE table_name( column1 datatype, column1 datatype );
Pour créer une table, vous devez utiliser la requête « CREATE TABLE » comme suit :
CREATE TABLE guru99 ( Id Int, Name Varchar );
Entre les deux parenthèses après le nom de la table, vous définissez les colonnes des tables, chaque colonne doit avoir les propriétés suivantes :
- Un nom, le nom de la colonne, il doit être unique parmi les colonnes de la table.
- Un type de données – le type de données de la colonne.
- Les contraintes de colonnes optionnelles seront expliquées dans les sections suivantes de ce tutoriel.
SQLite CRÉER UNE TABLE SI ELLE N'EXISTE PAS
Lorsqu'un script s'exécute plusieurs fois, une simple instruction CREATE TABLE échoue si la table existe déjà et s'arrête avec une erreur. SQLite Ce problème est résolu grâce à la clause optionnelle IF NOT EXISTS, qui crée la table uniquement lorsqu'elle est absente et ne fait rien lorsqu'elle existe déjà.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
L'instruction ci-dessus ne génère jamais l'erreur « la table existe déjà », ce qui permet de la conserver sans risque en tête d'un script d'installation ou de migration.
Le même principe s'applique en sens inverse lors de la suppression d'une table. L'ajout de IF EXISTS à DROP TABLE évite une erreur lorsque la table a déjà été supprimée.
DROP TABLE IF EXISTS guru99;
Ces deux clauses sont courantes dans les scripts automatisés, car elles permettent d'exécuter le même fichier à plusieurs reprises sans nettoyage manuel entre les exécutions.
Drop table
Pour supprimer une table, utilisez la commande « DROP TABLE » suivie du nom de la table, comme suit :
DROP TABLE guru99;
Alter table
Vous pouvez utiliser la commande « ALTER TABLE » pour renommer une table comme suit :
ALTER TABLE guru99 RENAME TO guru100;
Pour vérifier que le nom de la table a bien été modifié, vous pouvez utiliser la commande « .tables » pour afficher la liste des tables. Le nom de la table devrait maintenant être modifié comme suit :
Comme vous pouvez le constater, le nom de la table « guru99 » est changé en « guru100 » après la commande « alter table ».
SQLite ajouter des colonnes - Utilisation de la commande ALTER TABLE
Vous pouvez également utiliser la commande « ALTER TABLE » pour ajouter des colonnes :
ALTER TABLE guru100 ADD COLUMN Age INT;
Cela modifiera la table « guru100 » et y ajoutera une nouvelle colonne « Âge ».
Si aucun résultat ne s'affiche, cela signifie que la requête a réussi et que la colonne a été ajoutée. L'absence de résultat signifie que le curseur se positionnera après « sqlite> » sans texte, comme ceci :
Pour vérifier que la colonne a bien été ajoutée, vous pouvez utiliser la commande « .schema guru100 ». Celle-ci affichera la définition de la table et vous devriez y voir la nouvelle colonne que nous venons d'ajouter.
SQLite ALTER TABLE : Renommer et supprimer une colonne
Outre l'ajout d'une colonne, les versions modernes de SQLite Il est également possible de renommer une seule colonne et d'en supprimer une. La fonction de renommage de colonne est disponible depuis [date manquante]. SQLite 3.25, et cela met à jour le nom à l'intérieur de la définition de la table ainsi que dans chaque index, déclencheur et vue qui fait référence à la colonne.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
Pour supprimer une colonne, SQLite 3.35 et versions ultérieures prennent en charge une clause DROP COLUMN directe :
ALTER TABLE guru100 DROP COLUMN Age;
Il est impossible de supprimer une colonne qui fait partie d'une clé primaire, d'une contrainte d'unicité ou d'un index. SQLite Pour les versions dépourvues de l'option DROP COLUMN, la solution classique consiste à créer une nouvelle table avec les colonnes souhaitées, à copier les lignes, à supprimer l'ancienne table, puis à renommer la nouvelle.
Comment copier un tableau dans SQLite Utilisation de CREATE TABLE AS SELECT
Il arrive qu'on ait besoin d'une copie d'une table, soit comme sauvegarde avant une modification risquée, soit comme point de départ pour une nouvelle table. SQLite construit cela en une seule étape avec CREATE TABLE AS SELECT, qui crée une nouvelle table dont les colonnes proviennent d'une requête et la remplit avec les lignes renvoyées par cette requête.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
La nouvelle table « guru100_backup » reçoit les mêmes colonnes et toutes les lignes de « guru100 ». Pour ne copier que certaines lignes, ajoutez une clause WHERE à la requête SELECT :
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
Il est important de noter que la commande CREATE TABLE AS SELECT copie les noms, les types et les données des colonnes, mais pas les clés primaires, les autres contraintes ni les index. Vous devrez les ajouter vous-même à la nouvelle table si celle-ci doit respecter les mêmes règles que la table d'origine.
SQLite Insérer une valeur dans un tableau
Pour insérer des valeurs dans une table, nous utilisons l'instruction « INSERT INTO » comme suit :
INSERT INTO Tablename(colname1, colname2, ….) VALUES(valu1, value2, ….);
Vous pouvez omettre les noms de colonnes après le nom de la table et l'écrire comme suit :
INSERT INTO Tablename VALUES(value1, value2, ….);
Dans ce cas, où vous oubliez les noms de colonnes des tableaux, le nombre de valeurs insérées doit être exactement le même nombre de colonnes du tableau. Ensuite chaque valeur sera insérée dans la colonne de correspondance. Par exemple, pour l'instruction d'insertion suivante :
INSERT INTO guru100 VALUES(1, 'Mike', 25);
Le résultat de cette déclaration sera le suivant :
- La valeur 1 sera insérée dans la colonne « id ».
- La valeur « Mike » sera insérée dans la colonne « Nom », et
- La valeur 25 sera insérée dans la colonne « Âge ».
INSERT… Instruction DEFAULT VALUES
Vous pouvez remplir le tableau avec les valeurs par défaut des colonnes en une seule fois, comme suit :
INSERT INTO Tablename DEFAULT VALUES;
Si une colonne n'accepte ni les valeurs nulles ni les valeurs par défaut, vous obtiendrez une erreur indiquant que la contrainte NOT NULL a été violée pour cette colonne. Voici un exemple :






