在SQLite数据库中显示表的结构的方法及实例

3,477 阅读5分钟

"SQLite "为用户提供了各种工具,如describe命令,它允许我们检查表的精确结构。在SQLite数据库中,.schema查询是用来定义表的;它是一个控制程序,如果我们需要表在那一刻的效果,必须遵循特定的程序。本质上,描述表意味着打印每一列的信息,如列名、数据类型和大小。在SQLite中,有许多方法可以从表中检索数据。"

如何显示表的结构

让我们来看看描述表命令的作用。在SQLite中,描述表命令的操作方式如下。在大多数情况下,可以用四种方式描述表。我们已经展示了每种方法的语法,通过这些方法我们可以查看表的结构。

语法

# PRAGMA table_info(table name)
这条命令从定义的表中的每一列返回一条记录,类似于SQL DESCRIBE命令。

# PRAGMA table_xinfo(table name)
这个方法与前面的语句类似。唯一的区别是,它提供了虚拟表的隐藏列。

# .schema table name
这个操作代表了选定的表;但是,在使用表之前,我们必须先建立表。

# Sqlite_master Table
另一种显示表的结构的方法是通过使用SQLite主表是这个。每个SQLite数据库的模式都保存在一个独特的 "模式表 "中。 模式是数据库所有记录、集合、触发器和视图的可视化表示。

执行显示表的结构的方法的SQLite表创建

让我们来窥探一下描述表的几种替代方法。首先,我们将使用创建表命令来构建一个表。

我们在下面使用了创建表的命令,并定义了一个表名为 "pet"。我们在宠物表内指定了一些带有数据类型的字段。宠物表的字段包括pet_id、pet_name、pet_price、pet_gender和pet_stock,并根据它们的要求有不同的数据类型。

然后,我们通过使用SQLite插入命令,为宠物表的每个字段添加一些值。你可以用插入命令一次性添加这些值,但我们是一个一个地插入的。

例1:使用PRAGMA table_info()方法来显示表的结构

PRAGMA table info()函数返回给定表中每个字段的单一条目。它类似于MySQL在SQLite中的DESCRIBE语句。我们在这里使用了一个PRAGMA table_info()命令,并向它传递了一个表名 "pet"。

>>PRAGMA table\_info(pet)。

当我们执行上述命令时,SQLite shell会像图中那样显示宠物表的结构。这里,它显示了字段名和我们已经明确分配给它们的数据类型。针对每个字段,我们可以看到另外两列。第一列显示非空值,第二列显示主键值,因为pet_id是表pet的主键,所以主键列中有一个1。

例2:使用PRAGMA table_xinfo()方法来显示表的结构

PRAGMA table xinfo()语句与PRAGMA table info()函数相同,只是它在虚拟表上也提供了隐藏字段。如果你想检查一个虚拟表的结构,包括任何隐藏的列,这就是要利用的选项。我们向下面的命令传递了一个表名pet。

>>PRAGMA table\_xinfo(pet)。

我们可以看到PRAGMA table_info(pet)命令的结果,因为第四列是隐藏表的,但是我们没有在表pet中隐藏任何列,所以所有的值都是零,而且它不是一个虚拟表。

如果我们想垂直地看到表的结构,那么我们必须在MongoDB shell中给出.mode line命令。然后,在shell中指定 "PRAGMA table_xinfo() "命令。

>> .mode line  
>>PRAGMA table\_xinfo(pet)。

使用.mode行的结果显示了表pet的垂直结构。

例3:使用.schema命令的方法来显示表的结构

schema命令是另一种获得表结构的方法。这是获得用于构建表的SQL的几种技术之一。下面是另一个例子,使用的是与上一个相同的表。

我们给了一个表名为pet的命令.schema,它显示了我们在上面创建的表的结构,情况如下。

>> .schema pet

正如你所看到的,表pet的模式与表pet字段的创建和设置时间相同。从下图中可以看出,.schema命令产生的结果。

例4:使用sqlite_master表的方法来显示表的结构

所有的SQLite数据库都有一个名为SQLite master的表。这个表的内容解释了数据库的模式。就像前面的例子一样,我们可以对SQLite主表执行同样的方法。那么,这里有一个例子,每次都是利用同一个表。

如图所示,我们从sqlite_master表中加入了一个选择命令。然后我们有一个WHERE子句,我们指定了一个表名pet到一个对象tbl_name。

SELECT SQL  
FROMsqlite\_master  
WHEREtbl\_name= 'pet';

在下一个快照中展示了这个开销查询的输出。

总结

我们希望在了解这个工件后,你对SQLite如何表示表结构有了更好的理解。我们学习了SQLite查看表的不同语法,并在最近的文章中看到了几个SQLite描述表结构的例子。我们还学习了如何利用SQLite规则来描述表。我们学会了如何利用SQLite,在这篇文章中描述表,以及何时使用它。