请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。 CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J   WHERE SPJ.JNO=J.JNO AND J.JNAME=’三建’ 针对该视图VSP完成下列查询: 找出三建工程项目使用的各种零件代码及其数量。

题目

请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。  CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J    WHERE SPJ.JNO=J.JNO AND J.JNAME=’三建’  针对该视图VSP完成下列查询: 找出三建工程项目使用的各种零件代码及其数量。


相似考题
参考答案和解析
正确答案:SELECT DIST PNO,QTY FROM VSP
更多“请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。  CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J    WHERE SPJ.JNO=J.JNO AND J.JNAME=’三建’  针对该视图VSP完成下列查询: 找出三建工程项目使用的各种零件代码及其数量。”相关问题
  • 第1题:

    某数据库中有供应商关系S和零件关系P,其中,供应商关系模式s(Sno,Sname, SZip,City)中的属性分别表示:供应商代码、供应商名、邮编、供应商所在城市;零件关系模式P(Pno,Pname,Color,Weight,City)中的属性分别表示:零件号、零件名、颜色、重量、产地。要求一个供应商可以供应多种零件,而一种零件可以由多个供应商供应。请将下面的SQL语句空缺部分补充完整。

    CREATE TABLE SP (Sno CHAR(5),

    Pno CHAR(6),

    Status CHAR(8),

    Qty NUMERIC(9),

    (33)(Sno,Pno),

    (34)(Sno),

    (35)(Pno));

    查询供应了“红”色零件的供应商号、零件号和数量(Qty)的元组演算表达式为: {t|((36)∧u[1]=v[1]∧v[2]=w[1]∧w[3]='红'∧(37))}

    A.FOREIGN KEY

    B.PRIMARY KEY

    C.FOREIGN KEY(Sno)REFERENCES S

    D.FOREIGN KEY(Pno)REFERENCES P


    正确答案:B
    解析:本题考查的是关系数据库SQL语言与元组演算语言的基础知识。
      SQL空缺部分主要是对关系模式SP的完整性定义。根据题意要求一个供应商可以供应多个零件,而一个零件可以由多个供应商供应,这样在供应商和零件之间存在多对多的联系,为此需要为该联系创建一个关系模式,该关系模式的主码为供应商代码Sno、和零件号Pno构成。因此,空(33)应填PRIMARY KEY。
      供应商代码Sno为供应商关系的主码,在SP关系中的供应商代码Sno必须参照供应商关系S,所以,空(34)应填FOREIGN KEY (Sno) REFERENCES S。
      零件号Pno为零件关系的主码,在SP关系中的零件号Pno必须参照零件关系P,所以,空(35)应填FOREIGN KEY (Pno) REFERENCES P。
      完整的SQL语句如下:
      CREATE TABLE SP (Sno CHAR(5),
              Pno CHAR(6),
              Status CHAR(8) ,
              Qty NUMERIC(9),
              PRIMARYKEY(Sno,Pno),
              FOREIGN KEY (Sno) REFERENCES S (Sno),
              FOREIGN KEY (Pno) REFERENCES P (Pno));
      对于空(36)的确定,我们应当先分析试题中已给出的元组演算表达式的条件部分: u[1]=v[1]∧v[2]=w[1]∧w[3]='红'。由于w[3]='红',这意味着元组变量w应该说明零件关系P;由于w[1]表示零件号,当v[2]=w[1],这意味着元组变量v应该说明供应商与零件关系之间的联系SP;由于v[1]表示零件号,当u[1];v[1)根据题干给出的已知条件,不难看出元组变量u应该说明供应商关系S。可见空(36)应填:S(u)∧SP(v)∧p(w)。
      对于空(37)的确定,实际上是结果集的确定。由于试题要求查询供应了“红”色零件的供应商号、零件号和数量(Qty)的元组演算表达式,结果集有供应商号、零件号和数量,分别对应关系S的第一个分量,关系SP的第二个分量和第四个分量,所以空 (37)应填t[1]=u[1]∧t[2]=v[2]∧t[3]=v[4]。
      完整的关系代数表达式如下:
      {t|(S(u)∧SP(V)∧P(w)∧u[1]=v[1]∧v[2]=w[1]∧w[3]
          ='红'∧t[1]+u[1]∧t[2]=V[2]∧t[3]=v[4])}

  • 第2题:

    建立一个供应商、零件数据库。其中“供应商”表S(Sno,Sname,Zip,City)分别表示:供应商代码、供应商名、供应商邮编、供应商所在城市,其函数依赖为:Sno→ (Sname,Zip,City),Zip→City。“零件”表P(Pno,Pname,Color,Weight,City),表示零件号、零件名、颜色、重量及产地。表S与表P之间的关系SP(Sno,Pno,Price, Qty)表示供应商代码、零件号、价格、数量。 A.“供应商”表S属于(36)。 B.若要求供应商名不能取重复值,关系的主码是Sno。请将下面的SQL语句空缺部分补充完整。CREATE TABLE S(Sno CHAR(5), Sname CHAR (30) (37), Zip CHAR(8), City CHAR (20) (38); C.查询供应“红”色零件,价格低于500,且数量大于200的供应商代码、供应商名、零件号、价格及数量的SQL语句如下:SELECT Sno,Sname,Pno,Price,Qty FROM S,SP WHERE Pno IN (SELECT Pno FROM P WHERE (39)) AND (40);

    A.1NF

    B.2NF

    C.3NF

    D.BCNF


    正确答案:B

  • 第3题:

    下列问题基于如下描述:设有一个数据库,包括S、J、P、SJP四个关系模式如下: 供应商关系模式S(SNO,SNAME,CITY)零件关系模式P(PNO,PNAME,COLOR,WEIGHT)工程项目关系模式J(JNO,JNAME,CITY)供应情况关系模式SJP(SNO,PNO,JNO,QTY)假定它们都已经有若干数据。

    “找出使用供应商名为虹星,的供应商所供应的零件的工程名”的SELECT语句中将使用的关系有______。

    A.S、J和SJP

    B.S、P和SJP

    C.P、J和SJP

    D.S、J、P和SJP


    正确答案:A

  • 第4题:

    现在有两个关系模式:供应商S(Sno,Sname,Status,City)和供应情况SPJ(Sno,Pno,Jno, Qty)。对于查询“查询零件号Pno等于‘P3’的供应商名Sname”SQL语句(221)是错误的,而关系代数表达式(222)是正确的。

    A.SELECTSname FROM S WHERE EXIST5(SELECT * FROM SPJ WHERE S.Sno=SPJ.Sno AND SPJ.Pno='P3')

    B.SELECT Sname FROM S,SPJ WHERE S.Sno=SPJ.Sno AND SPJ.Pno='P3') CROUP BY Sname

    C.SELECT DISTINCT Sname FROM S WHERE EXISTS(SELECT * FROM SPJ WHERE S.Sno=SPJ.Sno AND SPJ.Pno='P3')

    D.SELECT DISTINCT Sname FROM S WHERERE 0<(SELECTCOUNT(,) FROM SPJ WHERE S.Sno=SPJ.Sno AND SPJ.Pnn='P3')


    正确答案:A

  • 第5题:

    设供应商零件的关系模式为SP(Sno,Pno,Qty),其中Sno表示供应商号,Pno表示零件号,Qty表示零件数量。查询至少包含了供应商“168”所供应的全部零件的供应商号的SQL语句如下:

    SELECT Sno

    FROM SP SPX

    WHERE (1)

    (SELECT*

    FROM SP SPY

    WHERE (2) AND NOT EXISTS

    (SELECT*

    FROM SP SPZ

    WHERE (3)));

    A.EXISTS

    B.NOT EXISTS

    C.IN

    D.NOT IN


    正确答案:B

  • 第6题:

    阅读下列说明,回答问题1和问题2,将解答写在答卷的对应栏内。

    【说明】

    供应商—零件—工程项目数据库由以下4个关系模式构成:

    S(SNO,SNAME,STATUS,CITY)

    P(PNO,PNAME,COLOR,WEIGHT,CITY)

    J(JNO,TNAME,CITY)

    SPJ(SNO,PNO,JNO,QTY)

    其中,供应商S,零件P和工程项目J分别由供应商号(SNO),零件号(PNO)和工程项目号(JNO)唯一标识。供货SPJ是指由某个供应商向某个工程项目供应某些数量的某种零件。

    【问题1】

    请用SQL语言完成如下的操作。

    ①找出给北京的工程项目提供不同的零件号:

    ②将没有供货的所有工程项目从J中删除;

    ③查询这样的工程项目号:供给该工程项目的零件P1的平均供应量大于供给工程项目n的任何一种零件的最大供应量。

    【问题2】

    定义一个视图,它由所有这样的工程项目(工程项目号与所在城市名称)组成:它们由供应商S1供货且使用零件P1。


    正确答案:[问题1] ①SELECTDISTlNCT SPJ.PNO FROM SPJJ WHERE SPJ.JNO=J.JNO AND J.CITY='北京' ②DELETE FROM J WHERE JNO NOT IN ( SELECT JNO FROM SPJ); ③SELECT DISTINCT JNO FROM SPJ WHERE
    [问题1] ①SELECTDISTlNCT SPJ.PNO FROM SPJ,J WHERE SPJ.JNO=J.JNO AND J.CITY='北京' ②DELETE FROM J WHERE JNO NOT IN ( SELECT JNO FROM SPJ); ③SELECT DISTINCT JNO FROM SPJ WHERE 解析:“找出给北京的工程项目提供不同的零件号”需要两个表(工程项目J和供货SPJ)的联合查找,要使用DISTINCT来消除重复项。
    “将没有供货的所有工程项目从J中删除”,首先要在于查向内从供货(SPJ)表内将所有供货的工程项目号(JNO)查山,然后使用NOTIN在工程项目表(J)内将不含有这些 JNO的记录删除。
    问题1中②这个查询需要使用条件语句having,还需要使用数学函数AVG、MAX。
    考生还要熟悉视图、索引的语句,请参考有关教材,这里不做说明。

  • 第7题:

    设有一个数据库,包括S、P、J、SJP四个关系模式如下:供应商关系模式S(SNO,SNAME, CITY)零件关系模式P(PNO, PNAME, COLOR, WEIGHT)工程项目关系模式J(JNO, JNAME, CITY)供应情况关系模式SJP(SNO, PNO, JNO, QTY)假定它们都已经有若干数据。则“找出北京供应商供应的所有零件信息”的SELECT语句是( )。

    A.SELECT * FROM S WHERE CITY=′北京′

    B.SELECT SNO, SNAME FROM S WHERE CITY=′北京′

    C.SELECT P. * FROM S, P WHERE S. CITY=′北京′ANDS. SNO=SJP. SNO AND SJP. PNO=P. PNO

    D.SELECT P.* FROM P,S, SJP WHERE S. CITY=′北京′AND S. SNO=SJP. SNO AND SJP. PNO=P. PNO


    正确答案:D
    解析:由于要找出零件信息,因此必然要用到表P,又因为是从北京供应商里查找,因此要用到表S,再加上两者之间的关系SJP,故SELECT后的FROM于句应为FROM P,S,JP。“北京供应商”的表达式是S.CITY='北京',还要满足在3个表中的SNO和PNO属性对应相等,故WHERE语句为WHERE S.CITY='北京'AND S.SNO=SJP.SNO AND SJP.PNO=P.PNO.由此本题应该选D)。

  • 第8题:

    假设供应商S和供应情况SPJ的关系模式分别为:S(Sno,Sname,Status,City)和SPJ(Sno,Pno,Jno,Qty)。SQL语句(22)不能正确地查询出“零件号Pno等于‘P3’的供应商名Sname",而(23).能正确查询的关系代数表达式。

    A.SELECT DISTINCT Sname

    B.SELECT DISTmCT Sname FROMS FROMS WHERE EXISTS WHERE 0<(SELECT *(SEIECT COUNT(*)FROM SPJ FROM SPJ WHERE S.Sno=SPJ.SnO WHERE

    C.SELECT Sname

    D.SELECT Sname FROMS FROMS, SPJ WHERE EXISTS WHERES.Sno=SPJ.Sno(SELECT * AND SPJ.Pno= 'P3')FROM SPJ GROUP BYSname W


    正确答案:C
    解析:SQL语言是一种典型的关系型数据库语言,它包含数据描述语言DDL和数据操纵语言DML。其中,DDL包括数据定义和数据控制,DML包括数据查询和数据修改。SQL的核心是数据库查询语句,语句的一般格式是:SELECT目标列FROM基本表(或视图)[WHERE条件表达式)[GROUPBY列名1[HAVING内部函数表达式]][ORDERBY列名2[ASC或DESC]]整个语句的含义是:根据WHERE子句中的条件表达式,从基本表(或视图)中找出满足条件的元组,按SELECT子句的目标列,选出元组中的分量形成结果表。如果有ORDER子句,则结果表要根据指定的列名2升序(ASC)或降序(DESC)排序。GROUP子句将结果按列名1分组,每个组产生结果表中的一个元组,通常在每组中作用库函数。分组的附加条件用HAVING短语给出,只有满足内部函数表达式的组才予输出。COUNT函数用来统计元组个数。DISTINCT用来去掉查洵结果中重复的行。

  • 第9题:

    某数据库中有供应商关系S和零件关系P,其中,供应商关系模式S(Sno,Sname,Szip,City)中的属性分别表示:供应商代码、供应商名、邮编、供应商所在城市;零件号、零件名;颜色、重量、产地。要求一个供应商可以供应多种零件,而一种零件可以由多个供应商供应。请将下面的SQL语句的空缺部分补充完整。

    CREATE TABLE SP (Sno CHAR(5),

    Pno CHAR(6),

    Status CHAR(8),

    Qty NUMERIC(9),

    (32) (Sno,Pno),

    (33) (Sno),

    (34) (pno);

    查询供应了“红”色零件的供应商号、零件号和数量(QTY)的元组演算表达式为:

    {t|(u|$)($V)($w)((35)^u[1]=v[1]^v[2]=w[1]^w[3]='红'^(36))}

    A.FOREIGN KEY

    B.PRIMARY KEY

    C.FOREIGN KEY(Sno)REFERENCES S

    D.FOREIGN KEY(Pno)REFERENCES P


    正确答案:B

  • 第10题:

    假设供应商S和供应情况SPJ的关系模式分别为S(Sno,Snaale,Status,City)和SPJ(Sno,Pno,Jno,Qty)。SQL。语句(19)不能正确地查询出“零件号Pno等于‘P3’的供应商名Snam”,而(20)能正确查询的关系代数表达式。

    A.SELECT DISTINCTSname

    B.SELECT DISTm CTSname FROMS FROMS WHERE EXISTS WHERE 0<(SELECT*(SELECTCOUNT(*)FROM SPJ FROM SPJ WHERE S.Sno=SPJ.SnO WHERE S.Sno;SPJ.Sno AND SPJ.Pno;

    C.SELECT Shame

    D.SELECT Sname FROMS FROMS,SPJ WHERE EXISTS WHERES.Sno=SPJ.Sno(SELECT* ANDSPJ.Pno='P3')FROM SPJ GROUP BYSname WHERE S. Sno=SPJ. Sno


    正确答案:C
    解析:SQL语言是一种典型的关系型数据库语言,它包含数据描述语言DDL和数据操纵语言DML。其中,DDL包括数据定义和数据控制,DML包括数据查询和数据修改。SQL的核心是数据库查询语句,语句的一般格式是:SELECT目标列FROM基本表(或视图)[WHERE条件表达式][GROUPBY列名1[HAVING内部函数表达式))[ORDERBY列名2[ASC或DESC))整个语句的含义是:根据WHERE子句中的条件表达式,从基本表(或视图)中找出满足条件的元组,按SELECT子句的目标列,选出元组中的分量形成结果表。如果有ORDER子句,则结果表要根据指定的列名2升序(ASC)或降序(DESC)排序。GROUP子句将结果按列名1分组,每个组产生结果表中的一个元组,通常在每组中作用库函数。分组的附加条件用HAVING短语给出,只有满足内部函数表达式的组才子输出。COUNT函数用来统计元组个数。DISTINCT用来去掉查询结果中重复的行。

  • 第11题:

    请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。 CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J WHERE SPJ.JNO=J.JNO AND J.JNAME=’三建’ 针对该视图VSP完成下列查询: 找出供应商S1的供应情况


    正确答案:SELECT DIST * FROM VSP WHERE SNO='S1'

  • 第12题:

    问答题
    请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。 CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J WHERE SPJ.JNO=J.JNO AND J.JNAME=’三建’ 针对该视图VSP完成下列查询: 找出供应商S1的供应情况

    正确答案: SELECT DIST * FROM VSP WHERE SNO='S1'
    解析: 暂无解析

  • 第13题:

    设供应商供应零件的关系模式为SP(Sno, Pno, Qty),其中Sno表示供应商号,Pno表示零件号,Qty表示零件数量。查询至少包含了供应商“168”所供应的全部零件的供应商号的SQL语句如下:

    SELECT Sno

    FROM SP SPX

    WHERE (1)

    (SELECT *

    FROM SP SPY

    WHERE (2) AND NOT EXISTS

    (SELECT *

    FROM SP SPZ

    WHERE (3)));

    A.EXISTS

    B.NOT EXISTS

    C.IN

    D.NOT IN


    正确答案:B
    解析:问题要求的是至少包含了供应商“168”所供应的全部零件的供应商号。可以分解成 2个否定形式:不存在这样的供应商;168号选了的商品,该供应商没有选择。
      根据以上分解,显然,(1)空选择否定的表达,而IN/NOT IN的一般用法为:
      SELECT *
        FROM table_name1
        WHERE column1 IN/NOT IN
         (SELECT column1
           FROM table_name2
           WHERE conditions);
      也就是说,IN后面接的是一个集合,且前面有列名column1。
      EXISTS/NOTEXISTS指是否存在,一般用法为:
      SELECT *
        FROM table_name1
        WHERE EXISTS/NOT EXISTS
          (SELECT *
            FROM table_name2
            WHERE conditions);

  • 第14题:

    某数据库中有供应商关系S和零件关系P,其中;供应商关系模式S(Sno,Sname,Szip,City)中的属性分别表示:供应商代码、供应商名、邮编、供应商所在城市;零件关系模式P(Pno,Pname,Color,Weight,City)中的属性分别表示:零件号、零件名、颜色、重量、产地。要求一个供应商可以供应多种零件,而一种零件可由多个供应商供应。请将下面的SQL语句空缺部分补充完整。

    Create Table SP(Sno Char(5),

    Pno Char(6),

    Status Char(8),

    Qty NUMERIC(9),

    (7) (Sno,Pno),

    (8) (Sno),

    (9) (Pno));

    查询供应了“红”色零件的供应商号、零件号和数量(Qty)的元组演算表达式为:

    A.Foreign Key

    B.Primary Key

    C.Foreign Key(Sno)References S

    D.Foreign Key(Pno)PEFERENCES P


    正确答案:B

  • 第15题:

    假设供应商S和供应情况SPJ的关系模式分别为:S(Sno, Sname, Status, City)和SPJ(Sno, Pno, Jno, Qty)。SQL语句______不能正确地查询出“零件号Pno等于'P3'的供应商名Sname”。

    A.SELECT DISTINCT Sname FROM S WHERE EXISTS (SELECT* FROM SPJ WHERE S.Sno=SPJ.Sno AND SPJ.Pno='P3')

    B.SELECT DISTINCT Sname FROM S WHERERE 0< (SELECT COUNT (*) FROM SPJ WHERE S.Sno=SPJ.Sno AND SPJ.Pno='P3')

    C.SELECT Sname FROM S WHERE EXISTS (SELECT* FROM SPJ WHERE S.Sno=SPJ.Sno AND SPJ.Pno='P3')

    D.SELECT Sname FROM S, SPJ WHERE S.Sno=SPJ.Sno AND SPJ.Pno='P3') GROUP BY Sname


    正确答案:A
    解析:选项C的含义是:首先从表SPJ中查找零件号Pno为P3的所有记录,然后,通过关联,从S中查找与SPJ中所找出记录的Sno相等的记录。最后,取出该记录中供应商名Sname。这样会出现许多相同的供应商名Sname。所以是错误的。为了解决这个问题,应当加上DISTINCT。第1空的正确答案为选项A。

  • 第16题:

    “找出北京供应商供应的所有零件信息”的SELECT语句是( )。 A.SELECT*FROM S WHERE CITY=’北京’ B.STLECT SNO,SNAME FROM S WHERE CITY=’北京’ C.SELECT P.*FROM S,P WHERE S.CITY=’北京’ AND S.SNO=SJP.SNO AND SJP.PNO=P.PNO D.SELECT P.*FROM P,S,SJP WHERE S.CITY=’北京’ AND S.SNO=SJP.SNO AND SJP.PNO=P.PNO


    正确答案:D
    北京供应商涉及到CITY属性,要用关系S,零件信息要用到关系P,而这两个关系需用关系SJP联系起来,所以FROM后面跟三个关系P,S,SJP。

  • 第17题:

    下列问题基于如下描述:

    设有一个数据库,包括S、J、P、SJP四个关系模式如下:

    供应商关系模式S(SNO,SNAME,CITY)

    零件关系模式P(PNO,PNAME,COLOR,WEIGHT)

    工程项目关系模式J(JNO,JNAME,CITY)

    供应情况关系模式SJP(SNO,PNO,JNO,QTY)

    假定它们都已经有若干数据。

    “找出使用供应商名为‘红星’的供应商所供应的零件的工程名”的SELECT语句中将使用的关系有

    “找出使用供应商名为‘红星’的供应商所供应的零件的工程名”的SELECT语句中将使用的关系有

    A.S、J和SJP

    B.S、P和SJP

    C.P、J和SJP

    D.S、J、P和SJP


    正确答案:A
    解析:找出使用供应商名为‘红星’的供应商所供应的零件的工程名时,需要用到供应商关系模式S和供应情况关系模式SJP确定工程的代号,然后由供应情况关系模式SJP和工程项目关系模式J确定工程名,因此需要用到关系S、J和SJP。

  • 第18题:

    某数据库中有供应商关系S和零件关系P,其中:供应商关系模式S(Sno,Sname,Szip,City)中的属性分别表示:供应商代码、供应商名、邮编、供应商所在城市;零件关系模式P(Pno,Pname,Color,Weight, City)中的属性分别表示:零件号、零件名、颜色、重量、产地。要求一个供应商可以供应多种零件,而一种零件可以由多个供应商供应。请将以下(56)空缺处的SQL语句补充完整。

    A.PRIMARY KEY(Sno)REFERENCE S(Sno),FOREIGN KEY(Pno)REFERENCES P(Pno)

    B.FOREIGN KEY(Sno)REFERENCE S(Sno),PRIMARY KEY(Pno)REFERENCES P(Pno)

    C.FOREIGN KEY(Sno)REFERENCE S(Sno),FOREIGN KEY(Pno)REFERENCES P(Pno)

    D.PRIMARY KEY(Sno)REFERENCE S(Sno),PRIMARY KEY(Pno)REFERENCES P(Pno)


    正确答案:C
    解析:本试题SQL语句空缺部分主要是对关系模式SP的完整性定义。依题意,一个供应商可以供应多种零件,而一种零件可以由多个供应商供应,因此,在供应商和零件之间存在多对多的联系。为此需要为该联系创建一个关系模式,该关系模式的主码为供应商代码Sno和零件号Pno构成,即试题中已给出的PRIMARY KEY(Sno,Pno)。供应商代码Sno为供应商关系的主码,在SP关系中的供应商代码Sno必须参照供应商关系S,即 FOREIGN KEY(Sno)REFERENCE S(Sno)。零件号Pno为零件关系的主码,在SP关系中的零件号Pno必须参照零件关系P,即FOREIGN KEY(Pno) REFERENCES P(Pno)。由以上分析可知,(56)空缺处的正确答案是选项C。

  • 第19题:

    假设供应商S和供应情况SPJ的关系模式分别为S(Sno,Sname,Status,City)和SPJ(Sno,Pno,Jno,Qty)。SQL语句(25)不能正确地查询出“零件号Pno等于'P3'的供应商名Sname",而(26)能正确查询的关系代数表达式。

    A.SELECT DISTINCT Sname FROM S WHERERE 0 <(SELECT COUNT( *)FROM SPJ WHERE S. Sno = SPJ. Sno AND SPJ. Pno = 'P3')

    B.SELECT DISTINCT Sname FROM S WHERE EXISTS(SELECT * FROM SPJ WHERE S. Sno=SPJ. Sno AND SPJ. Pno= 'P3')

    C.SELECT Sname FROM S WHERE EXISTS( SELECT * FROM SPJ WHERE S. Sno = SPJ. Sno AND SPJ. Pno = 'P3')

    D.SELECT Sname FROM S, SPJ WHERE S. Sno = SPJ. Sno AND SPJ. Pno = 'P3' GROUP BY Sname


    正确答案:C
    解析:(25)题中C选项没有使用关键字DISTINCT,因而是不正确的。(26)题中A项对S进行了投影操作,无法完成自然连接;C、D项是等价的关系代数表达式,它们在供应商同时供应“P3”零件和其他零件的情况下,无法得到正确的结果。

  • 第20题:

    设有一个数据库,包括s、P、J、SJP四个关系模式如下:

    供应商关系模式S(SNO,SNAME,CITY)

    零件关系模式P(PNO,PNAME,COLOR,WEIGHT)

    工程项目关系模式J(JNO,JNAME,CITY)

    供应情况关系模式SJP(SNO,PNO,JNO,QTY)

    假定它们都已经有若干数据。则“找出北京供应商供应的所有零件信息”的SELECT语句是( )。


    正确答案:D
    由于要找出零件信息,因此必然要用到表P,又因为是从北京供应商里查找,因此要用到表S,再加上两者之间的关系SJP,故SELECT后的FROM子句应为FROMP,S.SJP。“北京供应商”的表达式是S.CITY=‘北京’,还要满足在三个表中的SNO和PNO属性对应相等,故WHERE语句为WHERES.CITY=‘北京’ANDS.SNO=SJESNOANDSJEPNO=P.PNO。由此本题应该选D)。

  • 第21题:

    设有一个SPJ数据库,包括S,P,J,SPJ 4个关系模式: S(SNO,SNAME,STATUS,CITY): P(PNO,PNAME,COLOR,WEIGHT): J(JNO,JNAME,CITY): SPJ(SNO,PNO,JNO,QTY): 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CIIY)组成。 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGH)组成。 工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。 供应情况表SPJ由供应商代码(SNO)、每件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量OTY。 那么用关系代数完成查询“供应工程J1红色零件的供应商号SNO”,应是(44)。

    A.πSNO(πSNO,PNO(σJNO='J1'(S))×πPNO(σCOLOR='红'(P)))

    B.πSNO(πSNO,PNO(σJNO='J1'(S))πPNO(σCOLOR='红'(SPJ)))

    C.πSNO(πSNO,PNO(σJNO='J1'(SPJ))πPNO(σCOLOR='红'(P)))

    D.πSNO(πSNO,PNO(σJNO='J1'(SPJ))×πPNO(σCOLOR='红'(P)))


    正确答案:C
    解析:解析略。请考生强化对关系代数基本理论和运算操作的掌握,这是考试经常出题的地方,而且理论性强,不易得分。

  • 第22题:

    今有如下关系数据库: S(SNO,SN,STATUS,CITY) P(PNO,PN,COLOR,WEIGHT) (JNO,JN,CITY) SPJ(SNO,PNO,JNO,QTY) 其中,S为供应单位,P为零件,J为工程项目,SPJ为工程订购零件的订单,其语义为:某供应单位供应某种零件给某个工程,请用SQL完成下列操作。 (1)求为工程J1提供红色零件的供应商代号。 (2)求使用S1供应的零件的工程名称。 (3)求供应商与工程所在城市相同的供应商提供的零件代号。 (4)求至少有一个和工程不在同一城市的供应商提供零件的工程代号。 (计算题)


    答案:(1) SELECT DISnNCT SPJ.SNO FROM SPJ,P WHERE P.PNO二SPJ.PNO AND SPJ.JNO=‘J1’AND P.COLOR=‘红’; (2) SELECTJ.JN FROM J,SPJ WHERE J.JNO=SPJ.JNOAND SPJ.SNO=‘S1’; (3) SELECT DISTINCT SPJ.PNO FROM S,J,SPJ WHERE S.SNO=SPJ.SNO AND).JNO=SPJ.JNO AND S.CITY=J.CITY; (4) SELECT DISTINCT SPJ.JNO FROM S,J,SPJ WHERE S.SNO=SPJ.SNO AND J.JNO=SPJ.JNO AND S.CITY<>J.CITY;

  • 第23题:

    建立一个供应商、零件数据库。其中"供应商"表S(Sno,Sname,Zip,City)中的属性分别表示供应商代码、供应商名、供应商邮编、供应商所在城市,其函数依赖为Sno→(Sname,Zip,City),Zip→City。"零件"表P(Pno,Pname,Color,Weight,City),表示零件号、零件名、颜色、重量及产地。表S与表P之间的关系SP(Sno,Pno,Price,Qty)表示供应商代码、零件号、价格、数量。"供应商"表S属于()

    • A、1NF
    • B、2NF
    • C、3NF
    • D、BCNF

    正确答案:B