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

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

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!




   可以工作  语法完全正确 



练习答案 



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



  正确的数据类型 



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



据类型不匹配的错误信息 



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



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



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



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



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



束限制的错误 



第九天      创建和操作表 



问题答案 



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



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



   ALTER TABLE 命令 



                                                      548 


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

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



    10     DROP TABLE 语句与 DELETE FROM  的作用是相同的  对不对 



    不对  这两个命令并不等价  DROP  TABLE 将会把表的记录及结构从数据库中全部删 



    除  而 DELETE  FROM  则只是将表中的记录全部删除  表的结构在数据 



    库中依然存在 



    11     可以使用 CREATE TABLE 命令向数据库中加入一个新表                 对不对      对 



    12     为什么下边的语句是错误的 



          INPUT 



                   CREATE TABLE new_table ( 



                   ID NUMBER 



                   FIELD1 char(40) 



                   FIELD2 char(80) 



                   ID char(40) 



           该语句存在着两个问题  首先是 ID             的命句在表中重复了  而它们的数据类 



        型并不同     字段名重复使用是非法的  其次是在语句的末尾没有对应的圆括号 



        正确的语句应该如下 



        INPUT 



                   CREATE TABLE new_table ( 



                   ID NUMBER; 



                   FIELD1 char(40); 



                   FIELD2 char(80)); 



    13     为什么下边的语句是错误的 



          INPUT 



                   ALTER DATABASE BILLS ( 



                   PANY char(80)) 



       更新字段名称和长度应该使用 ALTER  TABLE 命令               而不是 ALTER  DATABASE 



    命令 



    14     当一个表建立时  谁是它的所有者 



       它的创建人       如果你用你的 ID  登录  那么所有都是你的 ID             如果你用 SYSTEM 



    登录  那么所有都是 SYSTEM 



    15     如果字符型列的长度在不断变化              如何才能做出最佳的选择 



                                                                       549 


…………………………………………………………Page 550……………………………………………………………

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



        VARCHAR2 是最好的选择  它可以允许存储在其中的字符串的长度变化 



    16     表名是否可以重复 



        可以   只要所有者或计划不同就行 



练习答案 



    4   用你喜欢的格式向 BILLS          数据库中加入两个表             名字分别叫 BANK         和 



       ACCOUNT_TYPE     BANK 表中应该包含有 BANK_ACCOUNT           表中 BANK  字段 



       的 信 息     ACCOUNT_TYPE    表 中 也 应 该 包 含 有  BANK_ACCOUNT         表 中 



       ACCOUNT_TYPE 字段的信息  试着尽可以地减少数据的数量 



    你应该使用 CREAETE TABLE 命令来创建表            可能的语句形式如下 



SQL》 CREATE TABLE BANK 



2        (  ACCOUNT_ID NUMBER(30)              NOT NULL; 



            BANK_NAME  VARCHAR2(30)            NOT NULL; 



            ST_ADDRESS VARCHAR2(30)            NOT NULL; 



            CITY       VARCHAR2(15)            NOT NULL; 



            STATE      CHAR(2)                 NOT NULL; 



            ZIP        NUMBER(5)               NOT NULL 



SQL》 CREATE TABLE ACCOUNT_TYPE 



          (  ACCOUNT_ID NUMBER(30)             NOT NULL; 



            SAVINGS    CHAR(30); 



              CHECKING CHAR(30); 



    5   使用你已经创建的五个表           BILLS   BANK_ACCOUNTS     PANY     BANK 



       ACCOUNT_TYPE     改为表的结构以用整数型字段作为关键字以取代字符型字段 



       作为关键字 



       SQL》 ALTER TABLE BILLS DROP PRIMARY KEY; 



       SQL》 ALTER TABLE BILLS ADD (PRIMARY KEY (ACCOUNT_ID)); 



       SQL》 ALTER TABLE PANY ADD (PRIMARY KEY (ACCOUNT_ID)); 



    6   使用你所知道的 SQL 的联接知识 见第 6 天 表的联接                 写几个查询来联接 BILLS 



       数据库中的几个表 



                                                                        550 


…………………………………………………………Page 551……………………………………………………………

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



   由于在上一个练习中我们已经修改了表的结构使其关键字段为 ACCOUNT_ID                 列  所 



以的表都可以根据该列进行联接  你可以对表进行任何联接                你也可以联接所有的表        别 



忘了对你的表中的列进行限制 



第 10 天   创建视图和索引 



问题答案 



7  当在一个不唯一的字段中创建一个唯一值索引会有什么结果 



   根据你所使用的数据库  你将会收到不同类型的错误表达                索引将不会建立  唯一值 



索引所建立的字段的内容必须是唯一的 



8  下边的话是对是错 



  视图和索引都会占用数据库的空间           所以在设计数据库空间时要考虑到这一点 



    不对   只有索引才会占用数据库的存储空间 



  如果一个人更新了一个已经创建视图的表  那么视图必须进行同样的更新才会看到相同 



   的数据    不对  表只要更新了     那么在视图中就可以看到更新了的数据 



  如果你的磁盘空间够而你想加快你的查询的速度  那么索引越多越好 



    不对  有时索引反而会降低查询的速度 



9  下边的 CREATE 语句是否正确 



      SQL》 create view credit_debts as (select all from debts where account_id = 4) 



       不对  你不应该使用括号       而且 ALL 应该是* 



10    下边的 CREATE 语句是否正确 



  SQL》 create unique view debts as select * from debts_tbl 



    不对   唯一值视图不能这样做 



11    下边的 CREATE 语句是否正确 



      SQL》 drop * from view debts 



       不对   正确的语法应该是 DROP VIEW DEBTS 



12    下边的 CREATE 语句是否正确 



      SQL》 create index id_index on bills  account_id 正确 



                                                             551 


…………………………………………………………Page 552……………………………………………………………

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



练习答案 



4  检查你所使用的数据库系统     它是否支持视图    允许你在创建视图时使用哪些选项       用 



  它的语法来写一个简单的创建视图语句        并对其进行如 SELECT  和 DELETE  等常规操 



  作后再删除视图     检查你的解释器的数据字典     看它是否支持将表的查询开放为视图 



5  检查你所使用的数据库系统看它是否支持索引        它有哪些选项  在你的数据库系统中的 



  一些已经存在的表中试一下这些选项         进一步  确认在你的数据库系统中是否支持 



  UNIQUE 和 CLUSTER 索引 



   ACCESS 可以让开发人员以图形向表中加入索引      索引可以组合多个字段     也可以在 



  图形用户界面下设置排序情况 而其它的系统则需要你在命令行下输入 CREATE INDEX 



  语句 



6  如果可能的话  在一个表中输入几千条记录      用秒表或钟来测定一下你的数据库系统对 



  特定操作的反映时间     加入索引是否使性能提升了     试一下今天提到的技巧 



 只有当操作返回的数据量很少时索引才会对性能的提高有帮助            如果查询返回的数据占 



表的固有数据的比例较大     使用索引反而会使性能降低 



第 11 天   事务处理控制 



问题答案 



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



  中  为什么 



 不可以   当事务嵌套时   任何 ROLLBACK  命令都将取消当前进程中的所有事务      所有 



在当前事务中所进行的改动都不会真正保存        直到外部事务被确认 



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



 可以   保存点可以让程序员保存事务中的语句  如果需要         ROLLBACK  可以退回到保 



存点而不是事务的开始 



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



 MIT 命令可以在事务中使用也可以单独使用 



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



                                                   552 


…………………………………………………………Page 553……………………………………………………………

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



  也行也不行  你可以使用这个命令  但是你无法撤消所做的改动 



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



  不是  保存点只有在使用 ROLLBACK  命令时才发挥作用                     这时只有保存点以后的改动 



可以撤消 



练习答案 



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



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



   SQL》 MIT 



答 



    SQL》 SET TRANSACTION; 



                              INSERT  INTO  CUSTOMERS  VALUES 



                              ('SMITH';  'JOHN'); 



    SQL》 MIT; 



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



   SQL》 SET TRANSACTION 



             UPDATE  BALANCES  SET  CURR_BAL  =  25000 



   SQL》 MIT 



答 



SQL》 SET TRANSACTION; 



            UPDATE  BALANCES  SET  CURR_BAL  =  25000; 



SQL》 MIT; 



该语句被更正后会很好地工作  但是                 你只是更新了每个人的当前 BALANCE 为25;000 



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



   SQL》 SET TRANSACTION 



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



   SQL》 ROLLBACK      该语法完全正确  无需更改 



                                                                           553 


…………………………………………………………Page 554……………………………………………………………

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



第 12 天     数据库安全 



问题答案 



8  下边的语句是否是错误的 



  SQL》 GRANT CONNECTION TO DAVID 



    没有 CONNECTION 规则   正确的语法是 



   SQL》 GRANT CONNECT TO DAVID; 



9  对与错   当删除用户时所有属于用户对对象都会随之删除 



  如果在删除用户时 CASCADE 语句运行了这句话就是对的  CASCADE  选项将通知系统 



删除所有为被删除用户所有的表 



10    如果你创建了一个表并对它使用了 SELECT 权限对象为 PUBLC 时会有什么问题 



  任何人都可以从你的表中检索数据          即便是你不想让他看到内容的用户 



11    下边的 SQL 语句是否正确 



   SQL》 create user RON  identified by RON 



     正确  该语句会创建一个用户        但是用户的设置是默认的         这可能不会让人满意 



   关于设置部分  你应该检查你的解释器文档 



12    下边的 SQL 语句是否正确 



   SQL》 alter RON identified by RON 



     不对   没有给出用户     正确的语法是     SQL》  alter  user  RON          identified  by  RON; 



13    下边的 SQL 语句是否正确 



   SQL》 grant connect; resource to RON 正确 



14    如果表为你所有  别人如何才能从表中选择数据 



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