友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

SQL 21日自学通(V3.0)(PDF格式)-第135章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






TRANSACT…SQL  中的通配符 



   在 SQL  中使用通配符的内容是在第 3       天的  表达式     条件与操作    中介绍的  LIKE 



可以让你在 SQL 语句中使用通配符  通配符的使用增加了灵活性  在 TRANSACT…SQL  中 



可供使用的通配符如下 



   l   下划线可以代表任何单个的字符 例如 _MITH 就是查询 5 个字符并且是以 MITH 



       结尾的 



   l   百分号可以代表一个或多个字符          例如  WILL%通配符可以返回 WILLIAMS      和 



      WILL 



   l   中括号可以匹配在括号内的字符  例如  'ABC'可以查询包括 A             B C 的字符串 



   l  如果在中括号中使用了脱字符^          那就是说匹配所有的字符但不包括中括号中给出 



       的  例如   '^ABC'表示查询所有的字符      除了 A  B  C 



使用 PUTE 来生成摘要报告 



   TRANSACT…SQL 也具有生成摘要报告的能力  其命令为 PUTE            它的语法与它 



在 SQL*PLUS  的语法极为相似  见第 20 天的     SQL*PULS 



   下边的查询将会产生关于所有击球手的报告  包括每个击球手的本垒数和所有击球手 



总的本垒数 



输入 



   select  name;  homeruns    from  batters    pute  sum(homeruns) 



分析 



   在上一个例子中      PUTE 独自对报告进行了估算        然而 PUTE  BY  则可以对 



整个报告进行分组评估        如下例所示 



语法 



   PUTE FUNCTION(expression) 'BY expression' 



     where the FUNCTION might include SUM; MAX; MIN; etc。 and 



     EXPRESSION is usually a column name or alias。 



                                                             428 


…………………………………………………………Page 429……………………………………………………………

SQL 21  日自学通(V1。0)                                                 翻译人    笨猪 



日期转换 



    SYBASE 与 MICROSOFT SQL SERVER 可以向表中插入不同格式的日期  它们也可以 



用不同的格式来表达日期  在这一部分将告诉你如何使用 SQL  SERVER                         的 CONVERT    来 



实现多种形式的日期显示方法 



语法 



    CONVERT (datatype '(length)'; expression; format) 



    在 SQL SERVER 中使用 CONVERT  时有下列日期格式是可用的 



                 Format code  Format picture 

                 100          mon dd yyyy hh:miAM/PM 

                 101          mm/dd/yy 

                 102          yy。mm。dd 

                 103          dd/mm/yy 

                 104          dd。mm。yy 

                 105          dd…mm…yy 

                 106          dd mon yy 

                 107          mon dd; yy 

                 108          hh:mi:ss 

                 109          mon dd; yyyy hh:mi:ss:mmmAM/PM 

                 110          mm…dd…yy 

                 111          yy/mm/dd 

                 112          yymmdd 



输入 



    select 〃PayDate〃 = convert(char(15); paydate; 107) from payment_table where customer_id = 012845 



输出 



    PayDate 



    May 1; 1997 



分析 



    在上例中使用的 CONVERT  转换格式中的 107              从上表中可以知道          107 将以 MON 



DD   YY 的形式显示日期 



SQL SERVER 的诊断工具—  — SET 命令 



    TRANSACT…SQL    提供了一系列的 SET         命令可以让你打开不同的选项以帮助分析 



TRANSACT…SQL 的语句  这里给出了一些常见的 SET 命令 



    l   SET STATISTICS IO ON 可以让服务器返回请示的物理和逻辑页数 



                                                                           429 


…………………………………………………………Page 430……………………………………………………………

SQL 21  日自学通(V1。0)                                  翻译人  笨猪 



   l  SET STATISTICS TIME O 可以让服务器返回语句的运行时间 



   l  SET SHOWPLAN ON  可以让服务器返回当前正在运行的计划中的查询 



   l  SET NOEXEC ON 可以让服务器编译设计过的查询但不运行 



   l  SET PARSONLY ON 可以让服务器对所设计的查询进行语法检查  但并不运行 



   TRANSACT…SQL 也提供下边的命令来帮助你对输出的显示进行控制 



   l  SET ROWCOUNT N 可以让服务器只返回查询中的前 N 行 



   l  SET NOCOUNT ON 不必报告查询所返回的行数 



注  如果你对 TRANSACT…SQL 的语句调整比较关心 SQL     那么请参见第 15 天的  对 SQL 



   语句的优化以提高性能 



总结 



   今天所讨论的主题增加了你对使用 SQL  编程的一些知识           关于基本的 SQL   内容你已 



经在前些天学习过了      它为你进行数据库编程打下了一个良好的基础  但是             这些内容只 



是基本的东西     SQL  过程语言的概念已经在昨天解释过了         今天你又学习了一种基本的 



SQL 这对于你—  — 数据库程序员 — — 在访问数据库时提供了强大的功能 



   在 SYBASE 和 MICROSOFT  的 SQL  SERVER 中的 TRANSACT…SQL 提供了许多你可 



以在第三代编程语言和第四代编程语言中可以找到的编程结构  这包括 IF               条件与 WHILE 



循环以及局部和全局变量的定义能力 



   需要明白的是今天所介绍的内容只是 TRANSACT…SQL        的基本特性和技术  并对所有 



你可用的工具有了一个感性的认识  对于它的更详细的内容你需要参见 MICROSOFT  SQL 



SERVER 的 TRANSACT…SQL 文档 



问与答 



问  在 SQL 中是否提供了 FOR 循环 



答  像 FOR 循环  WHILE 循环以及 CASE 分支等都是对 ANSI 标准的 SQL  的扩展  所以 



   对于不同的数据库系统它们的使用方法有很大的不同 例如 在 ORACLE 中提供了 FOR 



   循环  而在 TRANSACT…SQL  中就没有提供  当然  可以在 WHILE 循环都使用一个变 



   量来模拟 FOR 循环 



                                                         430 


…………………………………………………………Page 431……………………………………………………………

SQL 21  日自学通(V1。0)                                翻译人  笨猪 



问  如果我写一个 GUI   风格的 WINDOWS  或 MACINTOSH  应用程序   其中有对话框 



   之类的元素  这时我是否可以使用 PRINT 语句来向用户输出信息 



答  SQL 与平台是完全独立的  所以 PRINT 语句不能将信息输出至对话框中          如果你想输 



   出信息给用户  你的 SQL  过程将会返回一个预定义的值来表示成功或失败            而用户则 



   可以从查询的状态中得到通知        PRINT 命令在调试时最有用     因为在存储过程中的 



  PRINT 命令将不会总是向屏幕输出 



校练场 



问  在 ORACLE 的 PL/SQL  中与在 TRANSACT…SQL  中 SQL  字的使用方法与 ANSI  标准 



   的 SQL 是完全相同的  对不对 



问  静态的 SQL 比动态的 SQL 灵活性差  尽管它的性能要比动态的好  对不对 



练习 



1  如果你没有使用 SYBASE 或 MICR
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!