Démarrer avec SQLite3 – Commandes de base

SQLite est une bibliothèque C qui implémente un moteur de base de données SQL. Il s’agit d’un système de gestion de bases de données relationnelles (ou SGBDR). La plupart des bases de données SQL fonctionnent avec le modèle client/serveur. Prenons l’exemple de MySQL. Pour saisir et recevoir des données d’une base de données MySQL, vous devez envoyer une requête au serveur MySQL, qui, à sa réception, vous fournira la réponse appropriée. Contrairement à MySQL, les bases de données SQLite sont exploitées directement à partir du disque. Il n’est pas nécessaire de créer des requêtes au serveur.

SQLite370.svg (Custom)

Installation

Nous opérerons sur notre base de données en utilisant l’interface en ligne de commande sqlite31(CLI). Nous travaillerons sous la plateforme Linux. Les CLI sqlite3 pour MAC OS et Windows sont exactement les mêmes, mais par souci de cohérence, il est recommandé d’installer Homestead Improved – une VM légère exécutable en 5 minutes qui gardera votre ordinateur propre de tout logiciel supplémentaire inutile.

Pour l’installer sur Homestead Improved (ou tout autre OS basé sur Debian comme Ubuntu), exécutez ce qui suit :

sudo apt-get install sqlite3 libsqlite3-dev

Ceci installera sqlite3. Pour l’installer sur d’autres plateformes, suivez leurs instructions officielles. Une fois qu’il est installé, nous pouvons démarrer la session. Ouvrez le Terminal/Ligne de commande et entrez la commande sqlite3. Vous devez voir quelque chose de ce genre :

CLI sqlite3

La deuxième ligne vous indique de saisir .help pour obtenir des instructions. Il y a une invite qui attend que vous tapiez une commande. Alors allez-y et entrez .help. Vous obtiendrez ainsi une liste de métacommandes et leurs descriptions.

Méta-commandes

Les méta-commandes sont utilisées pour définir le format de sortie des tables, examiner les bases de données et pour d’autres opérations administratives. Elles commencent toujours par un point. Même .help est une méta-commande. Vous pouvez parcourir la liste. En voici quelques-unes qui vous seront fréquemment utiles :

Commande Description
.show Affiche les paramètres actuels de divers paramètres
.databases Présentation des noms de bases de données et des fichiers
.quit Quitter le programme sqlite3
.tables Afficher les tables actuelles
.schema Afficher le schéma de la table
.header Afficher ou cacher l’en-tête de la table de sortie
.mode Sélectionner le mode pour le tableau de sortie
.dump Dump de la base de données au format texte SQL

Commandes standard

Passons en revue les commandes standard de sqlite3. Les méta-commandes sont émises pour examiner une base de données. Les commandes SQL standard sont émises pour opérer sur une base de données. Les commandes standard peuvent être classées en trois groupes :

  • Langage de définition des données : Il fournit la structure de stockage et les méthodes d’accès aux données du système de base de données.

    • CREATE
    • ALTER
    • DROP
  • Langage de manipulation des données : Il permet aux utilisateurs de manipuler (ajouter/modifier/supprimer) des données.

    • INSERT
    • UPDATE
    • DELETE
  • Langage de requête de données : Il permet aux utilisateurs de récupérer les données requises dans la base de données.

    • SELECT

Note : SQLite comprend de nombreuses autres commandes standard, dont la liste peut être lue ici. Comme ce tutoriel est une introduction de niveau débutant, nous ne couvrirons que les commandes mentionnées ci-dessus.

Les bases de données SQLite sont des fichiers portables multiplateformes. Elles peuvent être stockées sur divers périphériques de stockage et peuvent être transférées sur différents ordinateurs.

Nous allons apprendre à travailler avec sqlite3 avec notre base de données de section de commentaires. Presque tous les sites web d’aujourd’hui ont une section de commentaires. Pour publier un commentaire, l’utilisateur doit entrer les détails suivants :

  • Nom
  • Email
  • Site web
  • Comment

Sur ces quatre éléments, seule l’URL du site web est facultative. Nous devons également définir une colonne qui numérote les commentaires. Appelons-la post_id.

Nous pouvons définir les types de données des colonnes (attributs) comme suit :

.

Attribut Datype Required
post_id INTEGER
name TEXT
email TEXT
website_url TEXT
commentaire TEXT

Vous pouvez consulter la documentation relative aux différents types de données et classes de stockage fournis dans SQLite3.

SQLite3 utilise le typage manifeste2. La plupart des autres moteurs de base de données, y compris MySQL, utilisent le typage statique.

Maintenant, créons une base de données. Si vous êtes toujours dans le programme sqlite3, quittez-le en entrant .quit à l’invite sqlite. Ensuite, lancez la commande :

sqlite3 comment_section.db

Cela créera un fichier de base de données comment_section.db dans le répertoire de travail actuel.

Note : Si aucun nom de fichier ne suit la commande, sqlite3 crée automatiquement une base de données temporaire. C’est ce qui s’est passé lorsque nous avons saisi la commande unique sqlite3 pour la première fois.

CREER UNE TABLE

Pour stocker les commentaires, nous devons définir une table. Nommons-la . Pour la créer, saisissez l’instruction:

CREATE TABLE comments ( post_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, email TEXT NOT NULL, website_url TEXT NULL, comment TEXT NOT NULL );

NOT NULL s’assure que la valeur particulière n’est pas laissée vide dans un enregistrement. PRIMARY KEY3 et AUTOINCREMENT4 élaborent l’attribut post_id.

Pour vérifier si la table a été créée, émettez la méta commande .tables. Elle affichera le nom de la table .

Créer des commentaires sur la table

Note : Pour obtenir le schéma de la table, entrez .schema comments

Maintenant que la table a été créée, nous devons entrer les données.

INSERER DES RANGS

Supposons qu’un utilisateur ait saisi un commentaire avec les détails:

Name : Shivam MamgainEmail : [email protected] : shivammg.blogspot.comComment : Great tutorial for beginners. 

Pour l’insérer, nous utilisons la commande INSERT.

INSERT INTO comments ( name, email, website_url, comment )VALUES ( 'Shivam Mamgain', '[email protected]','shivammg.blogspot.com', 'Great tutorial for beginners.' );

Je n’ai pas fourni la valeur de post_id, même si elle est définie comme NOT NULL. Le fait est qu’il n’est pas nécessaire car c’est un champ AUTOINCREMENT.

Entrez quelques lignes supplémentaires dans le tableau pour vous entraîner.

SELECT

Nous avons appris à insérer des données dans le tableau. Pour récupérer des données, nous utilisons la commande SELECT.

SELECT post_id, name, email, website_url, commentFROM comments;

L’instruction ci-dessus peut également être écrite comme:

SELECT *FROM comments;

Ceci récupérera toutes les lignes du tableau. Le tableau résultant pourrait sembler obfusqué sans en-têtes et sans séparation appropriée entre les colonnes. Pour y remédier, nous devons modifier certains paramètres.

Entrez .show

show

Pour afficher les attributs des colonnes, entrez .headers ON.
Pour afficher les lignes dans le style de la colonne, saisissez .mode column.
Entrez à nouveau l’instruction SELECT.

Affichage en colonnes

Note : sélectionnez le mode d’affichage qui vous convient. Saisissez .help et recherchez .mode. Vous verrez s’afficher les différentes valeurs que peut avoir .mode.

Mise à jour

Supposons que l’email de ‘Shivam Mamgain’ a été changé en ‘[email protected]’ . Nous devons mettre à jour la ligne. Émettez l’instruction suivante :

UPDATE commentsSET email = '[email protected]'WHERE name = 'Shivam Mamgain';

Cela changera l’attribut email pour le nom ‘Shivam Mamgain’ en ‘[email protected]’.

Note : L’attribut nom n’est pas unique, donc l’instruction ci-dessus peut affecter plus d’une ligne. Pour chaque nom = ‘Shivam Mamgain’, l’email sera défini à ‘[email protected]’. Pour mettre à jour une ligne particulière, utilisez l’attribut post_id. Il est défini comme un PRIMARY KEY et sera toujours unique.

DELETE

Pour SUPPRIMER une ou plusieurs lignes de la table, nous pouvons utiliser la condition WHERE, tout comme dans UPDATE.

Supposons que nous devons supprimer une ligne avec post_id 9. Nous pouvons entrer la commande:

DELETE FROM commentsWHERE post_id = 9;

Nous avons besoin de supprimer tous les commentaires qui sont postés par ‘Bart Simpson’ et ‘Homer Simpson’. Nous pouvons exécuter la requête suivante :

DELETE FROM commentsWHERE name = 'Bart Simpson' OR name = 'Homer Simpson';

ALTER

On peut ajouter de nouvelles colonnes à une table en utilisant ALTER. Sur le web, la plupart des gens n’utilisent pas forcément leur vrai nom. Ils travaillent généralement sous un alias, un nom d’utilisateur. Nous avons besoin d’ajouter une colonne nom d’utilisateur à notre table. La requête ci-dessous accomplit la tâche:

ALTER TABLE commentsADD COLUMN username TEXT;

Cette requête créera une colonne nom d’utilisateur dans et définira son type de données à TEXTE. La valeur de username pour les lignes déjà insérées sera définie à NULL.

La commande ALTER est également utilisée pour renommer les tables. Changeons la table en Coms.

ALTER TABLE commentsRENAME TO Coms;

DROP

Supprimer une table signifie supprimer la table entière. La table Coms peut être supprimée avec la requête suivante:

DROP TABLE Coms;

Conclusion

SQLite3 offre de nombreux avantages par rapport aux autres bases de données relationnelles. Certaines de ses caractéristiques distinctives peuvent être lues ici. La plupart des frameworks PHP et de nombreux autres frameworks web, notamment Django, Ruby on Rails et web2py, ont SQLite3 comme base de données par défaut. Sa légèreté la rend préférable pour le stockage local dans les navigateurs web. Elle est également utilisée comme stockage client pour de nombreux systèmes d’exploitation, notamment Android et Windows Phone 8. C’est l’un des moteurs de base de données les plus largement déployés.

Dans le tutoriel, nous avons interagi avec un système de base de données SQLite. Il existe des applications graphiques pour faire la même chose, sans avoir à apprendre des commandes. Deux de ces applications sont le DB Browser for SQLite et SQLiteStudio. Vous pouvez également vous exercer à SQL en ligne sur SQL Fiddle.

Ce guide a couvert les bases pour vous permettre de démarrer avec SQLite3. J’espère qu’il vous donnera envie d’aller plus loin. Vous pouvez facilement l’intégrer à PHP en utilisant la classe commune PDO.

  1. SQLite version 3
  2. Le typage manifeste libère de nombreuses restrictions sur le type de valeur qui peut être saisi pour un champ particulier. Vous pouvez ainsi saisir n’importe quelle valeur de n’importe quel type de données dans une colonne, indépendamment du type déclaré de la colonne (sauf pour INTEGER PRIMARY KEY). Vous n’êtes même pas tenu de fournir la taille maximale des types de données. Une fois que l’utilisateur a saisi les données, SQLite détermine la taille dont il aurait besoin sur le disque. Pour avoir un aperçu plus approfondi, reportez-vous à Datatypes in SQLite3.
  3. Un PRIMARY KEY peut définir de manière unique une ligne particulière. Un tel attribut doit toujours être défini comme NOT NULL.
  4. AUTOINCREMENT définit automatiquement l’attribut correspondant de l’enregistrement actuellement inséré à un nombre qui est un plus la valeur de AUTOINCREMENT (sauf si spécifié). Les attributs définis par AUTOINCREMENT doivent nécessairement être INTEGERS.

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *