Как можно увидеть структуру таблицы в SQLite? [дубликат]
этот вопрос уже есть ответ здесь:
- есть ли эквивалент SQLite для описания MySQL [таблица]? 5 ответов
Как я могу видеть структуру таблицы в SQLite as desc
был в Oracle?
9 ответов
вызов sqlite3
утилита в файле базы данных и используйте ее специальные команды dot:
-
.tables
список таблиц -
.schema [tablename]
покажет оператор(ы) CREATE для таблицы или таблиц
есть много других полезных команд builtin dot -- см. документацию по адресу http://www.sqlite.org/sqlite.html, раздел специальные команды и sqlite3.
пример:
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);
обратите внимание также, что SQLite сохраняет схему и всю информацию о таблицах в самой базе данных в волшебной таблице с именем sqlite_master, а также можно выполнять обычные SQL-запросы к этой таблице. Например, приведенная выше ссылка на документацию показывает, как получить поведение .schema
и .tables
команды, используя обычные команды SQL (см. раздел: запрос к базе данных схема).
PRAGMA table_info(table_name);
Это будет работать как для командной строки, так и при выполнении с подключенной базой данных.
вы можете сделать запрос sqlite_master
SELECT sql FROM sqlite_master WHERE name='foo';
что вернет create table
инструкция SQL, например:
$ 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
Если вы используете PHP, вы можете получить его таким образом:
<?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();
?>
вы можете использовать надстройку Firefox под названием SQLite Manager просмотра структуры базы данных.
я реализовал синтаксический анализатор схемы таблицы SQLite в PHP. Вы можете проверить здесь: я реализовал парсер таблицы sqlite
https://github.com/maghead/sqlite-parser
синтаксис следует синтаксису инструкции SQLite create table:http://www.sqlite.org/lang_createtable.html