假设供应商S和供应情况SPJ的关系模式分别为S(Sno,Snaale,Status,City)和SPJ(Sno,Pno,Jno,Qty)。SQ

题目

假设供应商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

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

阅读以下说明,回答问题1至问题3,将解答写在对应栏内。

【说明】

有如下关系数据库:

S(SNO,SN,STATUS,CITY)

P(PNO,PN,COLORS,WEIGHT)

J(JNO,JN,CITY)

SPJ(SNO,PNO,JNO,QTY)

其中,S为供应单位,P为零件,J为工程项目,SPJ为工程订购零件的订单,其语义为:某供应单位供应某种零件给某个工程,请用SQL完成下列操作。

求为工程J1提供红色零件的供应商代号。


正确答案:SELECT DISTICT SPJ.SNO FROM SPJP WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J1'AND P.COLOR='红'
SELECT DISTICT SPJ.SNO FROM SPJ,P WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J1'AND P.COLOR='红'

第2题:

第53和54题基于如下描述:

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

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

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

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

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

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

“找出使用供应商编号为’0909’的供应商所供应的零件的工程名”的SELECT语句中将使用的关系有( )。 A.J和SJP B.P和SJP C.P、J和SJP D.J、S和SJP


正确答案:A
供应商标号涉及到关系SJP,零件名涉及到P,工程名涉及到关系J.所以答案为C。

第3题:

供应商关系:S(SNO,SNAME,CITY),属性依次是供应商号、供应商名称和所在城市

零件关系:P(PNO,PNAME,COLOR),属性依次是产品号、品名和颜色

工程关系:J(JNO,JNAME,CITY),属性依次是工程号、工程名和所在城市

供应关系:SPJ(SNO,PNO,JNO,QTY),属性依次是供应商号、产品号、工程号和数量

试用关系代数完成下列操作:

(1)求供应J1工程零件的所有供应商号;

(2)求供应J1工程P1零件的供应商号;

(3)求供应工程J1红色零件的供应商号;

(4)求S1供应商供应零件的所有工程号。


答案:

(1)select distinct SNO from SPJ where JNO='J1'

(2)select SNO from SPJ where JNO='J1' and PNO='P1'

(3)select distinct SNO from SPJ where JNO='J1' and PNO in(select * from P where COLOR='红')

(4)select JNO from SPJ where SNO='S1'

第4题:

假设供应商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。

第5题:

下列问题基于如下描述:设有一个数据库,包括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

第6题:

某数据库中有供应商关系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])}

第7题:

某数据库中有供应商关系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

第8题:

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

(19) A.SELECT DISTINCT Sname

FROMS

WHERE EXISTS

(SELECT*

FROM SPJ

WHERE S.Sno=SPJ.SnO

AND SPJ.Pno=′P3′

B.SELECT DISTmCT Sname

FROMS

WHERE 0<

(SEIECT COUNT(*)

FROM SPJ

WHERE S.Sno=SPJ.Sno

AND SPJ.Pno=′P3′)

C.SELECT Sname

FROMS

WHERE EXISTS

(SELECT*

FROM SPJ

WHERE S.Sno=SPJ.Sno

AND SPJ.Pno=′P3′)

D.SELECT Sname

FROMS,SPJ

WHERES.Sno=SPJ.Sno

AND SPJ.Pno=′P3′)

GROUP BYSname

(20) A.Πsname(S)Dσ 0 Pno=′P3′(SPJ)

B.Πsname(SD∞σ Pno=′P3′(SPJ))

C.Πsname(S)-Πsname(σ Pno≠′P3′(Sσσ(SPJ)

D.Πsname(S)-Πsname((S∞σ Pno≠′P3′(SPJ)


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

第9题:

下列问题是基于如下描述:设有一个数据库,包括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
解析:找出使用供应商名为“红星”的供应商所供应的零件的工程名时,需要用到供应商关系模式S和供应情况关系模式SJP确定工程的代号,然后由供应情况关系模式SJP和工程项目关系模式J确定工程名,因此需要用到关系S、J和SJP,本题正确答案为A。

第10题:

现在有两个关系模式:供应商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

更多相关问题