我们已经建立了到数据库的连接。 现在我们要修改并从数据库中获取数据。
使用SELECT
语句从数据库中检索数据。 在 SQLite Ruby 模块中,首先我们使用prepare
方法准备 SQL 语句。 SQL 字符串被发送到数据库引擎,该引擎检查语句的有效性,语法,并在某些数据库中检查执行某些查询的用户权限。 如果一切正常,则将语句对象返回到 Ruby 脚本。 下一步是对execute
方法的调用。 该方法在数据库内执行查询。 检索数据。
Ruby SQLite 模块有几种从数据库表中获取数据的方法。 准备并执行 SQL 语句后,我们可以遍历返回的数据。
取得数据
在第一个示例中,我们从Cars
表中获取一行。
在示例中,我们执行所有步骤以从Cars
表中获取第一行。
SELECT
语句是使用prepare
方法准备的。 返回一个语句对象。
参数绑定到语句中的占位符。
该语句被执行。 返回ResultSet
对象。
我们从结果集中获得下一行。 因为我们只想获取一行,所以我们只调用一次next
方法。
该行是一个 Ruby 数组。 使用join
方法,将三个字段与一个空格字符连接起来以形成一行。
这是示例的输出。
在下面的示例中,我们将获取五行。 我们将next
方法放入 while 循环中。
在此脚本中,我们连接到数据库并获取Cars
表的 5 行。
这是用于提取 5 行的 SQL 语句。
next
方法放在 while 循环中。 它返回结果集中的下一行。 如果没有剩余的行,则该方法返回 nil,而 while 循环终止。
我们可以使用each
方法从结果集中获取数据。
同样,我们从Cars
表中选择五行。
我们使用each
方法来迭代结果集。
下一个示例显示数据库对象的execute
方法。 这是一种方便的方法,可以节省一些击键。
该示例从Cars
表中选择并打印五行。
在这里,我们一步一步完成了两项工作。 我们准备语句并执行它。 该方法以 Ruby 数组形式返回数据。
我们从 Ruby 数组中打印数据。
到目前为止,我们已经看到以ResultSet
或数组形式返回的数据。 下一个示例将以哈希数组的形式返回数据。 这样,我们可以通过列名来标识字段值。
在示例中,我们通过字段的列名获取字段。
我们将results_as_hash
属性设置为 true。 所有行将作为哈希对象返回,以列名作为键。
我们通过字段的列名获取字段。
我们看到示例的输出。
获取行
Ruby SQLite 模块有两种方便的方法来检索行。 在第一个示例中,我们将从表中获得一行。
我们获得Cars
表第一行的数据。
get_first_row
方法获取第一行,并丢弃所有其他行。
该行将打印到控制台。
在这里,我们看到fetchrow.rb
示例的输出。
在最后一个示例中,我们选择一个值。
我们为特定的汽车选择价格。
使用get_first_value
方法,我们选择一行的特定字段。 在我们的案例中,这是宾利汽车的价格。
这是输出。