web-dev-qa-db-fra.com

Existe-t-il un équivalent de SQLite au DESCRIBE [table] de MySQL?

Je commence tout juste à apprendre SQLite . Ce serait bien de pouvoir voir les détails d'une table, comme le DESCRIBE [table] de MySQL. PRAGMA table_info [table] ne suffit pas, car il ne contient que des informations de base (par exemple, il n'affiche pas si une colonne est un champ ou non). SQLite a-t-il un moyen de faire cela?

416
Matthew

L'utilitaire de ligne de commande SQLite a une commande .schema TABLENAME qui affiche les instructions de création.

540
Ned Batchelder
PRAGMA table_info([tablename]);
277
Strater

Vous recherchez le SQL utilisé pour générer une table? Pour cela, vous pouvez interroger la table sqlite_master _ :

sqlite> CREATE TABLE foo (bar INT, quux TEXT);
sqlite> SELECT * FROM sqlite_master;
table|foo|foo|2|CREATE TABLE foo (bar INT, quux TEXT)
sqlite> SELECT sql FROM sqlite_master WHERE name = 'foo';
CREATE TABLE foo (bar INT, quux TEXT)
112
Mark Rushakoff

Pour voir toutes les tables:

.tables

Pour voir une table particulière:

.schema [tablename]
52
Ross Snyder

Pour éviter que les gens soient trompés par certains des commentaires aux autres réponses:

  1. Si .schema ou query from sqlite_master ne donne aucun résultat, cela signifie qu'un tablename non existant, par ex. cela peut aussi être causé par un ; à la fin de .schema, .tables, ... ou simplement parce que la table n'existe pas vraiment. Il est très peu probable que .schema ne fonctionne pas et un rapport de bogue devrait alors être déposé dans le projet sqlite.

... .schema ne peut être utilisé qu'à partir d'une ligne de commande; les commandes ci-dessus> peuvent être exécutées sous forme de requête via une bibliothèque (Python, C #, etc.). - Mark Rushakoff 25 Juillet '10 à 21:09

  1. 'ne peut être utilisé qu'à partir d'une ligne de commande' peut induire les gens en erreur. Presque tous les langages de programmation (probablement tous?) Peuvent appeler d'autres programmes/commandes. Par conséquent, le commentaire cité a la malchance d’appeler un autre programme, dans ce cas, sqlite a plus de chances d’être pris en charge que le langage fournit une wrapper/library pour chaque programme (qui est enclin à être incomplet par la nature même de la masse de programmes existants, mais est également contre-agissant single-source principle, compliquant maintenance, favorisant le chaos de données dans le monde).
6
Radagast

Si vous utilisez un outil graphique. Il vous montre le schéma juste à côté du nom de la table. Dans le cas de Navigateur de base de données Pour SQLite , cliquez pour ouvrir la base de données (coin supérieur droit), accédez à et ouvrez votre base de données, vous verrez les informations renseignées dans le tableau ci-dessous.

enter image description here

faites un clic droit sur l’enregistrement/nom_table, cliquez sur , copiez la déclaration de création et le tour est joué.

J'espère que cela a aidé certains débutants qui ont échoué à travailler avec la ligne de commande.

0
Mujeeb Ishaque