友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
SQL 21日自学通(V3.0)(PDF格式)-第53部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
两类 静态 SQL 不能是运行时进行修改 而动态 SQL 可以允许一定程序的修改
问与答
问 如果我创建了一个临时表 是否其它的用户可以使用我的表
答 不能 临时表只能由它的创建者使用
问 为什么我必须关闭和释放游标
答 内存仍为游标所占用 既使它的名字不存在了也依然是这样
校练场
1 MICIRSOFT VISUAL C++可以让程序员直接调用 ODBC 的 API 函数 对不对
2 ODBC 的 API 函数只能由 C 语言直接调用 对不对
3 动态 SQL 需要进行预编译 对不对
4 临时表中的#提示符是干什么用的
282
…………………………………………………………Page 283……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
5 在将游标从内存中关闭后必须做什么
6 能不能是 SELECT 语句中使用触发机制
7 如果你在表中创建了触发机制然后你把表删除了 那么触发机制还存在吗
练习
1 创建一个示例数据库应用程序 在今天我们使用了音乐收藏数据库作为示例 并对
应用程序进行合理的数据分组
2 列出你想要在数据库中完成的查询
3 列出你要在维护数据库中需要的各种规则
4 为你在第一步创建的数据库逻辑给创建不同的数据库计划
5 将第二步中的查询转变为存贮过程
6 将第三步中的规则转变为触发机制
7 将第 4 步与第 5 步结合起来 与第 6 步一起生成一个脚本 其中包括所有的与该数
据库相关联的过程
8 插入一些示例数据 这一步可以作为第 7 步生成脚本的一部分
9 执行你所创建的这些过程并检证它的功能
283
…………………………………………………………Page 284……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
第 14 天 动态使用 SQL
目标
今天这一课的目的是把我们到现在为止所学习的付诸于应用 在今天的内容中我们将
学习如何在实际编程中使用 SQL 我们主要讨论在 WINDOWS 下的编程环境 但是编程
的原理也适用于其它的软件平台 在今天之中我们将学习
l 不同的商业产品 — — Personal Oracle 7 开放数据库联接 ODBC InterBase
ISQL MicroSoft Visual C++ 和 BORLAND DELPHI 中 SQL 的差别
l 如何正确的为使用 SQL 来设置你的环境
l 如何使用 ORACLE 7 MicroSoft Query 和 InterBase ISQL 来创建数据库
l 如何在 VISUAL C++和 DELPHI 中使用 SQL
快速入门
这一部分将主要介绍一些在 WINDOWS 操作系统下的商业产品以及它们是如何与 SQL
产生联系的 所涉及的基本原理如果在产品中没有进行特别的说明那么也可以在其它的软
件平台中使用
ODBC
ODBC 是 WINDOWS 操作系统的一种底层技术 它可以让基本 WINDOWS 的程序通
过驱动程序来访问数据库 与每种数据库系统所提供的用户界面不同 你可以用它来将你
所要完成的工作完成的非常好 你可以通过你所选择的驱动来联接进行数据库 ODBC 的
概念与 WINDOWS 的打印机驱动的概念非常相似— — 它可以让你写的程序与具体的打印机
无关 与此相对应的是在 DOS 下你不得不自己来考虑和编写相关的打印机驱动程序 所以
你可以将你更多的精力来投入到你的程序上 而不是写打印驱动
ODBC 将这一思想应用到了数据库上 你可以在 WINDOWS 3。1 3。11 和 95 的控制面
板中找到它 在 WINDOWS NT 中它有着自己的程序组
284
…………………………………………………………Page 285……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
我们将在今天创建数据库的时候讨论更多的关于 ODBC 的细节
Personal Oracle 7
Personal Oracle 7 是近来在 PC 数据库市场上最流行的数据库系统 不必安装 Personal
Oracle 7 的全部程序 我们在前几天中所使用的例子只是用了 ORACLE DATABASE
MANGER 和 SQL*PLUS 3。3 SQL*PLUS 的如下图所示
InterBase SQL ISQL
一些其它的例子所使用的工具是 Borland’s ISQL 它在本质上与 ORACLE7 是相同的
只不过 ORACLE 7 是字符型界面而 ISQL 则更具有 WINDOWS 的风格
在下图中给出了 ISQL 的界面 你可以在上边的编辑框中输入 SQL 语句 结果将会出
现在下边的编辑框中 按向上和向下按钮则可以翻阅你在一次会话中的所有查询
285
…………………………………………………………Page 286……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
Visual C++
关于 Visual C++ 的书有几十本 在本书的例子中我们使用的是它的 1。52 版 我们所使
用的过程可以应用于它的 32 位版的 C++ 2。0 在这里使用它是应用它有一个 ODBC 的简单
界面 它不但具有编译联接到数据库的能力 而且如果你想使用其它的编译器的话 那么
这里将会是一个非常好的出发点
Visual C++提供了不少的工具 我们这里只使用其中的两个 编译器和原代码编辑器
Delphi
我们最后要说的工具是 Borland’s Delphi 它是许多新书中讨论的主题 它为不同的数
据库提供了一个可以升级的界面
我们使用它的两个程序 InterBase Server 和 Windows ISQL WISQL
设置
在进行的足够的介绍以后我们来开始工作 在你安装完你的 SQL 引擎或 ODBC 兼容
的编译器以后 在演员开始使用材料进行工作之前你必须指定舞台 无论是 Oracle 7 还是
InterBase 你都需要进行登录并为你自己设立一个帐号 这一过程在本质上来说是相同的
最困难的工作是为默认的口令分配硬拷贝和在线文档 这两种系统都有默认的系统管理员
账号 见下图
在登录和创建了用户账号以后 我们就可以创建数据库了
286
…………………………………………………………Page 287……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
创建数据库
从这一步开始 我们对 SQL 所学习的将开始得到回报 首先 你需要启动一个你想要
使用的数据库 下图表明 Oracle 7 默认是停止状态的
当你看到绿灯以后 你就可以启动如下图所示的 SQL*PLUS 了
在这里你可以使用 CREATE 和 INSERT 命令来创建表和输入你想使用的数据了 另一
种常用的方法是用脚本来创建表和输入数据 脚本通常是一个包含适当的 SQL 命令集合的
文本文件 请看下边这个用于 Oracle 7 的脚本文件
……………………………………………………………………………………………………………………………………………………………
…Script to build seed database for Personal Oracle
………………………………………………………………………………………………………………………………………………………
…NTES
Called from buildall。sql
…MODIFICATIONS
287
…………………………………………………………Page 288……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
… rs 12/04/94 ment; clean up; resize; for production
……………………………………………………………………………………………………………………………………………………………
startup nomount pfile=%rdbms71%init。ora
… Create database for Windows RDBMS
create database oracle
controlfile reuse
logfile '%oracle_home%dbswdblog1。ora' size 400K reuse;
'%oracle_home%dbswdblog2。ora' size 400K reuse
datafile '%oracle_home%dbswdbsys。ora' size 10M reuse
character set WE8ISO8859P1;
实际的 SQL 语法随着你所使用的数据库的不同而有一些差别 所以你应该看一下你的
随机文档 并在你的 SQL 引擎中选择 文件 〃E 打开 来装入脚本文件
Borland's InterBase 使用相同的方法来装入数据 下边是从一个文件中摘出的插入数据
的片断
/* Add countries。 */
INSERT INTO country (country; currency) VALUES ('USA'; 'Dollar');
INSERT INTO country (country; currency) VALUES ('England'; 'Pound');
INSERT INTO country (country; currency) VALUES ('Canada'; 'CdnDlr');
INSERT INTO country (country; currency) VALUES ('Switzerland'; 'SFranc');
INSERT INTO country (country; currency) VALUES ('Japan'; 'Yen');
INSERT INTO country (country; currency) VALUES ('Italy'; 'Lira');
INSERT INTO country (country; currency) VALUES ('France'; 'FFranc');
INSERT INTO country (country; currency) VALUES ('Germany'; 'D…Mark');
INSERT INTO country (country; currency) VALUES ('Australia'; 'ADollar');
INSERT INTO country (country; currency) VALUES ('Hong Kong'; 'HKDollar');
INSERT INTO country (country; currency) VALUES ('Netherlands'; 'Guilder');
INSERT INTO country (country; currency) VALUES ('Belgium'; 'BFranc');
INSERT INTO country (country; currency) VALUES ('Austria'; 'Schilling');
INSERT INTO country (country; currency) VALUES ('Fiji'; 'fdollar');
分析
288
…………………………………………………………Page 289……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
在本例中是向 COUNTRY 表中插入国家的名字和该国家所使用的货币类型 关于插入
语句的使用请参阅第 8 天 维护数据
这里边并没有什么魔术 程序员总可以找到一些方法来减少击键的次数 如果你是在
家中进行尝试 那么请试着输入下边的表
INPUT
/* Table: CUSTOMER; Owner: PERKINS */
CREATE TABLE CUSTOMER (NAME CHAR(10);
ADDRESS CHAR(10);
STATE CHAR(2);
ZIP CHAR(10);
PHONE CHAR(11);
REMARKS CHAR(10));
INPUT
/* Table: ORDERS; Owner: PERKINS */
CREATE TABLE ORDERS (ORDEREDON DATE;
NAME CHAR(10);
PARTNUM INTEGER;
QUANTITY INTEGER;
REMARKS CHAR(10));
INPUT
/* Table: PART; Owner: PERKINS */
CREATE TABLE PART (PARTNUM INTEGER;
DESCRIPTION CHAR(20);
PRICE NUMERIC(9; 2));
然后向这些表中输入下边的数据
INPUT/OUTPUT
SELECT * FROM CUSTOMER
NAME ADDRESS STATE ZIP PHONE REMARKS
TRUE WHEEL 55O HUSKER NE 58702 555…4545 NONE
BIKE SPEC CPT SHRIVE LA 45678 555…1234 NONE
289
…………………………………………………………Page 290……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!