友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
第三电子书 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

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)                                                       翻译人   
返回目录 上一页 下一页 回到顶部 1 1
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!