📜  sqlite 使用 Ruby 向 Sqlite DB 发送查询 - SQL (1)

📅  最后修改于: 2023-12-03 14:47:39.506000             🧑  作者: Mango

Sqlite 使用 Ruby 向 Sqlite DB 发送查询 - SQL

Sqlite 是一个轻量级、快速、可靠的嵌入式数据库管理系统,能够支持 SQL 语言及事务处理。在 Ruby 编程语言中,Sqlite 模块提供了一种方便的方法来操作 Sqlite 数据库。

安装 Sqlite 模块

在 Ruby 中,我们可以使用 gem 包管理器来安装 Sqlite 模块。打开终端,运行以下命令:

gem install sqlite3
连接 Sqlite 数据库

连接 Sqlite 数据库非常简单,只需要调用 SQLite3::Database.new 方法并传递数据库名称的字符串即可。如果数据库不存在,则会自动创建一个新的数据库。

require 'sqlite3'

db = SQLite3::Database.new('test.db')
执行 SQL 查询

执行 SQL 查询也非常简单,只需调用 SQLite3::Database#execute 方法并传递 SQL 查询前的字符串即可。

# 查询所有学生信息
query = "SELECT * FROM students"
db.execute(query) do |row|
    puts row
end

在上面的例子中,我们查询了名为 students 的表中的所有行,并输出了它们。

我们还可以使用 SQLite3::Database 的辅助方法来执行特定类型的查询:

# 查询学生的数量
count_query = "SELECT COUNT(*) FROM students"
count = db.get_first_value(count_query)
puts "There are #{count} students"
查询参数化

Sqlite 建议使用参数化语句而非直接构建 SQL 语句,以避免 SQL 注入攻击。

以下是使用参数化语句查询其中一列并绑定一个参数的示例:

# 查询数学成绩大于 80 分的学生姓名
query = "SELECT name FROM students WHERE math_score > ?"
db.execute(query, 80) do |row|
    puts row[0]
end

在上面的例子中,我们使用 ? 表示待绑定参数的位置,并将参数 80 传递给 db.execute 方法的第二个参数。然后,我们循环遍历查询结果,并输出每个查询结果的第一列。

结论

Sqlite 是一个灵活强大的数据库管理系统,使用 Ruby 构建和查询 Sqlite 数据库非常方便。我们可以借助 Sqlite 模块轻松连接到 Sqlite 数据库,使用各种 SQL 查询和参数化查询,实现对数据的增删改查操作。