perl学习笔记14 z

52 篇文章 0 订阅

1.  结构化查询语句(SQL

 

Sql命令

说明

SELECT

从一个或多个表中选择字段

FROM

指定从那个表里取字段。每个SELECT命令必带。

WHERE

指定选择数据记录的标准

ORDER BY

指定记录的排列标准(ASCDESC

INSERT INTO

把值插入一个或多个表里

UPDATE

更新一个或多个的数据

 

2.  DBI概述

perl数据库接口(DBI)提供了从perl程序访问关系型数据库的手段。

DBI使用一种面向对象的接口。DBI对象被称为句柄。有3种不同的句柄类型——驱动程序句柄、数据库句柄和语句句柄。驱动程序句柄把数据库的驱动程序封装起来,但它们很少用于脚本。数据库句柄把一个对数据库的特定连接封装起来,他们用于把SQL语句发送到数据库。语句句柄则封装特定的SQL语句和从SQL语句返回的结果。一个驱动程序句柄可以创建任意数目的数据库句柄,而一个数据库句柄可以创建任意数目的语句句柄。

 

3.  DBI运用

Ø         要创建一个数据库的连接,必须把数据源的名字传递给connect方法。connect方法能通过数据源的名字来判断在哪里可以找到需要的数据库。为ODBC数据库构建数据源名的格式如下:

接口名:数据库驱动:数据源名字

方法connect使用3个参数,第一个参数就是上面所说的数据源名,第二个参数为用户名,第三个参数为数据库口令。例如:

       $dbh = DBI -> connect ( “DBI:ODBC:employeeDB” , “” , “”)

 

Ø         prepare方法创建语句句柄。prepare方法为语句准备数据库驱动程序,以后程序就可以多次执行这条语句。SQL查询作为字符串被传递到prepare方法中。例如:

$sth = $dbh -> prepare ( q { SELECT * FROM employee })

 

Ø         prepare方法准备好语句之后,在处理结果之前,必须执行查询语句。通过调用语句句柄execute方法来实现。查询结果集存储在语句句柄中。通过调用方法fetchrow_array,把结果集中的每一行记录从对象中检索出来,再放到一个数组中。

$rc = $sth -> execute ()

       while ( @array = $sth -> fetchrow_array() )

 

函数名

返回类型

说明

fetchrow_array

数组

返回数组中的一行

fetchrow_arrayref

数组引用

返回一个数组引用中的一行

fetchrow_hashref

散列引用

返回散列引用中的一行,同时附有字段名-值对。

fetchall_arrayref

数组引用

返回一个数组引用中的整个结果集。数组中包括对容纳数据行的数组的引用。

 

Ø         无论是行数据取完,还是取数据时发生错误,这两种情况都会导致方法fetchrow_array返回false,所以在循环结束时要检查错误类型。如果错误确实是发生在取数据时,$DBI::err就会被定义。

warn ( $DBI::errstr )  if  $DBI::err

Ø         一旦结束数据库连接,就调用disconnect方法将其关闭。

Ø         如果不需要从语句句柄中取出所有的数据,那么在取完所需数据后,就应该调用方法finish表示结束。当结果集中所有数据都取出来后,程序自动调用方法finish

 

4.  DBI操作一个数据库

Ø         把一个散列表引用作为第四个参数传递给connect方法,这样就可以使错误检查自动执行。在散列表中,把RaiseError设为1,这样在发生错误时,就可以调用带有一条错误消息的die函数。如果程序出错时,不希望程序调用die函数并中止程序运行,那么可以用PrintError代替RaiseError。这样,在出现错误时,就会调用函数warn发出警告,而不是调用函数die中止程序运行。

Ø         在数据库中删除和修改记录的办法与插入类似。只需在执行do方法时,用相应的SQL语句为参数。

Ø         DBI提供一些工具函数,使用户能够判断出来,用户编写的程序所运行的那台计算机提供何种数据库支持。这些工具函数有available_driversdata_sources。函数available_drivers返回当前可用的数据库驱动程序(DBD)。函数data_soources返回在系统注册过的数据库。

Ø         要通过DBI来使用MySQL数据库,必须有MySQL数据库驱动程序DBD::mysql

Ø         创建一张表的sql语句是:

CREATE TABLE TableName ( ColumnName type modifiers, ColumnName type modifiers …)

Ø         VARCHAR类型把字段中的数据指定为变长的文本。跟在类型后面圆括号里的数字表示该字段中数据的最大字符数。

Ø         类型ENUM是指枚举类型,表示可以从指定的一系列选项中使用其中的一个,放入该字段中。这些选项就位于跟在关键字ENUM后面的括号内,以逗号隔开。

 


<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值