八宝书库 > 文学其他电子书 > SQL 21日自学通(V3.0)(PDF格式) >

第98部分

SQL 21日自学通(V3.0)(PDF格式)-第98部分

小说: SQL 21日自学通(V3.0)(PDF格式) 字数: 每页4000字

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






       可以 



练习答案 



    4    在表的自我联接这部分             最后的一个例子返回了两个结果  请重写这个查询使它对 



        多余的记录只返回一个结果 



        INPUT/OUTPUT: 



        SELECT F。PARTNUM; F。DESCRIPTION; 



        S。PARTNUM;S。DESCRIPTION 



        FROM PART F; PART S 



        WHERE F。PARTNUM = S。PARTNUM 



        AND F。DESCRIPTION  S。DESCRIPTION 



        AND F。DESCRIPTION 》 S。DESCRIPTION 



PARTNUM           DESCRIPTION         PARTNUM            DESCRIPTION 



76                ROAD BIKE                      76      CLIPPLESS SHOE 



    5    重写下边的查询使它更可读和简炼 



         INPUT: 



         select orders。orderedon; orders。name; part。partnum;part。price; part。description 



         from orders; part 



         where orders。partnum = part。partnum and orders。orderedon 



         between '1…SEP…96' and '30…SEP…96' order by part。partnum 



答   select o。orderedon ORDER_DATE; o。name NAME; p。partnum PART#; 



                      p。price  PRICE;  p。description  DESCRIPTION 



          from  orders  o;  part  p 



          where  o。partnum  =  p。partnum 



                      and  o。orderedon  like  '%SEP%' 



          order  by  ORDER_DATE; 



    6    使用 ORDERS 表和 PART 表         返回下边的结果 



                                                                                    543 


…………………………………………………………Page 544……………………………………………………………

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



    OUTPUT 



          ORDEREDON      NAME            PARTNUM      QUANTITY 



          2…SEP…96       TRUE WHEEL      10           1 



答   Select o。orderedon ORDEREDON; o。name NAME; 



                  p。partnum  PARTNUM;  o。quanity  QUANITY 



        from  orders  o;part  p 



        where  o。partnum  =  p。partnum 



                  and  o。orderedon  like  '%SEP%'; 



还有许多种写法 



第 7 天        子查询         内嵌的 SELECT 语句 



问题答案 



1  在嵌套查询部分        有一个例子中子查询返回了以下几个数值 



         LE SHOPPE 



         BIKE SPEC 



         LE SHOPPE 



         BIKE SPEC 



         JACKS BIKE 



    其中有一些结果是重复的            为什么在最终的结果中没有出现重复 



    由于查询调用了子查询  所以在最后的结果中没有出现重复 



        SELECT ALL C。NAME; C。ADDRESS; C。STATE;C。ZIP 



        FROM CUSTOMER C 



        WHERE C。NAME IN 



    只会返回 NAME 的州为 IN  的记录  这里不要为 IN 在复杂语句里的简写所迷糊 



2  下面的话是对还是错 



      4   汇总函数如 SUM      AVG   COUNT   MAX    MIN  都返回多个数值        不对  它们 



         都返回多个数值 



      5   子查询最多允许嵌套两层            不对  嵌套层数的限制是根据你的解释器而定的 



      6   相关子查询是完全的独立查询              不对  相关子查询中你使用外部引用 



                                                                          544 


…………………………………………………………Page 545……………………………………………………………

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



3  下边的子查询中哪一个是使用 ORDERS 表和 PART 表工作的 



    INPUT/OUTPUT 



    SQL》 SELECT * FROM PART; 



          PARTNUM      DESCRIPTION          PRICE 



          54           PEDALS               54。25 



          42           SEATS                24。50 



          46           TIRES                 15。25 



          23           MOUNTAIN BIKE        350。45 



          76           ROAD BIKE            530。00 



          10           TANDEM                1200。00 



INPUT/OUTPUT 



SQL》 SELECT * FROM ORDERS 



     ORDEREDON        NAME             PARTNUM      QUANITY        REMARKS 



     15…MAY…96        TRUE WHEEL       23           6              PAID 



     19…MAY…96        TRUE WHEEL       76           3              PAID 



     2…SEP…96         TRUE WHEEL       10           1              PAID 



     30…JUN…96        BIKE SPEC        54            10            PAID 



     30…MAY…96        BIKE SPEC        10           2              PAID 



     30…MAY…96        BIKE SPEC        23           8              PAID 



     17…JAN…96        BIKE SPEC        76            11            PAID 



     17…JAN…96        LE SHOPPE        76           5              PAID 



     1…JUN…96         LE SHOPPE        10           3              PAID 



     1…JUN…96         AAA BIKE         10           1              PAID 



     1…JUN…96         AAA BIKE         76           4              PAID 



     1…JUN…96         AAA BIKE         46            14            PAID 



     11…JUL…96        JACKS BIKE       76            14            PAID 



    A   SQL》 SELECT * FROM ORDERS WHERE PARTNUM = 



             SELECT PARTNUM FROM PART 



             WHERE DESCRIPTION = 'TRUE WHEEL'; 



             不对  在子查询的周围没有括号 



    B  SQL》 SELECT PARTNUM FROM ORDERS WHERE PARTNUM = 



             (SELECT * FROM PART 



             WHERE DESCRIPTION = 'LE SHOPPE') 



      不会     SQL 引擎在=操作后边关联表所的所有了 



                                                                               545 


…………………………………………………………Page 546……………………………………………………………

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



    C  SQL》 SELECT NAME; PARTNUM FROM ORDERS WHERE EXISTS 



           (SELECT * FROM ORDERS 



           WHERE NAME = 'TRUE WHEEL') 



         对的    这个查询是正确的 



练习答案 



    应用 ORDERS 表来写一个查询 返回所以字母顺序排列在 JACKS BIKE 之后的NAMES 



和 ODEREDON 数据 



INPUT/OUTPUT: 



    SELECT NAME; ORDEREDON 



    FROM ORDERS 



    WHERE NAME 》 



           (SELECT NAME 



           FROM ORDERS 



           WHERE NAME ='JACKS BIKE') 



         NAME                  ORDEREDON 



         TRUE WHEEL           15…MAY…1996 



         TRUE WHEEL           19…MAY…1996 



         TRUE WHEEL           2…SEP…1996 



         TRUE WHEEL           30…JUN…1996 



         LE SHOPPE            17…JAN…1996 



         LE SHOPPE            1…JUN…1996 



第八天        操作数据 



问题答案 



    9  下边的语句有什么错误 



    DELETE COLLECTION 



       如果你想删除 COLLECZTION 表中的所有记录             你必需使用下边的语法 



    DELETE FROM COLLECTION; 



                                                                      546 


…………………………………………………………Page 547……………………………………………………………

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



       要注意这条语句会删除表中的所有的记录  你可以使用下边的语法来有选择地删 



    除表中的记录 



    DELETE FROM COLLECTION 



    WHERE VALUE = 125 



       这条语句将会删除所有 VALUE 为 125 的记录 



    10     下边的语句有什么错误 



       INSERT INTO COLLECTION SELECT * FROM TABLE_2 



           这条语句的目的是将 TABLE_2  中的所有记录都拷贝到 COLLECTION 表中 



       这里存在的主要问题是在 INSERT          语句中使用了 INTO  关键字  在把一个表中的 



       数据拷贝到另一个表中时  你必需使用下边的语法 



       INSERT COLLECTION 



       SELECT * FROM TABLE_2; 



           同时  要记住 TABLE_2 中的数据类型和字段次序与 COLLECTION 表中的一样 



    11     下边的语句有什么错误 



    UPDATE COLLECTION (〃HONUS WAGNER CARD〃    25000; 〃FOUND IT〃) 



       这条语句把 UPDATE  与 INSERT     弄混了  如果想更新 COLLECTIONS  表中的数 



    值  你应该使用下边的语法 



       UPDATE COLLECTIONS 



       SET NAME = 〃HONUS WAGNER CARD〃; 



                   VALUE  =  25000; 



                   REMARKS  =  〃FOUND  IT〃; 



    12     如果执行下边的语句会有什么结果 



    SQL》 DELETE * FROM COLLECTION; 



    由于语法不正确  什么也不会删除            这里不需要*号 



    13     如果执行下边的语句会有什么结果 



    SQL》 DELETE FROM COLLECTION; 



    在 COLLECTION 表中的所有记录都会被删除 



    14     如果执行下边的语句会有什么结果 



    SQL》 UPDATE COLLECTION SET WORTH = 555 



    SET REMARKS = 'UP FROM 525'; 



                                                                     547 


…………………………………………………………Page 548……………………………………………………………

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



   在 COLLECTION 表中的所有 WORTH 现在都变成了 555  而且所有的 REMARKS  都 



变成了 UP FROM 525 这可不是一件好事 



   15    下边的语句是否会工作 



   SQL》 INSERT INTO COLLECTION SET VALUES = 900 WHERE ITEM = 'STRING' 



   不会工作  INSERT  与 SET 不可能在一起工作 



   16    下边的语句是否会工作 



   SQL》 UPDATE COLLECTION SET VALUES = 900 WHERE ITEM = 'STRING' 



   可以工作  语法完全正确 



练习答案 



3     试着向一个表中插入一个不正确的数据类型          看一下出错信息     然后再插入一个 



  正确的数据类型 



   无论你使用何种类型的解释器       你都会收到一个所插入数据的类型与表中对应列的数 



据类型不匹配的错误信息 



4     试着使用你的数据库系统将某个表导出为其他库格式            然后再把它导入  熟悉一 



   下你的数据库系统的导入与导出操作  并试着用其它数据库操作导出文件 



   对于确切的导入和导出数据的语法请参见你的文档           如果你重复导入的话你可以想删 



除导入表中的所有数据      在真正进行数据操作之前你应该先熟悉一下导入导出命令             如果 



在你的表中存在唯一约束列那么你的导入操作可能会失败  你将会收到大量的关于唯一约 



束限制的错误 



第九天      创建和操作表 



问题答案 



   9  ALTER DATABASE 语句经常用在修改已有表的结构上  对不对 



   不对  大多数数据系统中没有 ALTER  DATABASE 命令    修改已有表的结构应该用 



   ALTER TABLE 命令 



                                                      548 


…………………………………………………………Page 549………………

返回目录 上一页 下一页 回到顶部 0 0

你可能喜欢的