如何在SQLite中看到desc
中表格的结构?{/ p>}
答案 0 :(得分:357)
答案 1 :(得分:299)
在数据库文件上调用sqlite3
实用程序,并使用其特殊的点命令:
.tables
将列出表格.schema [tablename]
将显示一个或多个表的CREATE语句还有许多其他有用的内置点命令 - 请参阅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查询。例如,上面的文档链接显示了如何使用常规SQL命令派生.schema
和.tables
命令的行为(请参阅查询数据库架构一节)。 / p>
答案 2 :(得分:35)
您可以查询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
答案 3 :(得分:15)
.schema TableName
其中TableName是表的名称
答案 4 :(得分:12)
您应该可以通过运行
来查看架构.schema <table>
答案 5 :(得分:11)
您将通过输入命令获得结构:
.schema <tableName>
答案 6 :(得分:4)
如果你使用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();
?>
答案 7 :(得分:0)
您可以使用名为SQLite Manager的Firefox插件清楚地查看数据库的结构。