Comment voir la structure de la table dans SQLite comme desc
l'était dans Oracle?
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 tablesIl 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 ).
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
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
.schema TableName
Où TableName est le nom de la table
Vous devriez pouvoir voir le schéma en lançant
.schema <table>
Vous obtiendrez la structure en tapant la commande:
.schema <tableName>
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();
?>
Vous pouvez utiliser le module complémentaire Firefox appelé SQLite Manager pour afficher clairement la structure de la base de données.