如何在数据库(SQLite)中获取表信息

11

我是SQLite的新手。我在Eclipse(Java)中使用它,以防这很重要。

现在我的问题是,我有一个*.db文件,不知道其内容。我想知道可以用哪种方式获取关于表格的一些信息。否则,通过SELECT查询无法正确读取数据库。因此,基本上我的问题就是这部分。

      stmt = c.createStatement();
      ResultSet rs = stmt.executeQuery( "SELECT * FROM ???????;" );
      while ( rs.next() ) {
         int id = rs.getInt("id");
         ..
1个回答

7

1. 了解数据库的模式

在您的 .db 文件所在位置打开终端。

输入以下命令以启动 SQLite 控制台。

sqlite3 NameOfDatabase.db

1.1 所有表格

然后在控制台中输入以下命令:

.schema

这将为您提供有关所有表格的所有信息,包括字段的数据类型。换句话说,上述命令将为您提供数据库架构

上述命令的输出示例如下:

CREATE TABLE log (ID INTEGER PRIMARY KEY AUTOINCREMENT, userID INTEGER, cardID INTEGER, eventID INTEGER, nameOnTicket TEXT, pricePaid REAL);
CREATE TABLE card (cardID INTEGER PRIMARY KEY AUTOINCREMENT, cardNum TEXT, securityCode TEXT, expiryMonth INTEGER, expiryYear INTEGER, addressID INTEGER, userID INTEGER);

实际上,它返回重新创建表的命令,因此如果您想输出查询以重新创建表或为您的数据库/应用程序创建文档,那么这也非常方便,同时也可以理解数据库的结构和表格。

1.2 特定表格

另外,您可以使用以下命令查看特定表格的模式:

.schema TableName

这将返回TableName表的模式。

2. 将SQLite与Eclipse集成

另一个选项是将SQLite数据库与Eclipse集成,以下是实现此操作的步骤。下面的步骤已从官方Eclipse维基复制,您可以在此处找到。

1)从这里下载SQLite驱动程序。实际的zip文件包含驱动程序,位于3。将其在本地某处展开并记住位置。
2)将zip中的sqlite_jni.dll放入JRE的bin目录中。该驱动程序需要此文件在Java库路径中。
3)在安装了DTP 1.0的Eclipse中(最好是最终版本或日期为110806或更晚的夜间版本),转到首选项(窗口->首选项)并选择连接性->驱动程序定义页面。
4)在可用驱动程序定义树中选择“通用JDBC”类别,然后单击“添加...”。
5)在可用驱动程序模板树中选择“通用JDBC驱动程序->通用JDBC驱动程序”。为新的通用JDBC驱动程序命名,例如“javasqlite JDBC驱动程序”。单击“确定”。
6)单击“添加Jar / Zip”,然后从步骤1中展开的驱动程序zip中选择sqlite.jar。单击打开。
7)在属性表中,选择Driver Class属性,然后单击“...”按钮。如果可以访问jar,则会出现一个对话框,其中列表中至少有一个类。选择“SQLite.JDBCDriver”。单击“确定”。
8)还在属性表中,选择Driver URL属性,然后输入以下内容:jdbc:sqlite:/DRIVE:/dirA/dirB/dbfile 9)单击“确定”以关闭编辑驱动程序定义对话框。您应该在驱动程序定义首选项页面的驱动程序列表中看到新的驱动程序。
10)单击“确定”以关闭首选项对话框。
11)如果未打开数据源浏览器,请从窗口->显示视图菜单中打开连接性->数据源浏览器视图,或者从窗口->打开透视图中打开数据库开发透视图。
12)在数据源浏览器中,在数据库类别上单击右键,然后选择“新建...”。
13)在新连接配置文件向导的向导选择页面中,选择列表中的SQL模型-JDBC连接条目,然后单击下一步。
14)为新配置文件命名,例如“SQLiteTestDB”。单击下一步。
15)在“从下拉列表中选择驱动程序”组合框中,选择新的SQLite驱动程序定义。修改示例URL中的文件路径,以匹配本地SQLite数据库的路径。
16)单击“测试连接”以验证是否可以连接到数据库。
17)单击完成以创建配置文件。
18)在数据源浏览器中,在新配置文件上单击右键,然后选择连接。您应该会看到树下方出现的内容。浏览数据库以查看可用表及其列。

这不适用于使用Java驱动程序。 - Matt
我以为他想要了解自己数据库的结构?你是什么意思?(抱歉问一下,只是为了理解是否有任何错误) - Rafael
1
我理解他试图在运行时使用代码来动态地实现这个。但是现在重新阅读,我其实不确定了。 - Matt
马特,你理解得很正确。 - Jürgen K.
嗨,我已经编辑了我的答案。请告诉我是否解决了你的问题。 - Rafael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接