没有合适的资源?快使用搜索试试~ 我知道了~
Delphi的SQL的程序设计
5星 · 超过95%的资源 需积分: 4 35 下载量 60 浏览量
2008-12-22
08:07:27
上传
评论
收藏 108KB DOC 举报
温馨提示
试读
14页
Delphi的SQL的程序设计 Delphi的SQL的程序设计 Delphi的SQL的程序设计 Delphi的SQL的程序设计 Delphi的SQL的程序设计
资源推荐
资源详情
资源评论
第 19 章 Delphi 的 SQL 的程序设计
在 Delphi 程序设计中,SQL 编程是非常强大的一个方面。SQL 指的是结构化查询语
言。SQL 的大部分实现都与该语言的某个特定定义相关。例如,许多数据库的 SQL 服务
器支持 ANSI-92 SQL 定义。ANSI(美国国家标准局)由许多公司和个人组成,其既定兴
趣是进行标准化。您所使用的 SQL 语言的语法依赖于所用的特定数据库。
这里您可能会问,为什么需要 SQL,能否只用 Delphi?答案是可能两个都需要。如果
建立数据库应用程序,当然需要使用 Delphi 控件(与 Delphi 专业版和企业版一同发布),
如 TTable、TDatabase、或 TClientDataSet 来管理数据库中的数据,但确实有些操作使用
SQL 更为容易。对于使用 SQL 相对简单的情况,您可以使用 TQuery 等组件将 SQL 语句
发送到数据库服务器。
例如,假定您有一个关于职员的数据库。进一步假定您非常高兴,要给所有的职员都
加薪百分之十。您可以编写 Delphi 代码打开包含薪水的表,并逐个职员增加薪水。或者,
您可以编写一个 SQL 语句来完成该工作。有些数据库服务器(服务器程序),像 SQL
Server、Oracle、或 Interbase Server 可以在较为健壮的服务器(硬件服务器)上运行,因
此请求可以在硬件服务器上处理。最后结果是:更新操作可以在较为快速、健壮的服务器
上运行,而无须用大量的数据阻塞网络。如果网络是内部网、Internet 或外部网,两种处
理方法的响应速度会有很大的差别。
这意味着,如果您开发数据库应用程序时不使用 SQL,那么您和您的程序将处于非常
不利的地位。不要担心。本章将示范 SQL 语言的一般形式,以及如何在 Delphi 中使用它。
本章中的 SQL 语言与 ANSI-92 SQL 标准密切相关,可以在大多数 SQL 服务器上工作。本
章中的一些较为高级的特征可能需要根据实际使用的数据库进行微小的改动。另外,本书
的 CD-ROM 中包含了一个基本的 SQL Builder 工具,您可以使用 SQL Builder 为程序定义
并测试 SQL 语句。
19.1 结构化查询语言
结构化查询语言包括很多语言,都使用 SQL 的名字。对于当前的 ANSI 标准,每个厂
商都支持不同的兼容级别。例如,Oracle 包括 PL/SQL,它支持过程调用和参数传递,而
Microsoft 也提供了自己的版本,称为 T-SQL。另外还有几种基本 SQL 的派生语言,但所
有的语言在本质上都具有相当基本的语法、数目适当的关键字、以及对数据处理的一般性
支持。
基本的 SQL 支持在数据库中选择、插入、更新和删除记录。用得不那么频繁,但同
样重要的操作是创建与删除表。有些产品如 SQL Server 2000、Access 或 Oracle 提供了可
487 Delphi 6 应用开发指南
视 化 的 数 据 库 建 立 工 具 , 方 便 了 数 据 库 的 管 理 。 更 好 的 选 择 是 CASE 工 具 , 如
DataArchitect 和 ERwin,这些工具提供与数据库之间的双向工程能力(双向工程是指创建
数据库并通过检查数据库将数据库结构读回到 CASE 工具的能力。对于设计和建立数据库
程序来说,CASE 工具是必不可少的)。
本章示范了 SQL 语言的基本用法,其中包括最常用的一些命令,工具通常使用这些
命令来完成工作。我们就从四个最基本的 SQL 命令开始。
19.2 SQL 编程
数据库管理的最常见的任务包括数据的添加、删除和更新。如同 26 个字符的英文字
母表一样令人迷惑,从这些支持基本任务的命令中可以演化出各种表达力非常强的语句。
本节我们从最简单的例子开始,包括 SELECT、INSERT、UPDATE 和 DELETE 语句。如
果您已经熟悉了基本的 SQL 语法,可以跳到下一节,其中示范了这些语句的一些高级用
法。
当学习这些例子时,请记住,您需要利用工具对命令进行编辑并将其发送到数据库。
可以使用与 Delphi 一同发布的 SQL Explorer(或 Database Explorer)、 Database Desktop
或本书 CD-ROM 上的 SQL Builder 示例程序。
19.2.1 SELECT 语句
SELECT 语句用于以行为单位从一个或多个表获取数据。现在,我们把注意力集中到
单表的 select 语句上。基本的 select 语句的规范形式如下。
注意:按照惯例,SQL 的关键字通常是大写的。如果 SQL 语句比较复杂,
看起来可能有些令人生厌。要选定一种风格并坚持之,一致性可以使得代码
看起来从容而谨慎。
SELECT fieldslist FROM tablename
语句以关键字 SELECT 开始。fieldslist 可以是逗号分隔的字段名列表,或星号(*),后
者意味着任意或所有。FROM 子句表示了包含字段的表的名字。
这里引入了一些新的术语。我们将稍停一下来介绍这些术语。单个的表在逻辑上与由
行和列组成的电子表格非常相似。在电子表格中行列的交称之为表元。在数据库用语中,
术语“行”与电子表格中的行意义大致相同。电子表格中的术语列和表元合并为数据库中的
字段。数据库中单个表的定义由其所有字段的定义组成,包括字段名、字段类型、字段大
小等信息。当表中含有数据时,单个记录可称之为行。数据库由一个或多个表组成。
在任何时候,SELECT 语句都可以用于获取数据库中一个或多个表的某些或全部行。
字段列表由数据源表中的某些字段名组成。这里有几个 SELECT 语句的基本例子。
提示:这些查询是相对于\Program Files\Common Files\
BorlandShared\Data 目录定义的,该目录在 Delphi 安装时创建。在本书
的 CD-ROM 上可以找到存储为文本文件的 SQL 语句。
第 19 章 Delphi 的 SQL 的程序设计 488
SELECT * FROM BIOLIFE // biolife.sql
SELECT WEIGHT, "SIZE" FROM ANIMALS.DBF // animals.sql
SELECT CustNo As Customer FROM ORDERS // customer.sql
SELECT O.CustNo As Customer FROM ORDERS O // customer2.sql
(忽略 SQL 语句末尾的 Pascal 风格的注释。这些只是用于方便在 CD-ROM 上查找相
应的文件。)第一个语句读作“选择 Biolife 表中的所有字段”。该表实际上是 Paradox 表,
即 biolife.db 文件,可以在前面提到过的示例数据库目录下找到。下一个语句只选择了两
个字段:weight 和 size。而 size 是关键字。为避免这个问题,我们使用引号把 size 括起来,
使得可以将其作为字段处理。还可以注意到 animals.sql 中的 sql 语句对表名使用了文件扩
展名。在 Paradox 和 dBase 数据库中,表存储在单独的文件中。如果表只是整个数据库文
件的一部分,则不能使用文件扩展名,例如 Access 中的.MDB 文件。customer.sql 示范了
字段别名。假定您不需要返回实际的字段名,而只需要具有良好格式的字段名,那么可以
使用 As 子句来创建字段的别名。第四个例子创建了 ORDERS 表的别名 O。当在 SQL 语句
中有多个表(这里并未演示)的时候,创建表的别名是很有用的。
可按照下列步骤,试一试下面的例子。
1.运行 Database Desktop。
2.在 Database Desktop 中,选择 SQL | Select Alias 菜单项,指向 DBDEMOS 别名(如
图 19.1 所示)。
图 19.1 选择 DBDEMOS 别名,以指向示例文件
3.选择 File | New | SQL File 菜单项打开一个空白编辑窗口,然后选一个上面所示的
SELECT 语句键入。
4.选择 SQL | Run SQL 菜单项(或单击带有闪电符号的工具栏按钮)来运行查询。
如果一切工作正常,可以看到一个 ANSWER.DB 表(见图 19.2),其中包含了 SQL
语句的结果集合。
这里新引入的概念是别名的思想。数据库可能位于其他的物理计算机上、跨越网络、
也可能像示例表那样位于本地。别名是由 Datasource Administrator 或 BDE Administrator 管
理的(创建别名的详细信息,可以参考第 13 章中关于打开数据库连接的有关章节)。
SELECT 语句可能相当复杂,可以对结果集进行精确的控制。在本章稍后关于高级
SQL 编程的部分中,我们将继续讨论 SELECT 语句。现在我们开始学习 DELETE 语句。
剩余13页未读,继续阅读
资源评论
- hugh3170235492012-09-28文档说明书,还可以。
- ggdwy2012-08-16适合一定基础学习学习
fenny305
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功