当前位置:学学看123知识中心电脑教学数据库教程Perl DBI 基础» 正文

Perl DBI 基础

[06-11 18:16:12]   来源:http://www.xxk123.com  数据库教程   阅读:8749

导读: 关键字将被放在引号括起来的查询中,因此,这个查询会由于语法错误而失败。 除了在循环中提高效率以外,对于某些数据库引擎,可以从占位符的使用中获得其他的性能好处。某些引擎高速缓存了准备好的查询,以及为有效地运行这个查询所生成的计划。也就是说,如果以后这个服务器收到同样的查询,则它可以再次使用相应的计划而不用生成。查询高速缓存特别有助于复杂的SELECT 语句,因为可能需要花费时间生成较好的执行计划。占位符提供了一个在高速缓存中寻找查询的好机会,因为它们使查询比直接在查询字符串中嵌入指定的列值来构造查询更通用。对于MySQL,在这种方式下,占位符并不提高性能,因为没有高速缓存查询。然而,可能仍想使用占位符编写自己的查询;如果偶然将DBI 脚本传递给支持查询高速缓存的引擎,则这个脚本比没有占位符时运行效率更高。 在查询运行时,允许在查询字符串中用占位符代替这些值。换句话说,可以参数化这个查询的“输入”。在提取行而不必将值赋给变量时,DBI 也提供一个称为参数约束的输出操作,允许通过检索自动进入这些变量的列值使“输出”参数化。 假设有一个查询,检索m

Perl DBI 基础,标签:sql数据库教程,access数据库教程,http://www.xxk123.com
    关键字将被放在引号括起来的查询中,因此,这个查询会由于语法错误而失败。
    除了在循环中提高效率以外,对于某些数据库引擎,可以从占位符的使用中获得其他的性能好处。某些引擎高速缓存了准备好的查询,以及为有效地运行这个查询所生成的计划。也就是说,如果以后这个服务器收到同样的查询,则它可以再次使用相应的计划而不用生成。查询高速缓存特别有助于复杂的SELECT 语句,因为可能需要花费时间生成较好的执行计划。占位符提供了一个在高速缓存中寻找查询的好机会,因为它们使查询比直接在查询字符串中嵌入指定的列值来构造查询更通用。对于MySQL,在这种方式下,占位符并不提高性能,因为没有高速缓存查询。然而,可能仍想使用占位符编写自己的查询;如果偶然将DBI 脚本传递给支持查询高速缓存的引擎,则这个脚本比没有占位符时运行效率更高。
    在查询运行时,允许在查询字符串中用占位符代替这些值。换句话说,可以参数化这个查询的“输入”。在提取行而不必将值赋给变量时,DBI 也提供一个称为参数约束的输出操作,允许通过检索自动进入这些变量的列值使“输出”参数化。
    假设有一个查询,检索member 表中的成员姓名。可以告诉DBI 将选定列的值赋给Perl变量。在提取行时,变量利用相应的列值自动进行更新。下面是一个例子,说明如何将这些列约束到变量上,然后在提取循环中访问它们:

    bind_col( ) 的每个调用都应该指定一个列号和一个希望与该列相联的变量的引用。列号从1开始。bind_col( ) 应该在execute( ) 之后调用。
    还有一种选择,就是单独调用bind_col( ),可以在bind_columns( ) 的单个调用中传递全部变量引用:

指定连接参数

    建立服务器的连接的最直接的方法为,调用connect( ) 方法时指定所有连接参数:

    如果遗漏连接参数,则DBI 做下面的事情:
    如果未定义数据源或未定义空字符串,则使用DBI_DSN 环境变量。如果未定义用户名和口令,则使用DBI_USER 和DBI _ PASS 环境变量(但如果它们为空字符串则不使用)。在Windows 下,如果未定义用户名,则使用user 变量。
    如果遗漏了主机名,其缺省值为localhost。
    如果将用户名指定为undef 或空字符串,则其缺省为UNIX 的登录名称。在Windows下,用户名缺省为ODBC。
    如果将口令指定为undef 或空字符串,则不传送口令。
    通过将某些选项添加到字符串的初始部分,每个都在分号前面,可以在数据源中指定这些选项。例如,可以使用mysql_read_default_file 选项来指定一个选项文件的路径名:

    当执行这个脚本时,它将从这个文件中读取连接参数。假设/ u/ paul /.my.cnf 含有下面的内容:

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]  下一页


Tag:数据库教程sql数据库教程,access数据库教程电脑教学 - 数据库教程
前一篇:ORACLE函数大全
《Perl DBI 基础》相关文章

Copyright 学学看123 All Right Reserved.

1 2 3 4 5 6 7 8 9 10