为下拉式数据窗口建立缓冲区数据库教程

| 收藏本文 下载本文 作者:Sweetdreams

下面是小编精心整理的为下拉式数据窗口建立缓冲区数据库教程(共含8篇),仅供参考,大家一起来看看吧。同时,但愿您也能像本文投稿人“Sweetdreams”一样,积极向本站投稿分享好文章。

为下拉式数据窗口建立缓冲区数据库教程

篇1:为下拉式数据窗口建立缓冲区数据库教程

数据|下拉

为下拉式数据窗口建立缓冲区

张健姿 01-6-22 下午 04:47:33

同 其 他4GL 工具 如Delphi,Visual Basic 的 早 期 版 本 一 样,PowerBuilder4.0 以 前 所 生成 的 可 执 行 文 件 使 用 是 伪 代 码, 也 称P-Code(pseudo-code),P-Code 在 运 行 时 是 被 解 释 执 行 的, 更 准 确 地 说,P-Code 使 用 的是 虚 拟 机 指 令, 为 不 同 的 宿 主 机 提 供 共 享 的 操 作 命令。 在 运 行 时, 操 作 系 统 根 据 不 同平台 解 释 实 现P-Code 指 令。 一 条P-Code 指 令 可 以 替 代 几 条 机 器 代 码 指 令, 这样 就 减 少 了 执 行 代 码 的 大 小, 不 过 却 以 应 用 的 执 行 效率 为 代 价。 一 般 的,P-Code 的 执 行 速 度 要 慢 于 编 译 代 码,但 文 件 的 大 小 却 小 于 编 译 代 码。 PowerBuilder 5.0 引入 了 生 成 全 编 译 的 可 执 行 代 码 的 功 能, 以 提 高 运 行 效率, 但 同 时 它 也 保 留 了 使 用P-Code 为 可 执 行 文 件 的 功能。 使 用P-Code 的 应 用 程 序 包 括 执 行 文 件.EXE 和PowerBuilder 的动 态 连 接 库.PBD, 而 编 译 代 码 所 产 生 的 执 行 文 件 为.EXE 文件 和 动 态 连 接 库DLL。 什 么 是 编 译 代 码 编 译 代 码 首先 以P-Code 为 基 础,PowerBuilder 首 先 根 据P-Code 创 建C 代 码, 然 后将C 代 码 编 译 成 为 机 器 代 码 的 执 行 文 件。 编 译 后 的 执行 程 序 中, 所 有 指 令 都 是 实 际 的 机 器 代 码。 这 就 意 味着 这 样 的 执 行 文 件 的 大 小 将 远 大 于P-Code。 使 用 编 译 代码 仍 需 要PowerBuilder 的 运 行 库,PowerBuilder 在 执 行 机 器 代 码时, 仍 使 用 共 享 的 函 数 库, 这 样 做 的 目 的 主 要 是 为 了节 省 内 存。 使 用 动 态 连 接 库 可 以 避 免 将 所 有 的 功 能 函数 都 写 在 一 个 可 执 行 文 件 中, 以 减 小 可 执 行 文 件 的 体积。 而 在Windows 环 境 中, 内 存 中 留 有 一 份DLL 的 拷 贝 可 以为 多 个 应 用 程 序 使 用。 此 外PowerBuilder 5.0 还 压 缩 了 一 些DLL 中 函 数 的 大 小, 现 在32 位平台 上 运 行 时 只 需7 个 动 态 连接 库, 解 压 缩 后 为4.5M。 应 用 所 需 要 的 其 它DLL 如 用 于 数据 库 访 问、分 布 式PowerBuilder, 及RTF 编 辑 器 等 可 在 用 到 时动 态 地 装 入。 编 译 代 码 创 建 编 译 代 码的 创 建 有 以 下 几 个 步 骤: 在 开 发 的 过 程 中,PowerScript. 首 先 被翻 译 成 了P-Code, 当 您 在Script. 编 辑 器 中 编 写 完 一 个 事 件 或函 数 的 代 码 返 回 窗 口 时, 系 统 就 会 自 动 地 翻 译 这 一 段Script. 代 码。 当 您 在 工 程 画 笔 中 创 建P-Code 可 执 行 文 件 时,PowerBuilder 将 为 不 同 的PBL 中 不 同 对 象 之 间 的 引 用 建 立 起 连 接, 并将 这 些 对 象 拷 贝 到 指 定 的EXE 或PBD 文 件 中。 这 是 一 个 相对 较 快 的 过 程。 接 下 来P-Code 将被 翻 译 成 为C 语 言 的 语 句。 在 这 一 过 程 中, 工 程 画 笔 窗口 下 面 的 微 帮 助 中 将 显 示“compiling ... ” 的 字 样, 这一 过 程 约 占 全 部 编 译 时 间 的10 %。 然 后 是 将C 代 码 编 译和 链 接 成 为 机 器 代 码, 形 成 可 执 行 文 件 和 动 态 连 接库, 在 这 一 步 骤 中, 微 帮 助 显 示 的 是“generating...”,这 一 编 译 过 程 最 费 时 间, 将 占 约90 % 的 编 译 时 间。 通 过 上 面 的介 绍, 我 们 看 到 创 建 机 器 代 码 所 用 的 时 间 比 产 生P-Code 的 用 时 要 多 得 多, 因 为 后 者 只 是 一 个 二 进 制 代 码 搬 运的 过 程。 因 此 在 开 发 过 程 中, 我 们 一 般 使 用 的 主 要 是P-Code,只 是 在 最 终 交 付 用 户 使 用 时, 才 根 据 实 际 情 况 选 择 是否 创 建 机 器 代 码。 编 译 代 码的 优 势: 在 以 下 这 几 个 方 面, 将PowerScript. 代码 编 译 成 为 机 器 代 码 将 得 到 较 快 的 运 行 速 度: ・ 循 环 结 构 ・ 浮 点 运 算 ・ 整 数 运 算 ・ 函 数 调 用 但 是 在 另 外的 一 些 方 面, 编 译 成 为 机 器 代 码 并 不 能 使 运 行 速 度 明显 加 快, 如 涉 及 图 形 用 户 界 面, 数 据 库 访 问, 小 数 运算, 字 符 串 操 作 等。 在 有 些 情 况 下, 两 种 代 码 的 速 度是 相 同 的, 如 对 资 源 的 调 用 和 对 数 据 窗 口 的 执 行。 在这 些 情 况 下, 您 就 无 法 通 过 使 用 编 译 代 码 来 提 高 运 行的 速 度 了。 如 果 您 的 应用 是 以 执 行 自 身 的 代 码 为 主, 例 如 应 用 中 较 多 的 是 同一 条 代 码 被 反 复 执 行( 如 循 环) 或 是 编 写 的 代 码 主 要用 来 进 行 数 学 运 算, 这 样 的 应 用 应 当 使 用 编 译 代 码。在 函 数 调 用 方 面, 使 用 机 器 码 也 要 比P-Code 快 得 多。 因此 如 果 您 的Script. 大 量 的 调 用 函 数 或 是 采 用 新 的 语 法 形式 调 用 事 件, 使 用 机 器 码 也 将 是 个 好 的 选 择。 不 过 您应 当 记 住, 编 译 代 码 的 执 行 文 件 大 小 要 比P-Code 大 得多, 因 为 一 条PowerScript. 代 码 将 有 可 能 编 译 成 为5 条 甚 至10 条C 代 码。 当 这 些C 代 码 被 编 译 后, 可 执 行 的 代 码 将 远远 大 于 相 应 的P-Code, 因 此 如 果 您 的 应 用 程 序 的 文 件 大小 是 您 应 用 的 首 要 考 虑 因 素, 或 者 您 的 应 用 较 多 的 是数 据 库 访 问, 那 您 应 当 选 择 使 用P-Code,

提 高 应 用 的 性 能 事 实 上, 一个 好 的 数 据 库 的 物 理 设 计 和 应 用 程 序 的 模 块 设 计 可以 大 大 地 提 高 应 用 的 性 能。 如 果 应 用 设 计 不 好, 即 使使 用 了 编 译 代 码, 也 不 会 得 到 很 好 的 系 统 性 能。 此 外调 整 系 统 参 数 设 置 和 合 理 的 物 理 带 宽, 可 以 使PowerBuilder 5.0 的 应 用 运 行 得 十 分 快 捷。 在PowerBuilder 5.0 中, 系 统 内 部 已 经 在 一 些 功 能 上 进 行 了 增 强, 对 这 些功 能 加 以 利 用, 本 身 就 可 以 实 现 性 能 的 优 化。 ・ 使 用PowerBuilder 5.0 的Tab 控 件 时, 如 果 在TabPage 的 属 性 中 选 中“create on demand” 这 个 复 选 框, 在 运 行时, 只 有 当 用 户 选 择 这 个TabPage,PowerBuilder 才 去 初 始 化 该TabPage 对 象 的 实 例。 ・ 使 用DataStore 而 不 要 使 用 不 可 视 的DataWindow 作 为 数 据 的 缓 冲 区。 ・ 传 递string、datetime 等 数 据 类 型 的 参 数尽 可 能 使 用read-only 方 式, 因 为 同 采 用reference 方 式 相 比,PowerBuilder 无 需 为 这 些 参 数 再 于 内 存 中 复 制 一 份 拷 贝。 同 理,reference 方 式 要 比value 法 传 参 更 快 一 些。 ・ 使 用 局 部 变 量 要 比 全 局 和 共 享 变 量要 快 一 些, 因 为 局 部 变 量 存 在 栈 中, 而 全 局 变 量 则 存储 于 远 堆。 这 个 速 度 的 差 异 在 使 用 机 器 代 码 时 比P-Code 更 为 明 显。 ・ 使 用 数 组 对DataWindow 的 数 据 进 行 赋值, 而 不 要 使 用SetItem( ) 和GetItem( ) 系 列 的 函 数, 因 为 前 者只 使 用 了 一 次 函 数, 就 调 用 了 所 有 的 行 和 列。 ・ 为 加 快 编 译 速 度, 不 要 在 一 个 事 件或 函 数 中 编 写 过 长 的 代 码, 将 它 们 分 成 几 个 函 数 或 其他 可 重 用 的 代 码 对 象。 ・ 调 整 您 的 数 据 库。 一 般 来 说, 数 据库 访 问 在 客 户/ 服 务 器 结 构 的 应 用 中 要 占 用 大 量 的 时间, 尽 可 能 利 用PowerBuilder 的 特 性 来 减 少 数 据 库 访 问 的 时间, 包 括: 1. 在5.0 中DBParm 缺 省 设 置StaticBind = 1, 也 就是 说 在 检 索 数 据 之 前,PowerBuilder 并 不 首 先 获 取 查 询 数 据结 果 集 结 构 的 描 述, 这 样 作 可 以 提 高 数 据 的 检 索 速度, 但 是 如 果 数 据 窗 口 同 数 据 库 的 结 果 集 不 匹 配 时,将 发 生 错 误。 因 此 如 果 您 需 要 动 态 改 变 数 据 窗 口 所 查询 的 表, 而 且 这 些 表 结 构 不 同 时, 您 应 当 将StaticBind 的值 设 置 为0。 2. DBParm 缺 省 设 置 允 许DataWindow 放 置BLOB 字段, 使 用Data Pipeline 可 以 对 数 据 库 插 入BLOB 字 段 的 数 据。 3. 通 过DBParm 的 设 置 可 以 使 数 据 库 支 持游 标。 设 置DBParm SQLCache = n 将 告 诉PowerBuilder 将 为 多 少 个 使 用不 同SELECT 语 句 的 游 标 建 立 缓 冲。 如 果 您 多 次 重 复 使 用同 一 个SELECT 语 句, 当 缓 冲 区 内 有 数 据 时, 检 索 的 速 度将 大 大 加 快。SQLCache 的 缺 省 值 为0。 4. PowerBuilder 5.0 中 对 数 据 窗 口 有 了 这 样的 一 个 选 项, 可 以 将 数 据 窗 口 的 结 果 集 保 存 在 本 地 磁盘 上。 这 样 作 可 以 减 少 内 存 的 使 用, 使 您 创 建 更 大 的报 表, 不 过 存 取 速 度 比 将 结 果 集 放 在 内 存 中 要 慢 得多。 如 果 您 的 数 据 窗 口 将 显 示 的 不 是 一 个 很 大 的 报表, 一 般 还 是 将 结 果 集 放 在 内 存 中 为 佳。 其 它 的 注 意 事 项 对 于 用 户 使用PowerBuilder 编 译 代 码, 还 有 以 下 几 点 值 得 说 明: ・ PowerBuilder 产 生 编 译 代 码 的 速 度 很 慢,应 尽 可 能 使 用 主 频 较 快 的 计 算 机, 最 多 至64M 内 存, 不过 在5.0 的 版 本 中, 多CPU 对 提 高 编 译 速 度 没 有 任 何 帮助。 ・ PowerBuilder 所 使 用 的Watcom 的 技 术 主 要 是32 位 的 技 术, 尽 管 在32 位平台 上 有 生 成16 位 代 码 的 选 项,但 是 速 度 却 并 不 见 佳。 另 外 在16 位平台 上, 我 们 不 能产 生32 位 的 应 用 程 序。 ・ 编 译16 位 应 用 程 序 有 一 个 限 制 就 是代 码 和 数 据 都 不 能 超 过64K, 如 果 函 数 或 事 件 中 的 代 码过 长,PowerBuilder 在 创 建EXE 时 将 产 生 错 误。 我 们 推 荐 的 解决 办 法 就 是 将 长 代 码 分 解 成 多 个 小 函 数, 这 样 做 也 可以 提 高 运 行 效 率 并 有 利 于 您 对 应 用 代 码 的 维 护。 ・ 如 果 您 在Windows NT 或Windows 95 上 运 行16 位应 用 程 序, 您 所 使 用 的 运 行 库 也 应 当 是16 位 的。 ・ 在 一 个PowerBuilder 应 用 中 我 们 只 能 使 用P-Code 的PBD 或 编 译 代 码DLL 中 的 一 种, 而 不 能 将 其 混 合 使 用,不 过 唯 一 的 例 外 是 使 用PowerBuilder 创 建OLE 服 务 器。 ・ 如 果 您 只 是 想 改 变 一 个DLL, 而 并 不想 重 新 编 译 全 部 的 应 用, 您 可 以 在Library 画 笔 中 选 择Library|Build Runtime Library... 的 菜 单 项。 ・ 在 编 译 时, 系 统 将 首 先 剔 除 注 释 语句, 所 以Script. 中 注 释 语 句 的 多 少 对 编 译 速 度 没 有 影响。 ・ 在 您 使 用PowerBuilder 的Plug-In 技 术 时, 您不 能 使 用 编 译 代 码。

篇2:通过视图管理数据数据库教程

视图与表具有相似的结构,当向视图中插入或更新数据时,实际上对视图所引用的表执行数据的插入和更新,

通过视图管理数据数据库教程

。但是通过视图插入、更新数据和表相比有一些限制,下面通过具体的例子来讲述通过视图插入、更新数据以及其使用的限制。

使用SELECT 语句,可以在视图和表中查到该条记录。但是如果执行下面的语句,虽然仍可以成功执行,但只可以在表而不是视图中查到该条数据。

注意:由于向视图插入数据实质是向其所引用的基本表中插入数据,所以必须确认那些来包括在视图列但属于表的列允许NULL值或有缺省值。

若要执行INSERT 语句,则在同一个语句只能对属于同一个表的列执行操作,

所以,若向视图au_title 中插入一行数据,只能分别执行以下语句:

insert into au_title (author_au_id, au_lname, au_fname, contract)

values ('234-34-4611','John','Smith', 1)

insert into au_title (title_au_id, title_id, au_ord, royaltyper)

values ('234-34-4611','BU1111',1,50)

通过视图对数据进行更新与删除时需要注意到两个问题:

执行UPDATE DELETE 时,所删除与更新的数据,必须包含在视图结果集中;

如果视图引用多个表时,无法用DELETE 命令删除数据,若使用UPDATE 则应与INSERT 操作一样,被更新的列必须属于同一个表。

篇3:基于HTTP 的数据访问数据库教程

除了XML 技术之外,Microsoft SQL Server 的开发者们也把通过HTTP 访问的特性(HTTP access9 作为SQL Server 2000 的一个核心特性,

基于HTTP 的数据访问数据库教程

。这样用户完全可以把SQL Server 放到一个URL 上了,从而保证开发人员和潜在的最终用户都能简单地通过一个URL 来访问SQL Server。 本节我们主要介绍以下三个问题:

如何创建虚拟目录

HTTP 的语法

HTTP 的访问能力20.4.1 创建虚拟目录

在使用HTTP 访问SQL Server 2000 数据库前必须首先利用IIS 专门为SQL Server 提供的虚拟目录管理器来创建虚拟目录(virtual directory), 同时确保使用的操作系统支持IIS 服务器。创建虚拟目录其主要目的就是在SQL Server 实例与新创建的虚拟目录之间建立新的连接。下面以一个具体的例子来介绍创建虚拟目录要执行哪些步骤。

(1) 在SQL Server Tool 程序单中选择Configure SQL XML Support in IIS 选项。

(2) 打开要创建虚拟目录的服务器图标,然后选择管理站点图标。右击该图标在弹出菜单中选择New ,单击Virtual Directory。

(3) 选中General 标签页,如图20-3 所示。

(4) 该标签页用来给出HTTP 存取数据库数据时所要使用的虚拟目录以及虚拟目录的真实目录的路径。真实目录主要存放通过该虚拟目录要访问的文件,此外模板文件(template files) 和注释匹配模式文件(annotated mapping schema files) 也存储在该目录。在该例中我们在Virtual Directory Name 中输入VirtualRoot; 在Local Path 中输入 E:\Inetpub\wwwroot\ VirtualRoot。

(5) 选中Security 标签页,如图20-4 所示。

该标签页用来定义登录的认证方法,共在三种IIS 认证模式。

Always log on as

Windows 和SQL Server 帐号与IIS 认证安全的匿名访问模式相匹配。匿名访问是指任何人都可以访问虚拟目录,但是访问服务器的任何一个客户都必须提供正确的帐号和口令才能够登录成功。其中SQL Server 选项表示当指定SQL Server 登录时,虚拟目录的所有用户都可以使用该SQL Server 登录帐号;Windows 选项表示为所有使用该虚拟目录的用户指定一个Windows 帐号,在缺省情况下使用安装IIS 时的缺省用户IUSR_ServerName。

Use Windows Integrated Authentication

该选项表示使用Windows NT 或Windows 2000 的IIS 认证方法,即合法的 Windows NT 或Windows 2000 用户才具有访问虚拟目录的权限。该访问模式要求 Windows 用户也具有访问SQL Server 的权限。

Use Basic Authentication (Clear Text) to SQL Server account

该选项是指通过SQL Server 登录和口令来进行安全认证。本认证模式与IIS 的基本认证模式不同。我们可以使用匿名认证。(6) 选中Data Source 标签页,如图20-5 所示。在Data Source 标签页主要完成两个任务,其一是选择一个SQL Server 2000 运行实体,其二选择包含在该实体内且被HTTP 访问的数据库,

在本例中选择Pubs 数据库。

(7) 选中Setting 标签页,如图20-6 所示。 Setting 标签页用来确定将使用何种SQL Server 2000 访问类型来通过虚拟目录进行数据访问。应该指出模板(Template) 文件和模式(Schema) 文件可以存储在任何地方。

Allow URL queries

表示直接在URL 中执行SQL 查询,但是考虑到访问的安全性我们建议不使用该选项。

Allow template queries

表示在URL 中执行已存在的模板文件。模板是合法的XML 文档,包括一个或多个SQL 查询。在缺省情况下使用该选项。

Allow XPath

表示直接在URL 中对注释匹配模式进行查询。

(8) 选中Virtual Names 标签页,如图20-7 所示。

该标签页主要用来定义虚拟名称。在URL 中只能使用虚拟名称,基于安全考虑,任何关于执行的对象以及文件的存储位置等信息都被隐藏。

Defined virtual names 表示在访问网络资源时将要用到的虚拟名称。比如通过IISServer/VirtualRoot/ temvir/可以访问位于VirtualRoot 虚拟目录下的temvir。

Type 指出要创建的虚拟名称属于哪一个查询类型。

dbobject 表示查询的是数据库对象。

schema 表示对匹配模式执行Xpath 查询。

template 表示模板文件中的SQL 查询。

path 指出模板或模式所在的目录路径,该路径可以是相对路径也可以是绝对路径。如果查询类型为dbobject, 则不需指明路径。该路径可以指文件夹(虚拟名称)的路径也可以指一文件路径。如果指文件夹(虚拟名称)的路径,则在URL 中必须加上文件的名称。例如: IISServer/VirtualRoot/ temvir/sample.xml(9)选中Advanced 标签页,如图20-8 所示。

Advanced 标签页主要是用来指定sqlisapi.dll 存放的位置,通过虚拟目录访问 SQL Server 2000 实体时需要使用该文件。如果虚拟目录被创建于远程服务器上,则必须提供存放位置。在缺省情况下sqlisapi.dll 文件被安装于Files\Common Files\System\Ole DB 目录下。

20.4.2 HTTP 的访问能力

在SQL Server 2000 中,HTTP 的访问能力得到了明显的提高用户,不仅可以在 URL 中直接输入SQL 语句或存储过程,而且能够在URL 中加入模板文件或进行 XPath 查询。在详细介绍这些访问方法之前首先让读者了解HTTP 的语法。

3 在URL 中使用模板

虽然在URL 中直接执行SQL 语句有着简单、快速的优点,但是目前这种方式在大部分互联网环境中都是不合适的。因为开发者不会希望用户书写或是看到SQL 语句,因为这可能泄露访问开发者数据库的内部机制。出于安全原因,开发者显然不会希望这样。因此对于开发人员来说更好的选择就是允许通过URL 来访问指定服务器端的XML 模板。这虽然提供了对SQL Server 的直接访问但是实际已把SQL Select 语句或XPath 查询请求隐藏在了XML 模板中。因此许多中间层代码的使用和数据库交互过程就不必要了。以此方法,可以简便快速地把数据库放置到网络上。这也是SQL Server 为开发人员提供的一种更快捷地跟上市场需要的方法。

篇4:数据查询SELECT语句数据库教程

数据库是为更方便有效地管理信息而存在的人们,希望数据库可以随时提供所需要的数据信息,

数据查询SELECT语句数据库教程

。因此,对用户来说,数据查询是数据

库最重要的功能。本章将讲述数据查询的实现方法。

在数据库中,数据查询是通过SELECT 语句来完成的。SELECT 语句可以从数据库中按用户要求检索数据,并将查询结果以表格的形式返回。我们在“Transact-SQL 语言”章节及前面的章节中已经初步接触到了SELECT 语句的一些用法,在本章中将分类讲述其具体用法。

本节讲述SELECT 语句完整的锓结构U馐且桓龇浅H叱ぁ⒖菰锏墓程。读者? 以跳过本节,从第二节开始阅读,而将本节作为理解、编写查询语句的语法参考资料。 SELECT 语句完整的语法结构如下:

SELECT statement ::=

[ ORDER BY { order_by_expression | column_position [ ASC | DESC ] } [,...n] ]

[ COMPUTE { { AVG | COUNT | MAX | MIN | SUM } (expression) } [,...n]

[ BY expression [,...n] ] ]

[ FOR { BROWSE | XML { RAW | AUTO | EXPLICIT }

[ , XMLDATA ]

[ , ELEMENTS ]

[ , BINARY base64 ] }

[ OPTION ([,...n]) ]

::=

{ | () }

[UNION [ALL] ) [...n] ]

::=

SELECT [ ALL | DISTINCT ]

[ {TOP integer | TOP integer PERCENT} [ WITH TIES] ]

[ INTO new_table ]

[ FROM {} [,...n] ]

[ WHERE ]

[ GROUP BY [ALL] group_by_expression [,...n]

[ WITH { CUBE | ROLLUP } ] ]

[ HAVING ]

由于SELECT 语句特别复杂,上述结构还不能完全说明其用法,因此我们将它拆分为若干部分来讲述。

10.1.1 SELECT 子句

SELECT 子句指定需要通过查询返回的表的列,其语法如下:

SELECT [ ALL | DISTINCT ]

[ TOP n [PERCENT] [ WITH TIES] ]

::=

{ *

| { table_name | view_name | table_alias }.*

| { column_name | expression | IDENTITYCOL | ROWGUIDCOL }

[ [AS] column_alias ]

| column_alias = expression

} [,...n]

各参数说明如下:

ALL

指明查询结果中可以显示值相同的列。ALL 是系统默认的。

DISTINCT

指明查询结果中如果有值相同的列,则只显示其中的一列。对DISTINCT 选项来说, Null 值被认为是相同的值。

TOP n [PERCENT]

指定返回查询结果的前n 行数据。如果PERCENT 关键字指定的话,则返回查询结果的前百分之n 行数据。

WITH TIES

此选项只能在使用了ORDER BY 子句后才能使用当指定此项时,除了返回由TOP n (PERCENT) 指定的数据行外,还要返回与TOP n (PERCENT) 返回的最后一行记录中由ORDER BY 子句指定的列的列值相同的数据行。

select_list

select_list 是所要查询的表的列的集合,多个列之间用逗号分开。

* 通配符,返回所有对象的所有列。

table_name | view_name | table_alias.*

限制通配符*的作用范围。凡是带*的项,均返回其中所有的列。

column_name

指定返回的列名

expression

表达式可以为列名、常量、函数或它们的组合。

IDENTITYCOL

返回IDENTITY 列。如果FROM 子句中有多个表含有IDENTITY 列,则在IDENTTYCOL 选项前必须加上表名,如Table1.IDENTITYCOL。

ROWGUIDCOL

返回表的ROWGUIDCOL 列。同IDENTITYCOL 选项相同,当要指定多个ROWGUIDCOL 列时,选项前必须加上表名,如Table1. ROWGUIDCOL。

column_alias

在返回的查询结果中用此别名替代列的原名。column_alias 可用于ORDER BY 子句,但不能用于WHERE GROUP BY 或HAVING 子句如果查询是游标声明命令DECLARE CURSOR 的一部分,则column_alias 还不能用于FOR UPDATE 子句(有关游标的介绍请参见“游标和视图”章节)。

10.1.2 INTO 子句

INTO 子句用于把查询结果存放到一个新建的表中。SELECT...INTO 句式不能与COMPUTE 子句一起使用。其语法如下:

INTO new_table

参数new_table 指定了新建的表的名称。新表的列由SELECT 子句中指定的列构成,新表中的数据行是由WHERE 子句指定的。但如果SELECT 子句中指定了计算列,在新表中对应的列则不是计算列,而是一个实际存储在表中的列,其中的数据由执行SELECT...INTO 语句时计算得出。如果数据库的“Select into/bulk copy” 选项设置为“True/On”,则可以用INTO 子句创建表和临时表,反之,则只能创建临时表。

10.1.3 FROM 子句

FROM 子句指定需要进行数据查询的表。只要SELECT 子句中有要查询的列,就必须使用FROM 子句。其语法如下:

FROM {} [,...n]

::=

table_name [ [AS] table_alias ] [ WITH ( [,...n]) ]

| view_name [ [AS] table_alias ]

| rowset_function [ [AS] table_alias ]

| OPENXML

| derived_table [AS] table_alias [ (column_alias [,...n] ) ]

|

::=

ON

| CROSS JOIN

|

::=

[ INNER | { { LEFT | RIGHT | FULL } [OUTER] } ]

[ ]

JOIN

各参数说明如下:

table_source

指明SELECT 语句要用到的表、视图等数据源。

table_name [ [AS] table_alias ]

指明表名和表的别名。

view_name [ [AS] table_alias ]

指明视图名称和视图的别名。

rowset_function [ [AS] table_alias ]

指明行统计函数和统计列的名称。

OPENXML

提供一个XML 文档的行集合视图。

WITH ([,...n])

指定一个或多个表提示。通常SQL Server 的查询优化器会自动选取最优执行计划,除非是特别有经验的用户,否则最好不用此选项。关于表提示table_hint 的设,定请参见下一章的“删除数据”部分。

derived_table [AS] table_alias

指定一个子查询,从数据库中返回数据行。

column_alias

指明列的别名,用以替换查询结果中的列名。

joined_table

指定由连接查询生成的查询结果。有关连接与连接查询的介绍参见本章的相关章节。

join_type

指定连接查询操作的类型。

INNER

指定返回两个表中所有匹配的行。如果没有join_type 选项,此选项就为系统默认。

LEFT [OUTER]

返回连接查询左边的表中所有的相应记录,而右表中对应于左表无记录的部分,用NULL 值表示。

RIGHT [OUTER]

返回连接查询右边的表中所有的相应记录,而左表中对应于右表无记录的部分,用NULL 值表示。

FULL [OUTER]

返回连接的两个表中的所有记录。无对应记录的部分用NULL 值表示。

join_hint

指定一个连接提示或运算法则。如果指定了此选项,则INNER LEFT RIGHT 或FULL选项必须明确指定。通常SQL Server 的查询优化器会自动选取最优执行计划,除非是特别有经验的用户,否则最好不用此选项。

join_hint 的语法如下:

::= { LOOP | HASH | MERGE | REMOTE }

其中LOOP | HASH | MERGE 选项指定查询优化器中的连接是循环、散列或合并的。REMOTE 选项指定连接操作由右边的表完成。当左表的数据行少于右表,才能使用REMOTE 选项。当左表和右表都是本地表时,此选项不必使用。

JOIN

指明特定的表或视图将要被连接。

ON

指定连接的条件。

CROSS JOIN

返回两个表交叉查询的结果。10.1.4 WHERE 子句

WHERE 子句指定数据检索的条件,以限制返回的数据行。其语法如下:

WHERE |

::=

column_name { *= | =* } column_name

各参数说明如下:

search_condition

通过由谓词构成的条件来限制返回的查询结果,

old_outer_join

指定一个外连接。此选项是不标准的,但使用方便。它用“*=” 操作符表示左连接,用“=*” 操作符表示右连接。此选项与在FROM 子句中指定外连接都是可行的方法,但二者只能择其一。

注意:如果在WHERE子句中指定一个值为FALSE的条件,则可以用SELECT...INTO语句来创建一个表名不同,但结构和数据类型均和原表相同的表。

10.1.5 GROUP BY 子句

GROUP BY 子句指定查询结果的分组条件。其语法如下;

GROUP BY [ALL] group_by_expression [,...n]

[ WITH { CUBE | ROLLUP } ]

各参数说明如下:

ALL

返回所有可能的查询结果组合,即使此组合中没有任何满足WHERE 子句的数据。分组的统计列如果不满足查询条件,则将由NULL 值构成其数据。ALL 选项不能与CUBE或ROLLUP 选项同时使用。

GROUP BY ALL is not supported in queries that access remote tables.

group_by_expression

指明分组条件。group_by_expression 通常是一个列名,但不能是列的别名。数据类型为TEXT、NTEXT、IMAGE 或BIT 类型的列不能作为分组条件。

CUBE

除了返回由GROUP BY 子句指定的列外,还返回按组统计的行。返回的结果先按分组的第一个条件列排序显示,再按第二个条件列排序显示以此类推。统计行包括了GROUPBY 子句指定的列的各种组合的数据统计。

ROLLUP

与CUBE 不同的是,此选项对GROUP BY 子句中的列顺序敏感,它只返回第一个分组条件指定的列的统计行。改变列的顺序会使返回的结果的行数发生变化。

使用Distinct选项的统计函数,如AVG(DISTINCT column_name)、COUNT(DISTINCT column_name)、和SUM(DISTINCT column_name)等,不能在使用CUBE或ROLLUP选项时使用。

10.1.6 HAVING 子句

HAVING 子句指定分组搜索条件。HAVING 子句通常与GROUP BY 子句一起使用。TEXT、NTEXT 和IMAGE 数据类型不能用于HAVING 子句。其语法如下:

HAVING

HAVING 子句与WHERE 子句很相似,其区别在于其作用的对象不同。WHERE 子句作用于表和视图,HAVING 子句作用于组。

10.1.7 UNION 操作符

UNION 操作符将两个或两个以上的查询结果合并为一个结果集。它与使用连接查询合并两个表的列是不同的。使用UNION 操作符合并查询结果需要遵循两个基本规则:

列的数目和顺序在所有查询中必须是一致的;

数据类型必须兼容。

其语法如下:

| ()

UNION [ALL]

)

[UNION [ALL] ) [...n] ]

各参数说明如下:

| ()

指明查询的详细说明或查询表达式。

UNION

合并操作符。

ALL

合并所有数据行到结果中,包括值重复的数据行。如果不指定此选项,则重复的数据行只显示一行。

10.1.8 ORDER BY 子句

ORDER BY 子句指定查询结果的排序方式。其语法如下:

ORDER BY {order_by_expression [ ASC | DESC ] } [,...n]

各参数说明如下:

order_by_expression

指定排序的规则。order_by_expression 可以是表或视图的列的名称或别名。如果SELECT 语句中没有使用DISTINCT 选项或UNION 操作符。那么ORDER BY 子句中可以包含select list 中没有出现的列名。或别名ORDER BY 子句中也不能使用TEXT、NTEXT 和 IMAGE 数据类型。

ASC

指明查询结果按升序排列。这是系统默认值。

DESC

指明查询结果按降序排列。

注意:Null值被作为最小的值。

10.1.9 COMPUTE 子句

COMPUTE 子句在查询结果的末尾生成一个汇总数据行。其语法如下:

COMPUTE

{ { AVG | COUNT | MAX | MIN | STDEV | STDEVP |VAR | VARP | SUM }

(expression) } [,...n]

[ BY expression [,...n] ]

各参数说明如下:

AVG | COUNT | MAX | MIN | STDEV | STDEVP | VAR | VARP | SUM以上参数与对应的函数有相同的含义。这些函数均会忽略NULL 值,且DISTINCT选项不能在此使用。

expression

指定需要统计的列的名称。此列必须包含于SELECT 列表中,且不能用别名。COMPUTE子句中也不能使用TEXT、NTEXT 和IMAGE 数据类型。

BY expression

在查询结果中生成分类统计的行。如果使用此选,项则必须同时使用ORDER BY 子句。expression 是对应的ORDER BY 子句中的order_by_expression 的子集或全集。

注意:在SELECT子句中使用统计函数,会覆盖COMPUTE子句中的相应选项。在SELECTINTO语句中不能使用COMPUTE子句。

10.1.10 FOR BROWSE 子句

FOR BROWSE 子句用于读取另外的用户正在进行添加、删除或更新记录的表。其语法如下:

FOR { BROWSE | XML { RAW | AUTO | EXPLICIT }

[ , XMLDATA ]

[ , ELEMENTS ]

[ , BINARY base64 ]

}

各参数说明如下:

BROWSE

BROWSE 选项指明当查看在使用DB-Library 的客户机应用程序中的数据时,可以更新数据。

使用此子句时对所操作的表有一些限制:

表必须包含一个timestamp 类型的时间标识列;

表必须有一个惟一索引。

注意:

在SELECT语句中:FOR BROWSE子句必须是SELECT语句的最后子句;FOR BROWSE子句不能与UNION操作符同时使用;FOR BROWSE子句不能与表提示HOLDLOCK选项同时使用。

XML

XML 选项指明查询结果以XML 文档模式返回XML。 模式分为RAW、AUTO、EXPLICIT 三种。

RAW

将查询结果每一行转换为以一个普通标识符作为元素标识XML 文档。

AUTO

以简单嵌套的XML 树方式返回查询结果。

EXPLICIT

指定查询结果的XML 树的形式被明确定义的。

XMLDATA

返回概要信息。它是附加在文档上返回的。

ELEMENTS

指明列将以子元素的方式返回。

BINARY base 64

指定查询返回的以base64 格式编码的二进制数据。

10.1.11 OPTION 子句

OPTION 子句用于指定在整个查询过程中的查询提示(Query Hint)。通常,用户不必使用OPTION 子句,因为查询优化器会自动选择一个最佳的查询计划。OPTION 子句必须由最外层的主查询来指定。各查询提示之间应使用逗号隔开。其语法如下:

OPTION ([,...n] )

::=

{ { HASH | ORDER } GROUP

| { CONCAT | HASH | MERGE } UNION

| { LOOP | MERGE | HASH } JOIN

| FAST number_rows

| FORCE ORDER

| MAXDOP number

| ROBUST PLAN

| KEEP PLAN

| KEEPFIXED PLAN

| EXPAND VIEWS

}

各参数说明如下:

{HASH | ORDER} GROUP

指定在GROUP BY 或COMPUTE 子句中指定的查询使用散列法或排序法。所谓散列法是指为存储和检索数据项或数据,把搜索关键字转换为一个地址的一种方法。该方法常作为数据集内的记录的一种算法,可以使记录分组均匀,减少搜索时间。

{MERGE | HASH | CONCAT} UNION

指定所有的UNION 操作符采用合并(Merge)、散列(Hash) 或连接(Concatenate)的方法执行操作。如果指定了多个UNION 提示,查询优化器会挑选一个最佳的提示方案。

{LOOP | MERGE | HASH |} JOIN

指定查询过程中的所有连接操作采取循环连接(Loop Join)、合并连接(Merge Join)或散列连接(Hash Join) 的方法。如果指定了多个JOIN 提示,查询优化器会挑选一个最佳的提示方案。

FAST number_rows

指定查询优化只用于迅速返回前number_rows 行数据,在number_rows 行以后的数据采用原查询方法。

FORCE ORDER

指定在查询语法中说明的连接顺序在查询优化的过程中保持不变。

MAXDOP number

忽略由Sp_configure 设定的针对查询的最大并行线程数目。

ROBUST PLAN

强制查询优化器尝试使用最大行容量的计划。

KEEP PLAN

强制查询优化器放松重新编译查询的阈值。指定此选项可以让一个表被多次更新而不必频繁地重新编译查询。

KEEPFIXED PLAN

强制查询优化器不重新编译查询。这样只有当表的概要改变或执行Sp_recompile 存储过程时,才会重新编译查询。

EXPAND VIEWS

扩展索引化视图(当一个视图的名称在查询文本中被视图定义替换时称这个视图被扩展了),并且查询优化器不再将索引化视图作为查询的某部分的替代品。如果视图使用了WITH (NOEXPAND) 说明,则不能被扩展。注意:SELECT语句中各子句的排列次序是很重要的,子句必须依相应的次序来使用。

当用SELECT命令读取TEXT和IMAGE类型数据时,一次所能读取的数据受限于@@TE-XTSIZE全局变量的值。

可以用SET TEXTSIZE命令来更改它。@@TEXTSIZE的初始值为4K,最大为231-1(2,147,483,647)个字节。

篇5:mysql数据复制到access数据库数据库教程

access|mysql|数据|数据库

mysql数据库表sqltable

字段id,name,sex,email

access数据库表accesstable

id,name,sex,email

$connect = mysql_connect(“localhost”,“”,“”);

mysql_select_db(“mydatabase”);

$sql = “select * from sqltable;

$result = mysql_query($sql};

$connectodbc=odbc_connect(”DSN“,”USERNAME“,”PASSWORD“);

while($row = mysql_fetch_row($result))

{

$sql=”insert into accesstable

values($row[“id”,$row[“name”,$row[“sex”],$row[“email”])“;

odbc_do($connectodbc,$sql);

}

odbc_close($connectodbc);

mysql_close($conect);

?>

【本文版权归作者与奥索网共同拥有,如需,请注明作者及出处】

篇6:将Excel数据导入Access数据库数据库教程

access|excel|数据|数据库

将Excel数据导入Access数据库

最近,有一些网友常常问到关于Execl数据库操作的问题,其中不少是关于“Excel数据导入Access “的问题,至于将Execl数据导入Access的方法有两种:一种是直接导入法;另一种是建立连接法。而我们在日常工作中用的最多的是直接导入法,限于篇幅,我这里就只讲直接导入法,希望能给大家带来参考。

具体操作可以按以下步骤进行:

1、启动Microsoft Access;

2、 建立一个空数据库student;

3、 在对象栏中选择“表”选项,执行“文件→获取外部数据→导入”命令,打开“导入”对话框;

4、 选择文件类型“为Microsoft Execl”,单击“查找范围”右边的向下黑三角,选择.xls文件所在的目录,再选择要导入数据的工作薄文件;

5、 单击“导入”按钮,进入“导入数据表向导”对话框,如图1所示:

图1

6、 按“下一步”,选中“第一行包含列标题”前面的复选框;

7、 按“下一步”,进入“请选择数据的保存位置”页,假如你不想保存在现有的表中,那么选择“新表中”,否则保持默认值“现有的表中”再选择表名;(我这里以选择新表)

8、 按“下一步”,进入“字段选择”页,保持默认值,

如图2所示:

图2

9、 按“下一步”,进入图3所示页面,选择“自行选择主键”。

图3

10、             按“下一步”,进入图4所示的界面,在“导入到表”输入框中输入表名,我这里输入“一班”。

图4

11、            “完成”按钮,此时系统会弹出一个导入完成的对话框(图5的中部),按“确定”按钮。

图5

完成以上步骤,我们就成功的把数据就从Excel中导入到Access中了。希望通过这篇文章,能帮助有所需要的朋友。

注:本文在Win2000+Excel2000+Access2000上运行通过。

篇7:远程管理SQL数据的方法数据库教程

数据

1、在的你计算机上安装sql server2000数据库的软件(注意:相同版本的数据库系统)

2、点击开始 -- 程序 -- Microsoft SQL Server -- 客户端网络实用工具 -- 另名 -- 点击添加 --- 网络库选取TCP/IP;服务器别名:数据库服务器的IP;服务器名称:数据库服务器的IP;端口默认1433 -- 确定

3、点击开始 -- 程序 -- Microsoft SQL Server -- 企业管理器 -- Mouse点 Microsoft SQL Servers -- mouse右键点 Sql Server 组;点新的sql server 注册.... -- 下一步 -- 增加主机IP,下一步---选”系统管理员给我分配的SQL Server登录信息....".

下一步 -- 登录名:用户名、密码:密码、下一步 -- ……

4、联接成功后;请您找到您的数据库;你就可管理你的数据库,

注:不要越权。一般情况下你是只能看到别的数据库的名称而没有管理权限

---------------------------------------------------------------------

一.设置客户端网络实用工具

点击“开始”-“程序”,在“Microsoft SQL Server”菜单中选择“客户端网络实用工具”,

在“别名”选项中点击“添加”。

在“服务器别名”中,填入您网站域名,在“网络库”区域中点击“TCP/IP”,在“连接参数”区域取消“动态决定端口”,指定“端口号”为2433。填写完毕后,点击“确定”按钮保存配置。

二.企业管理器的使用

点击“开始”-“程序”,在“Microsoft SQL Server”菜单中打开“企业管理器”。在企业管理器中,右键单击“SQL Server组”,选择“新建SQL Server注册”。

此时会出现SQL Server属性窗口,在“服务器”中填入您网站的域名,选择“使用SQL Server身份验证”,“登录名”和“密码”分别填入主机开通邮件中的用户名和密码,然后点击“确定”。

连接成功后,你会看到“SQL Server组”中多了一个名称为您网站域名的服务器。此时,您就可以像操作本地SQL数据库一样管理网站数据库了。

注意事项

如果连接的时候出现超时错误,更改超时时间即可,方法是点击“工具”-“选项”。

在属性窗口中选择“高级”选项卡,将“登录超时”的数值设置为0。

篇8:Excel教程:导入数据与链接数据库

Excel 2007拥 有强大的数据整理、分析能力,能够帮助我们完成日常工作中大部分的数据处理任务,要整理、分析数据,首先必须把数据装进Excel里面。除了逐一录入而 外,导入、连接数据库也是让Excel获得数据信息的重要方法。今天的专题主要以最新的Excel 2007为对象,介绍如何快速把各种数据导入Excel中,以及如何与外部数据库进行连接。另外,我们还推荐一些与Excel数据处理的相关内容。

Excel工作簿连接(导入)外部数据的方法

Excel和Access间复制、导入和导出数据

使用向导将数据从文本文件导入Excel中

从SharePoint列表往Excel导入数据

往Excel中导入文本数据的三种方法

掌握要领 实现Excel动态链接外部数据库

编辑管理Excel工作簿到外部数据的连接

实时更新Excel文档外部数据源的数据

使用Microsoft Query检索Excel外部数据

远程管理SQL数据的方法数据库教程

ChangeAllObjectOwner数据库教程

实现千万级数据的分页显示数据库教程

Excel 访问远程数据的四种方法数据库教程

项目管理数据库教程

复制监视器数据库教程

组合查询数据库教程

如何实现100%的动态数据管道(二)数据库教程

如何实现100%的动态数据管道(三)数据库教程

删除Oracle 9i数据库数据库教程

为下拉式数据窗口建立缓冲区数据库教程(精选8篇)

欢迎下载DOC格式的为下拉式数据窗口建立缓冲区数据库教程,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档