🧚 Écoute ! Beekeeper Studio est une interface graphique SQLite rapide, moderne et open source Télécharger
16 juin 2024 Par Matthew Rathbone

Introduction

SQLite est un moteur de base de données populaire, réputé pour sa simplicité et son efficacité dans la gestion des bases de données relationnelles. C’est un moteur de base de données SQL embarqué, ce qui signifie qu’il est souvent utilisé directement au sein des applications, offrant une solution légère sans nécessiter de processus serveur séparé. Dans ce tutoriel, on va voir comment afficher la liste des tables d’une base de données SQLite, une tâche courante quand tu découvres la structure d’une base existante ou quand tu débogues.

Prérequis

Tu dois avoir SQLite installé et accessible. Tu peux interagir avec les bases de données SQLite de différentes façons, par exemple via la ligne de commande, un script Python ou des outils graphiques comme Beekeeper Studio. Ce guide utilise l’outil en ligne de commande SQLite, disponible partout.

Accéder à la base de données SQLite

Pour commencer, ouvre ton terminal ou ton invite de commandes et accède à ta base de données SQLite avec l’outil en ligne de commande SQLite. La commande générale pour commencer à interagir avec ta base est :

sqlite3 your_database_file.db

Remplace « your_database_file.db » par le chemin vers ton fichier de base de données SQLite.

Lister les tables avec la commande .tables

SQLite propose la commande .tables, une méthode simple pour lister toutes les tables disponibles dans ta base de données active.

Dans ton shell SQLite en ligne de commande, saisis ceci :

.tables

En exécutant cette commande, SQLite renvoie la liste de tous les noms de tables de ta base de données actuelle.

Résultat attendu : (avec la base d’exemple « sakila.db »)

actor                   experiments             payment
address                 film                    rental
category                film_actor              sales_by_film_category
city                    film_category           sales_by_store
country                 film_list               staff
customer                film_text               staff_list
customer_list           inventory               store
events                  language

Comment fonctionne la commande .tables ?

SQLite demande à la base de données de renvoyer les noms de toutes les tables et vues des bases principale et attachées. Pour cela, il exécute en coulisses une commande SELECT sur la table sqlite_master.

Interroger la table sqlite_master

Pour plus de contrôle, tu peux interroger directement la table « sqlite_master », qui stocke les métadonnées de la base, y compris les définitions des tables.

Par exemple :

SELECT name FROM sqlite_master WHERE type='table';

Cette commande SQL sélectionne tous les enregistrements de la colonne name de la table sqlite_master dont le type vaut « table ».

Résultat attendu : (avec la base d’exemple « sakila.db »)

---------------
actor
sqlite_sequence
country
city
address
language
category
customer
film
film_actor
film_category
film_text
inventory
staff
store
payment
rental
experiments
events

Afficher le schéma d’une table avec la commande .schema

Pour examiner la structure ou le « schéma » de ta table (c’est-à-dire ses colonnes et leurs types de données), SQLite fournit la commande .schema :

.schema your_table_name

Résultat attendu : (avec la table « actor » de la base d’exemple « sakila.db »)

CREATE TABLE actor (
  actor_id integer PRIMARY KEY AUTOINCREMENT NOT NULL,
  first_name VARCHAR(45) NOT NULL,
  last_name VARCHAR(45) NOT NULL,
  last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
  , "email_address" VARCHAR(255) NULL);
CREATE INDEX idx_actor_last_name ON actor(last_name)
;
CREATE TRIGGER actor_trigger_ai AFTER INSERT ON actor
 BEGIN
  UPDATE actor SET last_update = DATETIME('NOW')  WHERE rowid = new.rowid;
 END;
CREATE TRIGGER actor_trigger_au AFTER UPDATE ON actor
 BEGIN
  UPDATE actor SET last_update = DATETIME('NOW')  WHERE rowid = new.rowid;
 END;

Remplace « your_table_name » par le nom de ta table.

Cette commande renvoie l’instruction CREATE TABLE utilisée pour créer la table dans ta base de données.

Utiliser une instruction SQL SELECT

Tu peux aussi récupérer le schéma avec une instruction SELECT sur la table sqlite_master :

SELECT sql FROM sqlite_master WHERE name = 'your_table_name';

Cette commande renvoie la même instruction CREATE TABLE que la commande .schema, sans les instructions « INDEX » et « TRIGGER ».

Utiliser la commande PRAGMA pour obtenir des infos sur une table

Une autre approche dans SQLite consiste à utiliser la commande PRAGMA, qui donne accès à différentes caractéristiques de la base SQLite. Une commande PRAGMA utile est « table_info », qui permet d’obtenir des informations sur les colonnes d’une table.

Même si « table_info » ne liste pas toutes les tables, tu peux l’utiliser avec les commandes de listage pour comprendre la structure des tables dès que tu as trouvé leurs noms.

Exemple :

PRAGMA table_info('actor');

Résultat attendu : (avec la table « actor » de la base d’exemple « sakila.db »)

cid  name           type          notnull  dflt_value         pk
---  -------------  ------------  -------  -----------------  --
0    actor_id       INTEGER       1                           1
1    first_name     VARCHAR(45)   1                           0
2    last_name      VARCHAR(45)   1                           0
3    last_update    TIMESTAMP     1        CURRENT_TIMESTAMP  0
4    email_address  VARCHAR(255)  0                           0

Chaque ligne représente une colonne de la table « actor », avec respectivement son « cid », son « name », son « type », son statut « not null », sa « valeur par défaut » et l’information de « clé primaire ».

Conclusion

Lister les tables dans SQLite est une compétence fondamentale pour gérer et inspecter une base de données. Que tu utilises la commande .tables pour une liste rapide, que tu interroges la table sqlite_master pour une approche plus programmatique, ou que tu utilises des instructions PRAGMA pour obtenir des informations détaillées sur la structure des tables, SQLite offre toute une palette d’outils pour comprendre ta base de données et interagir efficacement avec elle.

Comprendre et écrire des commandes SQL pour afficher tes tables SQLite peut être gratifiant, mais aussi long et complexe, surtout avec de très grosses bases de données.

Beekeeper Studio offre une interface conviviale pour les tables de ta base de données, ce qui rend la navigation entre de nombreuses tables bien plus pratique.

En plus, pour récupérer le schéma d’une table, il suffit de cliquer sur son nom et le schéma s’affiche dans un format bien structuré.

Beekeeper Studio est une interface graphique SQLite gratuite et open source

C’est exactement ce qu’il me fallait. L’interface est réactive et épurée, fonctionne comme je le veux et comme je m’y attends, et fait tout simplement le job. C’est l’outil parfait pour travailler sur mes bases de données SQLite. - Andy

Beekeeper Studio est un client SQLite rapide, intuitif et facile à utiliser. Il prend aussi en charge plein d’autres bases de données et fonctionne parfaitement sur Windows, Mac et Linux.

La version Linux de Beekeeper est 100% complète : rien de bâclé, aucun compromis sur les fonctionnalités.

Ce que les utilisateurs de SQLite disent de Beekeeper Studio

Tagser Programmeur en formation (sans titre ni emploi)

Je n’avais jamais vraiment compris comment fonctionne la conception des modèles avant de l’utiliser pour interroger et visualiser ma base de données ! Je lui suis reconnaissant pour mon parcours. Je le recommande à toute personne qui apprend Django + sqlite, puisque c’est la seule chose pour laquelle je l’ai utilisé jusqu’ici.

George Wright

Deux choses essentielles. D’abord, la connectivité. Je n’ai plus besoin d’utiliser DB Browser pour SQLite, MySQL Workbench pour MySQL, psql pour PostgreSQL. Beekeeper fonctionne avec tous. Ensuite : l’IA. La fonctionnalité IA transforme l’anglais en SQL.

Prêt à améliorer ton workflow SQLite ?

download Télécharger gratuitement