博学公司网上销售管理系统的数据库部分关系模式如下所示。其中,客户号唯一标识一位客户,产品号唯一标识一件产品,订单号唯一标识一份订单。一份订单必须且仅对应一位客户,一份订单可由一到多条订单明细组成,一位客户可以有多份订单。客户(客户号,姓名,性别,地址,邮编)产品(产品号,名称,库存,单价)订单(订单号,时间,金额,客户号)订单明细(订单号,产品号,数量)订单关系模式的主键为(1);订单明细关系模式的主键为(2);其中订单的外键为(3)。空白(3)处应选择()A、客户号,订单明细的外键为订单号B、客户号,订

题目

博学公司网上销售管理系统的数据库部分关系模式如下所示。其中,客户号唯一标识一位客户,产品号唯一标识一件产品,订单号唯一标识一份订单。一份订单必须且仅对应一位客户,一份订单可由一到多条订单明细组成,一位客户可以有多份订单。客户(客户号,姓名,性别,地址,邮编)产品(产品号,名称,库存,单价)订单(订单号,时间,金额,客户号)订单明细(订单号,产品号,数量)订单关系模式的主键为(1);订单明细关系模式的主键为(2);其中订单的外键为(3)。空白(3)处应选择()

  • A、客户号,订单明细的外键为订单号
  • B、客户号,订单明细的外键为订单号和产品号
  • C、订单号,订单明细的外键为产品号
  • D、订单号,订单明细的外键为订单号和产品号
参考答案和解析
正确答案:B
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

请根据如下查询语句,回答问题(d),(e)和(f)。

SELECT客户号

FROM订单,订单明细

WHERE订单明细.订单号=订单.订单号AND

产品号='02' AND

数量>10;

(d) 上述查询语句的功能是什么?请简要回答。(30个字以内)

(e) 将上述查询语句转换成对应的关系代数表达式。

(f) 上述SQL查询语句是否可以进一步优化?如可以,给出优化后的SQL查询语句。


正确答案:查询一次订购(或购买)产品号为02的数量大于10的客户号 (e) (f)可以优化。优化的SQL语句为: SELECT客户号 FROM 订单 WHERE 订单号 IN (SELECT 订单号 FROM 订单明细 WHERE产品号='02' AND数量>10);
查询一次订购(或购买)产品号为02的数量大于10的客户号 (e) (f)可以优化。优化的SQL语句为: SELECT客户号 FROM 订单 WHERE 订单号 IN (SELECT 订单号 FROM 订单明细 WHERE产品号='02' AND数量>10); 解析:本题考核的知识点包括SQL的查询命令与关系代数表达式的互相转换以及SQL的查询优化。
SELECT语句的功能是:查询一次订购(或购买)产品号为02的数量大于10的客户号。
根据关系代数表达式的定义,将上述查询语句转换成对应的关系代数表达式为:

该SELECT语句,在进行多表查询时,采用的是相关子查询。由于相关子查询查询时要做连接JOIN,性能不是最优。可以考虑采用不相关子查询,来提高性能。优化的 SQL语句为:
SELECT客户号
FROM订单
WHERE订单号IN
(SELECT订单号
FROM订单明细
WHERE产品号='02' AND数量>10);

第2题:

阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。

[说明]

某企业网上销售管理系统的数据库部分关系模式如下所示:

客户(客户号,姓名,性别,地址,邮编)

产品(产品号,名称,库存,单价)

订单(订单号,时间,金额,客户号)

订单明细(订单号,产品号,数量)

关系模式的主要属性及约束如下表所示。

以下是创建部分关系表的SQL语句,请将空缺部分补充完整。

CREATE TABLE客户(

客户号 CHAR(5) (a),

姓名 CHAR(30),

性别 CHAR(2) (b),

地址 CHAR(30),

邮编 CHAR(6));

CREATE TABLE 订单(

订单号CHAR(4),

时间 CHAR(10),

金额 NUMBER(6,2),

客户号CHAR(5)NOTNULL,

PRIMARY KEY(订单号),

(c);


正确答案:(a)NOT NULL UNIQUE或NOT NULL PRIMARY KEY 或 PRIMARY KEY (b)CHECK (VALUE IN('男''女')) (c)FOREIGN KEY (客户号) REFERENCES 客户(客户号)
(a)NOT NULL UNIQUE或NOT NULL PRIMARY KEY 或 PRIMARY KEY (b)CHECK (VALUE IN('男','女')) (c)FOREIGN KEY (客户号) REFERENCES 客户(客户号) 解析:本题考查的是SQL语言中的创建基本表命令。
SQL中使用CREATE TABLE命令来定义基本表,其一般格式为:
CREATE TABLE表名>(列名>数据类型>[列级完整性约束条件]
[,列名>数据类型>[列级完整性约束条件]]...
[,表级完整性约束条件>]);
本题着重考查完整性约束的定义。
. 实体完整性定义。声明主键有两种方法:将PRIMARYKEY保留字加在属性类型之后;在属性列表中引入一个新元素,该元素包含保留字PRIMARY KEY和用圆括号括起的构成主键的属性或者属性组列表。
. 参照完整性定义。FOREIGNKEY(属性名)REFERFENCES表名(属性名)。参照完整性通过保留字FOREIGNKEY定义哪些列为外码,REFERFENCES指明外码所对应的被参照表的主码。
. 用户定义完整性定义。用CHECK后增加一条检查子句来完成属性值上的约束。
根据题目描述,客户号唯一标识一位客户,客户性别取值为“男”或者“女”,一份订单必须且仅对应一位客户。所以,客户号是客户表的主键,客户性别的取值只能为“男”或者“女”,订单中的客户号必须外键依赖于客户。
因此,客户号应表示为主键:
(a)NOT NULL UNIQUE或NOT NULL PRIMARY KEY或PRIMARY KEY;
客户性别的取值只能为“男”或者“女”:
(b)CHECK (VALUE IN('男','女'))
订单中的客户号必须外键依赖于客户:
(c)FOREIGN KEY(客户号)REFERENCES客户(客户号)

第3题:

● 某公司网上销售管理系统的数据库部分关系模式如下所示。其中,客户号唯一标识一位客户,产品号唯一标识一件产品,订单号唯一标识一份订单。一份订单必须且仅对应一位客户,一份订单可由一到多条订单明细组成,一位客户可以有多份订单。

客户(客户号,姓名,性别,地址,邮编)

产品(产品号,名称,库存,单价)

订单(订单号,时间,金额,客户号)

订单明细(订单号,产品号,数量)

订单关系模式的主键为 (40) ;订单明细关系模式的主键为 (41) ;其中订单的外键

为 (42) 。

(40)

A. 订单号

B. 客户号

C.(订单号,客户号)

D.(订单号,时间)

(41)

A. 订单号

B. 产品号

C.(订单号,产品号)

D.(订单号,数量)

(42)

A. 客户号,订单明细的外键为订单号

B. 客户号,订单明细的外键为订单号和产品号

C. 订单号,订单明细的外键为产品号

D. 订单号,订单明细的外键为订单号和产品号


正确答案:A,C,B

第4题:

阅读以下说明,回答问题。

【说明】

某公司要开发一个销售管理系统,该系统的主要功能是:处理客户和销售员送来的订单;工厂是根据订货安排生产的,交出货物同时开出发票,收到客户付款后,根据发票存根进行应收款处理。每张订单由订单号,若干头信息和订单细节组成。一张订单可定购多种产品,工厂对大宗订货给予优惠。每种产品都规定了不同订货数量的折扣。

根据上述要求公司的销售部王经理写下了以下数据表结构:

客户:(客户号,客户名,地址,电话)

订单:(订单号,客户号,产品号,订货数,订货日期,交货日期,金额)

应收账款:(客户号,订单号,发票号,应收金额,支付日期,支付金额,当前余额)

产品描述:(产品号,产品名,单价,重量)

折扣规则:(产品号,订货量,折扣)

上表中带下划线的为主码。请为还没有确定主码或是主码不合理的数据表选定最合适的主码。


正确答案:客户:(客户号客户名地址电话) 订单:(订单号客户号产品号订货数订货日期交货日期金额) 应收账款:(客户号发票号发票号应收金额支付日期支付金额当前余额) 产品描述:(产品号产品名单价重量) 折扣规则:(产品号订货量折扣)
客户:(客户号,客户名,地址,电话) 订单:(订单号,客户号,产品号,订货数,订货日期,交货日期,金额) 应收账款:(客户号,发票号,发票号应收金额,支付日期,支付金额,当前余额) 产品描述:(产品号,产品名,单价,重量) 折扣规则:(产品号,订货量,折扣)

第5题:

根据下表,回答下列各题: 职员.DBF:职员号C(3),姓名C(6),性别C(2),组号N(1),职务C(10) 客户.DBF:客户号C(4),客户名C(36),地址C(36),所在城市C(36) 订单.DBF:订单号C(4),客户名C(4),职员号C(3),签订日期D,金额N(6.2) {TS}从订单表中查询金额大于10000元的订单号,正确的命令是( )。

A. SELECT金额>10000 FROM订单FOR订单号

B. SELECT订单号FROM订单FOR金额>10000

C. SELECT金额>10000 FROM订单WHERE订单号

D. SELECT订单号FROM订单WHERE金额>10000


正确答案:D
简单查询基于单个表,查询由SELECT和FROM短语(无条件查询)或SELECT、FROM和WHERE短语(条件查询)构成。其基本格式为:SELECT select—item FROM Database Name WHERE Filter Cndition。

第6题:

查询订购单的数量和所有订购单平均金额的正确命令是()如下关系:客户(客户号,名称,联系人,邮政编码,电话号码)产品(产品号,名称,规格说明,单价)订购单(订单号,客户号,订购日期)订购单名细(订单号,序号,产品号,数量)

A、SELECTCOUNT(DISTINCT订单号),AVG(数量*单价)FROM产品JOIN订购单名细ON产品.产品号=订购单名细.产品号

B、SELECTCOUNT(订单号),AVG(数量木单价)FROM产品JOIN订购单名细ON产品.产品号=订购单名细.产品号

C、SELECTCOUNT(DISTINCT订单号),AVG(数量(单价)FROM产品,订购单名细ON产品.产品号=订购单名细.产品号

D、SELECTCOUNT(订单号),AVG(数量*单价)FROM产品,订购单名细ON产品.


参考答案:A

第7题:

显示2005年1月1日后签订的订单,显示订单的订单号、客户名以及签订日期。正确的SQL语句是

A.SELECT订单号,客户名,签订日期 FROM 订单 JOIN 客户 ON 订单.客户号=客户 .客户号 WHERE签订日期>{^2005-1-1}

B.SELECT 订单号,客户名,签订日期 FROM 订单 JOIN 客户 WHERE 订单.客户号=客户.客户号AND 签订日期>{^2005-1-1}

C.SELECT 订单号,客户名,签订日期 FROM 订单,客户 WHERE 订单.客户号=客户.客户号AND签订日期<{^2005-1-1}

D.SELECT订单号,客户名,签订日期 FROM 订单,客户 ON 订单.客户号=客户.客户号 AND 签订日期<{^2005-1-1}


正确答案:A
解析:显示2005年1月1日后签定订单,表示方法为:签定日期>{^2005-1-1},故排除选项C和选项D。两个表使用JOIN连接,连接条件使用ON,故选项A为正确答案。

第8题:

显示2005年1月1日后签订的订单,显示订单的订单号、客户名以及签订日期。正确的SQL语句是A) SELECT订单号,客户名,签订日期FROM订单JOIN客户ON订单.客户号=客户.客户号WHERE签订日期>{^2005-1-11}B) SELECT订单号,客户名,签订日期FROM订单JOIN客户WHERE订单.客户号=客户.客户号AND签订日期>{^2005-1-11}C) SELECT订单号,客户名,签订日期FROM订单,客户WHERE订单.客户号=客户.客户号AND签订日期<{^2005-1-1}D) SELECT订单号,客户名,签订日期FROM订单,客户ON订单.客户号=客户.客户号AND签订日期<{^2005-1-11}


正确答案:A
显示2005年1月1日后签定订单,表示方法为:签定日期>{^2005-1-1},故排除选项C和选项D。两个表使用JOIN连接,连接条件使用ON,故选项A为正确答案。

第9题:

第 7~11 使用如下关系:{Page}

客户(客户号,名称,联系人,邮政编码,电话号码)

产品(产品号,名称,规格说明,单价)

订购单(订单号,客户号,订购日期)

订购单名细(订单号,序号,产品号,数量)

第 7 题 查询单价在600元以上的主机板和硬盘的正确命令是( )。


正确答案:B
题中的查询有两个筛选条件,“单价>60”和“名称=‘主机板’OR名称=“硬盘”,这两个条件要同时满足,应用AND进行与运算,又因为在条件中AND比OR运算符的优先级高,所以“名称=‘主机板’OR名称=‘硬盘’”要加上括号。

第10题:

查询订购单的数量和所有订购单平均金额的正确命令是( )。

A.SELECT COUNT(DISTINCT订单号),AVG(数量*单价)FROM产品JOIN订购单明细ON产品.产品号=订购单明细.产品号

B.SELECT COUNT(订单号),AVG(数量*单价)FROM产品JOIN订购单明细ON产品.产品号:订购单明细.产品号

C.SELECT COUNT(DISTINCT订单号),AVG(数量*单价)FROM产品,订购单明细0N产品.产品号=订购单明细.产品号

D.SELECT COUNT(订单号),AVG(数量*单价)FROM产品,订购单明细0N产品.产品号=订购单明细.产品号


正确答案:A
A。【解析】与连接运算有关的语法格式为:SELECT…FROMTableINNERlLEFTlRIGHTIFULLJOINTableONJoinCondionWHERE…从以上格式可以看出,选项C和选项D是错误的。DISTINCT短语的作用是去除重复的记录,依据题意,正确的答案是选项A。

更多相关问题