【说明】 设有下列关于图书借阅系统的E—R图。图中矩形表示实体,圆表示属性,双圆表示关键字属性,菱形表示实体间的联系。假定已通过下列SQL语言建立了基本表: CREATE TABLE Readers (Rao CHAR(

admin2009-02-15  64

问题 【说明】
   设有下列关于图书借阅系统的E—R图。图中矩形表示实体,圆表示属性,双圆表示关键字属性,菱形表示实体间的联系。假定已通过下列SQL语言建立了基本表:
     CREATE TABLE Readers
          (Rao CHAR(6) PRIMARY KEY,
          Rname CHAR(20) NOT NULL,
          Raddress CHAR(200),
          Rphone CHAR(15));
     CREATE TABLE Books
           (Brio CHAR(6) PRIMARY KEY,
          Rname CHAR(50) NOT NULL);
     CREATE TABLE Administrators
           (Ano CHAR(6) PRIMARY KEY,
          Aname CHAR(20) NOT NULL);
     CREATE TABLE Borrows
           (Rno CHAR(6) NOT NULL,
          Bno CHAR(15) NOT NULL,
          Ano CHAR(6) NOT NULL,
          Bdate DATE,
          Rdate DATE,
          PRIMARY KEY(Rno,Bno,Ano),
          FOREGIN KEY(Rno) REFERENCE Readers(Rno),
          FOREGIN KEY(Bno) REFERENCE Book(Bno)
          FOREGIN KEY(Ano) REFERENCE Administrators(Ano));
      CREATE TABLE Readers
          (Rao CHAR(6) PRIMARY KEY,
          Rname CHAR(20) NOT NULL,
          Raddress CHAR(200),
          Rphone CHAR(15));
     CREATE TABLE Books
           (Brio CHAR(6) PRIMARY KEY,
          Rname CHAR(50) NOT NULL);
     CREATE TABLE Administrators
           (Ano CHAR(6) PRIMARY KEY,
          Aname CHAR(20) NOT NULL);
     CREATE TABLE Borrows
           (Rno CHAR(6) NOT NULL,
          Bno CHAR(15) NOT NULL,
          Ano CHAR(6) NOT NULL,
          Bdate DATE,
          Rdate DATE,
          PRIMARY KEY(Rno,Bno,Ano),
          FOREGIN KEY(Rno) REFERENCE Readers(Rno),
          FOREGIN KEY(Bno) REFERENCE Book(Bno)
          FOREGIN KEY(Ano) REFERENCE Administrators(Ano));
   为了答题的方便,图中的实体和属性同时给出了中英文两种名字,回答问题时只需写出英文名即可。
   【系统E-R图】

选项

答案(1)NOT IN (2)Rno (3)COUNT(DISTINCT Rno) (4)Bdate=’2005-01-01’ (5)EXISTS (6)Borrow. Bno=Books. Bno

解析 从给定的SQL的语句中可以看出,子查洵中是查询所有借阅过编号为111111图书的所有读者。而题目要求是查询“没有借阅过编号为111111图书的所有读者名单”,也就是从读者Readers关系中查询不在子查询中出现的那些读者。所以(1)空的答案是NOT IN。 SQL语句中是Readers关系中的Rno与子查询结果进行比较,所以(2)空的答案也应该是 Rno。
   题目要求查询人数,  自然需要利用统计函数COUNT。因为2005年1月1日同一读者可能借多本书,也就是可能在Borrow关系中出现多次,所以需要加上DISTINCT表示不计重复值。因此,(3)空的答案是COUNT(DISTINCT Rno)。查询的条件自然是借阅时间是2005年1月1日,所以填空(4)的答案是Bdate=’2005-01—01’。
   程序3是要查“借书证号为123456的读者所借过的所有图书”,也就是从Books关系中查询出图书信息,这些图书被借书证号为123456的读者借阅的记录在Borrow关系中存在。因此(5)空的答案是EXISTS,表示存在。(6)空的答案是Borrow. Bno=Books. Bno。
转载请注明原文地址:https://jikaoti.com/ti/62i7FFFM
0

相关试题推荐
最新回复(0)