web-dev-qa-db-fra.com

Comment voir la structure d'une table dans SQLite?

Comment voir la structure de la table dans SQLite comme desc l'était dans Oracle?

239
Ali

Appelez l'utilitaire sqlite3 sur le fichier de base de données et utilisez ses commandes à points spéciales:

  • .tables listera les tables
  • .schema [tablename] affichera la ou les instructions CREATE pour une ou plusieurs tables

Il existe de nombreuses autres commandes internes utiles - voir la documentation à http://www.sqlite.org/sqlite.html , section Commandes spéciales de sqlite3 .

Exemple:

sqlite> entropy:~/Library/Mail>sqlite3 Envelope\ Index
SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
addresses              ews_folders            subjects
alarms                 feeds                  threads
associations           mailboxes              todo_notes
attachments            messages               todos
calendars              properties             todos_deleted_log
events                 recipients             todos_server_snapshot
sqlite> .schema alarms
CREATE TABLE alarms (ROWID INTEGER PRIMARY KEY AUTOINCREMENT, alarm_id,
                     todo INTEGER, flags INTEGER, offset_days INTEGER,
                     reminder_date INTEGER, time INTEGER, argument,
                     unrecognized_data BLOB);
CREATE INDEX alarm_id_index ON alarms(alarm_id);
CREATE INDEX alarm_todo_index ON alarms(todo);

Notez également que SQLite enregistre le schéma et toutes les informations relatives aux tables de la base de données elle-même, dans une table magique nommée sqlite_master , et qu'il est également possible d'exécuter des requêtes SQL normales sur cette table. Par exemple, le lien de documentation ci-dessus montre comment dériver le comportement des commandes .schema et .tables à l'aide de commandes SQL normales (voir la section: Interrogation du schéma de base de données ).

310
metamatt
PRAGMA table_info(table_name);

Cela fonctionnera à la fois en ligne de commande et lorsqu'il sera exécuté sur une base de données connectée.

Un lien pour plus de détails et exemple. merci commande SQLite Pragma

366
AnonGeek

Vous pouvez interroger sqlite_master

SELECT sql FROM sqlite_master WHERE name='foo';

qui retournera une instruction create table SQL, par exemple:

$ sqlite3 mydb.sqlite
sqlite> create table foo (id int primary key, name varchar(10));
sqlite> select sql from sqlite_master where name='foo';
CREATE TABLE foo (id int primary key, name varchar(10))

sqlite> .schema foo
CREATE TABLE foo (id int primary key, name varchar(10));

sqlite> pragma table_info(foo)
0|id|int|0||1
1|name|varchar(10)|0||0
37
Micha Wiedenmann

.schema TableName

Où TableName est le nom de la table

15
Abi

Vous devriez pouvoir voir le schéma en lançant

.schema <table>
13
Costa Walcott

Vous obtiendrez la structure en tapant la commande:

.schema <tableName>
11
aTJ

Si vous utilisez PHP, vous pouvez l'obtenir de la manière suivante:

<?php
    $dbname = 'base.db';
    $db = new SQLite3($dbname);
    $sturturequery = $db->query("SELECT sql FROM sqlite_master WHERE name='foo'");

    $table = $sturturequery->fetchArray();
    echo '<pre>' . $table['sql'] . '</pre>';

    $db->close();
?>
4
Gil

Vous pouvez utiliser le module complémentaire Firefox appelé SQLite Manager pour afficher clairement la structure de la base de données.

0
Jack