Perl 中使用 SQLite 数据库145


SQLite 是一个跨平台的、轻量级的嵌入式关系数据库引擎。它具有占用资源少、速度快、可移植性强等优点。在 Perl 中使用 SQLite 很方便,可以轻松地进行数据库操作。

安装 SQLite

在 Perl 中使用 SQLite 之前,需要先安装 SQLite 模块。可以使用以下命令进行安装:```
cpan install DBD::SQLite
```

连接到数据库

连接到数据库可以使用以下代码:```perl
use DBI;
my $dsn = "DBI:SQLite:dbname=";
my $dbh = DBI->connect($dsn, $user, $password);
```
其中,$dsn 是数据源名称,指定了数据库文件的路径。$user 和 $password 是可选的用户名和密码。

创建表

创建表可以使用 CREATE TABLE 语句:```perl
my $sth = $dbh->prepare("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)");
$sth->execute();
```
其中,id 字段是主键,name 字段是文本字段,age 字段是整数字段。

插入数据

向表中插入数据可以使用 INSERT INTO 语句:```perl
my $sth = $dbh->prepare("INSERT INTO users (name, age) VALUES (?, ?)");
$sth->execute('John Doe', 30);
```
其中,? 是占位符,表示要插入的值。

查询数据

查询数据可以使用 SELECT 语句:```perl
my $sth = $dbh->prepare("SELECT * FROM users WHERE name = ?");
$sth->execute('John Doe');
while (my $row = $sth->fetchrow_hashref) {
print "ID: ", $row->{id}, "\t";
print "Name: ", $row->{name}, "\t";
print "Age: ", $row->{age}, "";
}
```
其中,$sth->fetchrow_hashref 将查询结果以哈希引用形式返回。

更新数据

更新数据可以使用 UPDATE 语句:```perl
my $sth = $dbh->prepare("UPDATE users SET age = ? WHERE name = ?");
$sth->execute(31, 'John Doe');
```
其中,? 是占位符,表示要更新的值。

删除数据

删除数据可以使用 DELETE 语句:```perl
my $sth = $dbh->prepare("DELETE FROM users WHERE name = ?");
$sth->execute('John Doe');
```

关闭连接

使用完数据库后,应关闭连接:```perl
$sth->finish;
$dbh->disconnect;
```

示例程序

以下是一个完整的示例程序,演示了如何使用 Perl 中的 SQLite:```perl
#!/usr/bin/perl
use DBI;
my $dsn = "DBI:SQLite:dbname=";
my $dbh = DBI->connect($dsn);
# 创建表
my $sth = $dbh->prepare("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)");
$sth->execute();
# 插入数据
$sth = $dbh->prepare("INSERT INTO users (name, age) VALUES (?, ?)");
$sth->execute('John Doe', 30);
# 查询数据
$sth = $dbh->prepare("SELECT * FROM users WHERE name = ?");
$sth->execute('John Doe');
while (my $row = $sth->fetchrow_hashref) {
print "ID: ", $row->{id}, "\t";
print "Name: ", $row->{name}, "\t";
print "Age: ", $row->{age}, "";
}
# 更新数据
$sth = $dbh->prepare("UPDATE users SET age = 31 WHERE name = 'John Doe'");
$sth->execute();
# 删除数据
$sth = $dbh->prepare("DELETE FROM users WHERE name = 'John Doe'");
$sth->execute();
# 关闭连接
$sth->finish;
$dbh->disconnect;
```

在 Perl 中使用 SQLite 非常方便,可以轻松地进行数据库操作。SQLite 的轻量级和跨平台特性使其成为小型项目或嵌入式系统的理想选择。

2024-12-10


上一篇:env Perl:探索环境变量的强大工具

下一篇:Perl 在中国的发展历程