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

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

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






           345。25                         348。03                           7 



           1250。76                       1431。26                           8 



     在上边的例子中创建了一个叫 SAVE_IT 的保存点  UPDATE 语句更新了结算平衡表中 



的 CURR_BAL 列  你在其后设置了一个保存点  在保存之后                              你又运行了 DELETE 命令 



系统退回到了保存点处               之后你对事务用 MIT  命令进行了确认  结果所有在保存点 



之前的命令得到了确认 



     如果你在其后又使用了 ROLLBACK  命令                     那么将会取消当前的事务而不会有任何的 



改变 



     在 ORACLE 中的例子如下 



INPUT 



SQL》 SET TRANSACTION 



                                                                                       234 


…………………………………………………………Page 235……………………………………………………………

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



SQL》 UPDATE BALANCES SET CURR_BAL = 25000 WHERE ACCOUNT_ID = 5 



SQL》 SAVEPOINT save_it 



SQL》 DELETE FROM BALANCES WHERE ACCOUNT_ID = 5 



SQL》 ROLLBACK TO SAVEPOINT save_it 



SQL》 ROLLBACK 



SQL》 SELECT * FROM BALANCES 



BALANCE 表的内容如下 



Average_Bal                      Curr_Bal                         Account_ID 



1298。53                          854。22                           1 



5427。22                          6015。96                          2 



211。25                           190。01                           3 



73。79                            25。87                            4 



1285。90                          1473。75                          5 



1234。56                          1543。67                          6 



345。25                           348。03                           7 



1250。76                          1431。26                          8 



Sybase SQL 语法的例子如下 



INPUT 



1》begin transaction 



2》update BALANCES set Curr_Bal = 25000 where Account_ID = 5 



3》save transaction save_it 



4》delete from BALANCES where Account_ID = 5 



5》rollback transaction save_it 



6》rollback transaction 



7》go 



1》select * from BALANCES 



2》go 



Average_Bal                      Curr_Bal                         Account_ID 



1298。53                          854。22                           1 



5427。22                          6015。96                          2 



211。25                           190。01                           3 



73。79                            25。87                            4 



                                                                                             235 


…………………………………………………………Page 236……………………………………………………………

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



1285。90                      1473。75                     5 



1234。56                      1543。67                     6 



345。25                       348。03                      7 



1250。76                      1431。26                     8 



总结 



    事务可以被定义为一个有组织的工作单元                       事务通常会执行一系列的以前学过的操作 



如果由于一些原因使得操作没有如所期望地执行  那么可以在事务中取消这些操作                                         反之 



如果操作全部正确执行了  那么事务中的工作可以确认 



    可以使用 ROLLBACK 命令来取消事务                 确认事务的命令为 MIT              SQL 用非常相 



似的语法来支持这两类过程 



SYNTAX 



    BEGIN TRANSACTION 



              statement  1 



              statement  2 



              statement  3 



    ROLLBACK TRANSACTION 



或 



SYNTAX 



    BEGIN TRANSACTION 



              statement  1 



              statement  2 



              statement  3 



    MIT TRANSACTION 



问与答 



问  如果我有一组事务  其中一个是不成功的                       我是否可以确认其它的事务过程 



答   不可以      必须整组的事务都是成功的才可以 



问  在使用的 MIT  命令以后  我发现我犯了一个错误                          那么我怎样才能更正这个错 



                                                                                 236 


…………………………………………………………Page 237……………………………………………………………

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



误 



答  使用 DELETE   INSERT  或 UPDATE 语句  ROLLBACK 在这时是不行的 



问  在怎个事务结束以后我都必须使用 MIT 命令确认吗 



答   不必  但是在确认没有错误而且在之前没有事务在运行时使用 MIT 会更安全 



校练场 



1   在嵌套的事务中      是否可以使用 ROLLBACK  命令来取消当前事务并回退到上级事务 



   中  为什么 



2   使用保存点是否可以保存事务的一部分             为什么 



3   MIT 命令是否可以单独使用         它一定要嵌套吗 



4   如果你在 MIT 命令后发现的错误          你是否还可以使用 ROLLBACK 命令 



4  在事务中使用保存点是否可以自动地将之前的改动自动地保存 



练习 



1   使用 PERSONAL ORACLE7  的语法来更正下边的语法 



   SQL》 START TRANSACTION INSERT INTO CUSTOMERS VALUES ('SMITH'; 'JOHN') 



   SQL》 MIT 



2   使用 PERSONAL ORACLE7  的语法来更正下边的语法 



   SQL》 SET TRANSACTION 



             UPDATE  BALANCES  SET  CURR_BAL  =  25000 



   SQL》 MIT 



3   使用 PERSONAL ORACLE7  的语法来更正下边的语法 



   SQL》 SET TRANSACTION 



             INSERT  INTO  BALANCES  VALUES    ('567。34';  '230。00';  '8') 



   SQL》 ROLLBACK 



                                                                  237 


…………………………………………………………Page 238……………………………………………………………

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



第 12 天    数据库安全 



   今天我们来讨论一下数据库的安全问题      我们已经很清楚地看到不同的 SQL 语句可以 



使我们具有管理关系型数据库系统的能力       与我们到今天为止所学习的其它主题一样        一 



个数据库管理系统是如何在不同的产品中实现安全的呢         对于这个问题我们今天将以流行 



的 ORACLE 7 数据库系统为例 到今天的结束时我们将具有以下能力 



   l  创建用户 



   l  更改密码 



   l  创建角色 



   l  为安全的目的而使用视图 



   l  在视图中使用同义词 



前提    数据库管理员 



   安全问题在数据库的设计过程中常常会被忽略  许多计算机工作人员在进入计算机领 



域时有计算机的编程知识或硬件知识  并且他们也会将精力注重于这一方面           例如  如果 



你的老板要求你开展一个新的项目      而这个项目很明显地需要一个关系型的数据库时         那 



你第一步想要做的工作是什么      在确定的相应的硬件和软件平台以后  你也许会开始设计 



项目中的基本的数据库结构了  这一阶段会分给许多人去做         其中一些人是图形用户界面 



设计者  另一些底层组件的设计者     也许你在读过本书以后会要求编写用于提供给客户应 



用程序所使用查询的 SQL 代码   而与这项任务随之而来的是你可能会成为一个数据库的管 



理和维护人员 



   在很多时候   当我们在真正实施这个项目时我们需要考虑或计划到一点         那就是当众 



多的用户通过广域网使用你的应用程序时会有什么情况发生  根据今天个人计算机的强大 



软件和硬件以及微软的开放数据库联接  ODBC      任何连接于网络的用户都会有办法得到 



你的数据库    我们不想在当我们公司的计算机准备联入 internet 时或类似的大型网络时有 



麻烦出现  那么我们应该如何面对这一情况 



   非常幸运  软件供应商已经为你处理安全问题提供了许多的工具  每一个新的网络操 



作系统都会面对着比它的上一代更为严格的安全性要求         此外  许多的数据库供应商也都 



                                                 238 


…………………………………………………………Page 239……………………………………………………………

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



在它们的数据库系统提供了不同程度的        与你的网络操作系统安全相独立的安全性  所以 



想在不同的产品中实现安全性的方法是非常广泛的 



流行的数据库产品与安全 



   就像你所知道的那样     许多数据库管理系统为你的生意而存在着商业竞争         在一个项 



目的开发过程中  你可能会只购买少数的许可证用以测试  开发以及其它的目的  但是 



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