热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SQLitePerl

安装SQLite3可使用PerlDBI模块与Perl进行集成。PerlDBI模块是Perl编程语言的数据库访问模块。它定义了一组提供标准库接口的方法、变量以及规则。下面显示了在Li

安装

    SQLite3可使用Perl DBI模块与Perl进行集成。Perl DBI 模块是Perl编程语言的数据库访问模块。它定义了一组提供标准库接口的方法、变量以及规则。

    下面显示了在Linux/UNIX机器上安装DBI模块的简单步骤:

$ wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.625.tar.gz
$ tar xvfz DBI-1.625.tar.gz
$ cd DBI-1.625
$ perl Makefile.PL
$ make
$ make install

   如果你需要为DBI安装SQLite驱动程序,那么可按照以下步骤进行安装:

$ wget http://search.cpan.org/CPAN/authors/id/M/MS/MSERGEANT/DBD-SQLite-1.11.tar.gz
$ tar xvfz DBD-SQLite-1.11.tar.gz
$ cd DBD-SQLite-1.11
$ perl Makefile.PL
$ make
$ make install


DBI 接口 API

连接数据库

#!/usr/bin/perluse DBI;
use strict;my $driver = "SQLite";
my $database = "test.db";
my $dsn = "DBI:$driver:dbname=$database";
my $userid = "";
my $password = "";
my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 }) or die $DBI::errstr;print "Opened database successfully\n";

 

创建表

 

#!/usr/bin/perluse DBI;
use strict;my $driver = "SQLite";
my $database = "test.db";
my $dsn = "DBI:$driver:dbname=$database";
my $userid = "";
my $password = "";
my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 })or die $DBI::errstr;
print "Opened database successfully\n";my $stmt = qq(CREATE TABLE COMPANY(ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,AGE INT NOT NULL,ADDRESS CHAR(50),SALARY REAL););
my $rv = $dbh->do($stmt);
if($rv <0){print $DBI::errstr;
} else {print "Table created successfully\n";
}
$dbh->disconnect();

 

INSERT 操作

 

#!/usr/bin/perluse DBI;
use strict;my $driver &#61; "SQLite";
my $database &#61; "test.db";
my $dsn &#61; "DBI:$driver:dbname&#61;$database";
my $userid &#61; "";
my $password &#61; "";
my $dbh &#61; DBI->connect($dsn, $userid, $password, { RaiseError &#61;> 1 })or die $DBI::errstr;
print "Opened database successfully\n";my $stmt &#61; qq(INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES (1, &#39;Paul&#39;, 32, &#39;California&#39;, 20000.00 ));
my $rv &#61; $dbh->do($stmt) or die $DBI::errstr;$stmt &#61; qq(INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES (2, &#39;Allen&#39;, 25, &#39;Texas&#39;, 15000.00 ));
$rv &#61; $dbh->do($stmt) or die $DBI::errstr;$stmt &#61; qq(INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES (3, &#39;Teddy&#39;, 23, &#39;Norway&#39;, 20000.00 ));
$rv &#61; $dbh->do($stmt) or die $DBI::errstr;$stmt &#61; qq(INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES (4, &#39;Mark&#39;, 25, &#39;Rich-Mond &#39;, 65000.00 ););
$rv &#61; $dbh->do($stmt) or die $DBI::errstr;print "Records created successfully\n";
$dbh->disconnect();

 

SELECT 操作

 

#!/usr/bin/perluse DBI;
use strict;my $driver &#61; "SQLite";
my $database &#61; "test.db";
my $dsn &#61; "DBI:$driver:dbname&#61;$database";
my $userid &#61; "";
my $password &#61; "";
my $dbh &#61; DBI->connect($dsn, $userid, $password, { RaiseError &#61;> 1 })or die $DBI::errstr;
print "Opened database successfully\n";my $stmt &#61; qq(SELECT id, name, address, salary from COMPANY;);
my $sth &#61; $dbh->prepare( $stmt );
my $rv &#61; $sth->execute() or die $DBI::errstr;
if($rv <0){print $DBI::errstr;
}
while(my &#64;row &#61; $sth->fetchrow_array()) {print "ID &#61; ". $row[0] . "\n";print "NAME &#61; ". $row[1] ."\n";print "ADDRESS &#61; ". $row[2] ."\n";print "SALARY &#61; ". $row[3] ."\n\n";
}
print "Operation done successfully\n";
$dbh->disconnect();

 

 

UPDATE 操作

 

 

#!/usr/bin/perluse DBI;
use strict;my $driver &#61; "SQLite";
my $database &#61; "test.db";
my $dsn &#61; "DBI:$driver:dbname&#61;$database";
my $userid &#61; "";
my $password &#61; "";
my $dbh &#61; DBI->connect($dsn, $userid, $password, { RaiseError &#61;> 1 })or die $DBI::errstr;
print "Opened database successfully\n";my $stmt &#61; qq(UPDATE COMPANY set SALARY &#61; 25000.00 where ID&#61;1;);
my $rv &#61; $dbh->do($stmt) or die $DBI::errstr;
if( $rv <0 ){print $DBI::errstr;
}else{print "Total number of rows updated : $rv\n";
}
$stmt &#61; qq(SELECT id, name, address, salary from COMPANY;);
my $sth &#61; $dbh->prepare( $stmt );
$rv &#61; $sth->execute() or die $DBI::errstr;
if($rv <0){print $DBI::errstr;
}
while(my &#64;row &#61; $sth->fetchrow_array()) {print "ID &#61; ". $row[0] . "\n";print "NAME &#61; ". $row[1] ."\n";print "ADDRESS &#61; ". $row[2] ."\n";print "SALARY &#61; ". $row[3] ."\n\n";
}
print "Operation done successfully\n";
$dbh->disconnect();

 

 

 

DELETE 操作

#!/usr/bin/perluse DBI;
use strict;my $driver &#61; "SQLite";
my $database &#61; "test.db";
my $dsn &#61; "DBI:$driver:dbname&#61;$database";
my $userid &#61; "";
my $password &#61; "";
my $dbh &#61; DBI->connect($dsn, $userid, $password, { RaiseError &#61;> 1 })or die $DBI::errstr;
print "Opened database successfully\n";my $stmt &#61; qq(DELETE from COMPANY where ID&#61;2;);
my $rv &#61; $dbh->do($stmt) or die $DBI::errstr;
if( $rv <0 ){print $DBI::errstr;
}else{print "Total number of rows deleted : $rv\n";
}
$stmt &#61; qq(SELECT id, name, address, salary from COMPANY;);
my $sth &#61; $dbh->prepare( $stmt );
$rv &#61; $sth->execute() or die $DBI::errstr;
if($rv <0){print $DBI::errstr;
}
while(my &#64;row &#61; $sth->fetchrow_array()) {print "ID &#61; ". $row[0] . "\n";print "NAME &#61; ". $row[1] ."\n";print "ADDRESS &#61; ". $row[2] ."\n";print "SALARY &#61; ". $row[3] ."\n\n";
}
print "Operation done successfully\n";
$dbh->disconnect();


推荐阅读
  • Spring框架入门指南:专为新手打造的详细学习笔记
    Spring框架是Java Web开发中广泛应用的轻量级应用框架,以其卓越的功能和出色的性能赢得了广大开发者的青睐。本文为初学者提供了详尽的学习指南,涵盖基础概念、核心组件及实际应用案例,帮助新手快速掌握Spring框架的核心技术与实践技巧。 ... [详细]
  • 本课程详细介绍了如何使用Python Flask框架从零开始构建鱼书应用,涵盖高级编程技巧和实战项目。通过视频教学,学员将学习到Flask的高效用法,包括数据库事务处理和书籍交易模型的实现。特别感谢AI资源网提供的课程下载支持。 ... [详细]
  • 深入解析:RKHunter与AIDE在入侵检测中的应用与优势
    本文深入探讨了RKHunter与AIDE在入侵检测领域的应用及其独特优势。通过对比分析,详细阐述了这两种工具在系统完整性验证、恶意软件检测及日志文件监控等方面的技术特点和实际效果,为安全管理人员提供了有效的防护策略建议。 ... [详细]
  • Go语言中的高效排序与搜索算法解析
    在探讨Go语言中高效的排序与搜索算法时,本文深入分析了Go语言提供的内置排序功能及其优化策略。通过实例代码,详细讲解了如何利用Go语言的标准库实现快速、高效的排序和搜索操作,为开发者提供了实用的编程指导。 ... [详细]
  • 探索JavaScript倒计时功能的三种高效实现方法及代码示例 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • SQL Server开发技巧:修改表结构后的视图批量更新方法与实践 ... [详细]
  • 解决基于XML配置的MyBatis在Spring整合中出现“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”问题的方法
    在将Spring与MyBatis进行整合时,作者遇到了“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”的问题。该问题主要出现在使用XML文件配置DAO层的情况下,而注解方式配置则未出现类似问题。作者详细分析了两个配置文件之间的差异,并最终找到了解决方案。本文将详细介绍问题的原因及解决方法,帮助读者避免类似问题的发生。 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • 本文探讨了如何在C#中实现USB条形码扫描仪的数据读取,并自动过滤掉键盘输入,即使不知道设备的供应商ID(VID)和产品ID(PID)。通过详细的技术指导和代码示例,展示了如何高效地处理条形码数据,确保系统能够准确识别并忽略来自键盘的干扰信号。该方法适用于多种USB条形码扫描仪,无需额外配置设备信息。 ... [详细]
  • Java 零基础入门:SQL Server 学习笔记(第21篇)
    Java 零基础入门:SQL Server 学习笔记(第21篇) ... [详细]
  • MySQL:不仅仅是数据库那么简单
    MySQL不仅是一款高效、可靠的数据库管理系统,它还具备丰富的功能和扩展性,支持多种存储引擎,适用于各种应用场景。从简单的网站开发到复杂的企业级应用,MySQL都能提供强大的数据管理和优化能力,满足不同用户的需求。其开源特性也促进了社区的活跃发展,为技术进步提供了持续动力。 ... [详细]
  • 本文将介绍一种扩展的ASP.NET MVC三层架构框架,并通过使用StructureMap实现依赖注入,以降低代码间的耦合度。该方法不仅能够提高代码的可维护性和可测试性,还能增强系统的灵活性和扩展性。通过具体实践案例,详细阐述了如何在实际开发中有效应用这一技术。 ... [详细]
  • 本文详细探讨了如何有效解决Oracle数据库中常见的ORA-01578和ORA-26040错误。这些错误通常与数据块损坏有关,严重影响数据库的稳定性和数据完整性。文章不仅提供了详细的故障诊断步骤,还介绍了多种修复方法,包括使用RMAN工具、手动修复数据块以及预防措施,以帮助数据库管理员高效应对这些问题。 ... [详细]
  • 浏览器中 W3School JavaScript 的 Location 对象详解
    Location对象是浏览器Window对象的一部分,通过`window.location`属性可访问。它包含了当前页面URL的相关信息,如协议、主机名、路径和查询参数等,对于页面导航和URL操作非常有用。 ... [详细]
author-avatar
蓝社
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有