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

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

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






进行更新操作       其语法表达如下 



SYNTAX 



    UPDATE table_name SET columnname1 = value1 '; columname2 = value2'。。。 



    FROM table_list WHERE search_condition 



例 8。6 



    这是一个实例 



    INPUT 



    SQL》 UPDATE COLLECTION SET WORTH = WORTH * 0。005 



INPUT/OUTPUT 



    SQL》 SELECT * FROM COLLECTION 



  ITEM                     WORTH     REMARKS 



  NBA ALL STAR CARDS       2。775     SOME STILL IN BIKE SPOKES 



  MALIBU BARBIE            2。775     TAN NEEDS WORK 



  STAR WARS GLASS          2。775     HANDLE CHIPPED 



  LOCK OF SPOUSES HAIR     2。775     HASN'T NOTICED BALD SPOT YET 



  SUPERMANS CAPE           2。775     TUGGED ON IT 



  STRING                   2。775     SOME DAY IT WILL BE VALUABLE 



分析 



    该语法在当给定表需要更新的内容源自于其它多个表的时候非常有用  切记该语法不 



是标准语法      在使用它之前请先查看一下你所使用的数据库的文档看一看它是否为你的数 



据库系统所支持 



    UPDATE  语句也可以用一个数学运算式的结果来对给定数据进行更新操作                         当使用这 



项技术时     必须注意你所使用的表达式结果与需要更新的数据字段为同一种数据类型                             而 



                                                                      167 


…………………………………………………………Page 168……………………………………………………………

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



且其长度也要与被更新字段的定义长度相符 



   当使用计算值时可能会有两个问题产生         截断和溢出    例如当将一个小数转换为整数 



时可能会有截断的情况产生  而当计算的结果超过了该字段的定义数据长度时会导致溢出 



这会使你的数据库返回一个错误 



注  一些数据库系统可以为你处理溢出问题  ORACLE  7      可以在这时将其转成指数形式以 



  避免错误    但是你要清楚在使用数据类型时这种错误存在的可能性 



技巧  如果在你更新列的以后发现了错误  你可以使用 ROLLBACK  语句来取消更新操作 



     就像你对 INSERT  所做的那样   关于该命令在第 11 天会有更多的介绍 



DELETE 语句 



   与向数据库中加入数据相对应  你可能需要删除数据库中的数据  DELETE  语句的语 



法格式如下 



   SYNTAX 



   DELETE FROM tablename  WHERE condition 



   对于 DELETE 命令你需要注意的第一件事就是它不会出现确认提示           而用户似乎已经 



习惯于确认提示了 举例来说 当我们在操作系统中删除了某个文件或目录时 Are you sure? 



(Y/N)经常会在命令执行之前出现  在使用 SQL  时    当你告诉 DBMS  从表中删除一组记录 



时  它会执行你的命令而不提问       也就是说   当你用 SQL 的 DELETE  命令删除记录时 



它确实已经执行了删除操作 



   在第 11 天中我们将会学习到事务处理控制  事务控制是一种数据库处理机制             它允许 



编程人员确认或撤消对数据库的改变  该操作对于在线事务处理程序中采用批处理方式对 



数据库进行改动时非常有效       然而如果同一时间又有其他的用户也在进行数据修改操作时 



将会导致引用完整性错误      现在  假设不存在事务处理机制 



注  对于一些解释器    例如 ORACLE  当你在即出 SQL 的时候会自动地调用确认操作 



   通过 DELETE 语句和 WHERE 子句  DELETE 语句可以完成下边的工作 



      l  删除单一的行 



      l  删除多个行 



      l  删除所有的行 



                                                      168 


…………………………………………………………Page 169……………………………………………………………

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



        l   什么也不删除 



    在使用 DELETE 语句时需要注意以下几点 



        l  DELETE 不能删除个别的字段  它对于给定表只能整个记录整个记录地删除 



        l   与 INSERT  和 UPDATE 一样  删除一个表中的记录可能会导致与其它表的引 



            用完整性问题       当对数据库进行修改时一定在头脑中有这个概念 



        l  DELETE 语句只会删除记录 不会删除表 如果要删除表需使用 DROP TABLE 



            命令   参见第 9 天 



例 8。7 



    下例显示了如何删除 COLLECTION 表中的 WORTH 小于 275  的所有记录 



INPUT 



    SQL》 DELETE FROM COLLECTION WHERE WORTH 《 275 



    4 rows deleted。 



    之后表的内容如下 



INPUT/OUTPUT 



    SQL》 SELECT * FROM COLLECTION 



    ITEM                      WORTH    REMARKS 



    NBA ALL STAR CARDS        300       SOME STILL IN BIKE SPOKES 



    STRING                    1000      SOME DAY IT WILL BE VALUABLE 



注  与 UPDATE 语句一样  如果你省略了 WHERE 子句  那么表中的所有记录都会被删除 



例 8。8 中则使用了三种数据操作语句来完成一个数据操作过程 



例 8。8 



INPUT 



    SQL》 INSERT INTO COLLECTION VALUES('CHIA PET'; 5;'WEDDING GIFT') 



OUTPUT 



    1 row created。 



INPUT 



    SQL》 INSERT INTO COLLECTION 



      2  VALUES('TRS MODEL III'; 50; 'FIRST PUTER'); 



OUTPUT 



                                                                          169 


…………………………………………………………Page 170……………………………………………………………

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



    1 row created。 



    现在     建立一个新表并向其中复制数据 



INPUT/OUTPUT 



SQL》 CREATE TABLE TEMP (NAME CHAR(20); VALUE NUMBER; REMARKS CHAR(40)) 



Table created。 



INPUT/OUTPUT 



SQL》 INSERT INTO TEMP(NAME; VALUE; REMARKS) 



        2    SELECT  ITEM;  WORTH;  REMARKS  FROM  COLLECTION; 



    4 rows created。 



INPUT/OUTPUT 



    SQL》 SELECT * FROM TEMP; 



   NAME                         VALUE        REMARKS 



   NBA ALL STAR CARDS           300          SOME STILL IN BIKE SPOKES 



   STRING                        1000        SOME DAY IT WILL BE VALUABLE 



   CHIA PET                     5            WEDDING GIFT 



   TRS MODEL III                50           FIRST PUTER 



    现在     改变其中的数值 



INPUT/OUTPUT 



    SQL》 UPDATE TEMP SET VALUE = 100 WHERE NAME = 'TRS MODEL III' 



    1 row updated。 



INPUT/OUTPUT 



    SQL》 UPDATE TEMP SET VALUE = 8 WHERE NAME = 'CHIA PET'; 



    1 row updated。 



INPUT/OUTPUT 



    SQL》 SELECT * FROM TEMP; 



    NAME                         VALUE      REMARKS 



    NBA ALL STAR CARDS           300        SOME STILL IN BIKE SPOKES 



    STRING                        1000      SOME DAY IT WILL BE VALUABLE 



    CHIA PET                     8          WEDDING GIFT 



    TRS MODEL III                 100       FIRST PUTER 



    然后将这些数据更新回原始表中 



                                                                                  170 


…………………………………………………………Page 171……………………………………………………………

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



INPUT 



   INSERT COLLECTION SELECT * FROM TEMP 



   DROP TABLE TEMP 



分析 



   关于 CREATE  TABLE 和 DROP  TABLE 语句将在第 9 天作详细讨论  现在  这些语句 



的作用基本上与它们的名字是一样的  CREATE  TABLE 会按照你给的格式建立一个新表 



而 DROP TABLE 则会删除表  切记 DROP TABLE 会删除中而 DELETE 只会删除表中的记 



录 



   为了验证你的工作       你可以选出 COLLECTION  表中的内容        你会看到你改动后的结 



果 



INPUT/OUTPUT 



   SQL》 SELECT * FROM COLLECTION; 



   NAME                   VALUE   REMARKS 



   NBA ALL STAR CARDS     300     SOME STILL IN BIKE SPOKES 



   STRING                 1000    SOME DAY IT WILL BE VALUABLE 



   CHIA PET               8       WEDDING GIFT 



   TRS MODEL III          100     FIRST PUTER 



分析 



   上边的例子使用了所有的操作数据的三个语句  INSERT               UPDATE  和 DELETE  来对 



一个表完成一组操作  DELETE 是这三个语句中最容易使用的 



警告  切记对数据的操作可能会导致引用完整性问题                 你要认真地检查数据库中所有表的 



    所有记录以确保正确无误 



从外部数据源中导入和导出数据 



   INSERT  UPDATE 和 DELETE 语句对于数据库程序而言是非常有用的  它与 SELECT 



语句一起为你将要进行的其它数据操作奠定了基础                然而    SQL  作为一种语言并不提供从 



外部数据源中导入和导出数据的方法  例如              以前你的办公室用了多年的 dBASE  数据库 


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