以订购关系ORDER(订单号,书号,书名,单价,订购数量)为例,说明插入异常的含义。(注:一个订单可订购多种图书)

题目

以订购关系ORDER(订单号,书号,书名,单价,订购数量)为例,说明插入异常的含义。(注:一个订单可订购多种图书)


相似考题
更多“以订购关系ORDER(订单号,书号,书名,单价,订购数量)为例,说明插入异常的含义。(注:一个订单可订购多种图书)”相关问题
  • 第1题:

    查询尚未最后确定订购单的有关信息的正确命令是( )。

    A.SELECT名称,联系人,电话号码,订单号FROM客户,订购单WHERE客户.客户号=订购单.客户号AND订购日期IS NULL

    B.SELECT名称,联系人,电话号码,订单号FROM客户,订购单WHERE客户.客户号=订购单.客户号AND订购日期=NULL

    C.SELECT名称,联系人,电话号码,订单号FROM客户,订购单FOR客户.客户号=订购单.客户号AND订购日期IS NULL

    D.SELECT名称,联系人,电话号码,订单号FROM客户,订购单FOR客户.客户号=订购单.客户号AND订购日期=NULL


    正确答案:A
    A。【解析】在SQL语句中,限定查询条件使用的是WHERE短语,所以选项C和选项D是错误的。而且在查询空值时使用的是ISNULL,而“=NULL”是无效的。选项A正确。

  • 第2题:

    在订单管理系统中,客户一次购物(一张订单)可以订购多种商品。有订单关系R:R(订单号,日期,客户名称,商品编码,数量),关系R属于()。

    A、1NF

    B、2NF

    C、3NF

    D、BCNF


    参考答案:B

  • 第3题:

    请完成下列查询的SQL语句。

    (1)查询名称中包含“数据库”的图书的图书名称,作者,出版社和出版日期。

    SELECT (d)

    FROM 图书

    WHERE 图书名称 (e);

    (2)查询提供销售(图书表中有)但没有销售过(没在订单明细表中出现)的图书名称和出版社。

    SELECT 图书名称,出版社

    FROM 图书

    WHERE NOT EXISTS (

    SELECT (f)

    FROM 订单明细

    WHERE (g));

    (3)查询订购图书数量最多的会员名及其订购的数量。

    SELECT 用户名, (h)

    FROM订单,订单明细

    WHERE (i)

    GROUP BY 用户名

    HAVING (j)

    (SELECT SUM (数量)

    FROM 订单,订单明细

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

    GROUP BY 用户名);

    (4)为了统计会员的购买行为信息,实施有意义的客户关怀策略,查询会员的平均订购间隔时间,考虑多次购买图书和一次购买图书的情况(其中,DATEDIFF函数表示两个日期之间的天数)。

    SELECT 用户名,CASE WHEN (k)

    THEN DATEDIFF (MAX (订购日期),MIN (订购日期)) / (1)

    ELSE DATEDIFF(CURRENT_TIMESTAMP,MIN(订购日期))

    END AS AVG GAP

    FROM 订单

    (m);


    正确答案:(1)(d)图书名称作者出版社出版日期 (e)LIKE'%数据库%' (2)(f)* (g)图书.图书编号=订单明细.图书编号 (3)(h)SUM(数量) (i)订单.订单编号=订单明细.订单编号 (j) SUM(数量)>=ALL (4)(k)COUNT(*)>1 (l)(COUNT(*)-1或COUNT(*)也给分 (m)GROUP BY 用户名
    (1)(d)图书名称,作者,出版社,出版日期 (e)LIKE'%数据库%' (2)(f)* (g)图书.图书编号=订单明细.图书编号 (3)(h)SUM(数量) (i)订单.订单编号=订单明细.订单编号 (j) SUM(数量)>=ALL (4)(k)COUNT(*)>1 (l)(COUNT(*)-1或COUNT(*)也给分 (m)GROUP BY 用户名 解析:本题考查查询语句SELECT的语法,查询是SQL的重要内容。
    (1)考查基本的SQL查询语法,SELECT后是要查询的属性,查询条件是包含“数据库”的图书,因此用LIKE关键字。
    (2)考查NOTEXISTS语法,(f)处填*。该查询为相关查询,因此(g)处的条件为图书.图书编号=订单明细.图书编号。
    (3)考查较复杂的嵌套查询、分组查询和ALL关键字。子查询得到所有会员的订购数,题目要求查询订购数最多的会员名和订购数,因此(j)的答案为SUM(数量)>=ALL。
    (4)考查分组查询、聚集函数和CASE语法。平均订购间隔时间对一次购买和多次购买的会员有不同的计算方式,对一次购买的会员,平均订购时间为当前时间—订购时间;而对于多次购买的会员,平均订购时间为(最晚的订购时间—最早的订购时间)/间隔数,间隔数为订购数-1。

  • 第4题:

    查询尚未最后确定订购单的有关信息的正确命令是( )。

    A.SELECT名称,联系人,电话号码,订单号FROM客户,订购单WHERE客户.订单号=订购单.订单号and订购日期IS NULL

    B.SELECT名称,联系人,电话号码,订单号FROM客户,订购单WHERE客户.订单号=订购单.订单号and订购日期=NULL

    C.SRLECT名称,联系人,电话号码,订单号FROM客户,订购单FOR客户.订单号=订购单.订单号and订购日期IS NULL

    D.SELECT名称,联系人,电话号码,订单号FROM客户,订购单FOR客户.订单号=订购单.订单号and订购日期=NULL


    正确答案:A
    解析:本题考查在SQL查询语句中对NULL(空)值的掌握。使用Null值作为空值查询,其中查询空值要使用Is NULL,或Is Not NULL,而“=NULL”是无效表达式,选项C及选项D使用了错误的条件关键字“FOR”所以排除,选项B使用了无效表达式“=NULL”,故正确答案为A。

  • 第5题:

    假设有一个“图书订单表”,其字段分别为书名、单价和数量,若以此表为数据源创建一个窗体,在窗体中设置一个计算订购总金额的文本框,那么“控件来源”属性值为【 】。


    正确答案:=[单价]*[数量]
    =[单价]*[数量] 解析:该控件来源的属性返回值应设置为表达式“=[单价]*[数量]”。

  • 第6题:

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

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

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

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

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

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


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

  • 第7题:

    首先为order_detail表增加一个新字段:新单价(类型与原来的单价字段相同),然后编写满足如下要求的程序:根据order_list表中的“订购日期”字段的值确定order_detail表的“新单价”字段的值,原则是:订购日期为2001年的“新单价”字段的值为原单价的90%,订购日期为2002年的“新单价”字段的值为原单价的110%(注意:在修改操作过程中不要改变order_detail表记录的顺序),将order_detail表中的记录存储到od_new表中(表结构与order_detail表完全相同)。最后将程序保存为prog1.prg,并执行该程序。

    接着再利用Visual FoxPro的“快速报表”功能建立一个的简单报表,该报表内容按顺序含有order_detail表的订单号、器件号、器件名、新单价和数量字段的值,将报表文件保存为report1。


    正确答案:在命令窗口输入命令:USE order_detail &&打开数据表 MODIFY STRUCTURE &&打开表设计器 打开表设计器后在“字段”选项卡的“数量”字段后增加一个新的字段根据题意输入字段名:新单价字段宽度和类型与“单价”字段一样。 在命令窗口输入命令:MODIFY COMMAND prog1在程序编辑窗口中输入如下程序段: **********文件prog1.prg中的程序段********** SET TALK OFF &&将订购日期是2001年的所有的订单号放入临时表curtable中 SELECT订单号FROM order_list WHERE YEAR(订购日期)=2001; INTO CURSOR curtable && 对所有订购日期是2001年的计算新的单价 DO WHILE NOT EOF() UPDATE order_detail SET新单价=单价*0.9; WHERE订单号=curtable.订单号 SKIP ENDDO && 将订购日期是2002年的所有的订单号放入临时表CurTable中 SELECT订单号FROM order_list WHERE YEAR(订购日期)=2002; INTO CURSOR curtable && 对所有订购日期是2002年的计算新的单价 DO WHILE NOT EOF() UPDATE order detail SET新单价=单价*1.1; WHERE 订单号=curtable.订单号 SKIP ENDDO CLOSE ALL USE order_detail COPY TO od_new SET TALK ON ****************************************** 保存设计结果在命令窗口输入命令:DO prog1执行程序文件。 在命令窗口输入命令:CREATE REPORT report1打开报表设计器。选择菜单命令“报表”—“快速报表”系统首先要求选择报表数据源。根据题意选择考生文件夹下的order_detail表作为报表数据源。系统接着弹出“快速报表对话框”单击对话框中的“字段”命令按钮在弹出的“字段选择器”对话框中依次选择订单号、器件号、器件名、新单价和数量5个字段添加到“选定字段”列表框中如图3-62所示。单击“确定”按钮返回报表设计器保存报表设计。单击工具栏中的预览按钮可查看设计效果。
    在命令窗口输入命令:USE order_detail &&打开数据表 MODIFY STRUCTURE &&打开表设计器 打开表设计器后,在“字段”选项卡的“数量”字段后增加一个新的字段,根据题意输入字段名:新单价,字段宽度和类型与“单价”字段一样。 在命令窗口输入命令:MODIFY COMMAND prog1,在程序编辑窗口中输入如下程序段: **********文件prog1.prg中的程序段********** SET TALK OFF &&将订购日期是2001年的所有的订单号放入临时表curtable中 SELECT订单号FROM order_list WHERE YEAR(订购日期)=2001; INTO CURSOR curtable && 对所有订购日期是2001年的计算新的单价 DO WHILE NOT EOF() UPDATE order_detail SET新单价=单价*0.9; WHERE订单号=curtable.订单号 SKIP ENDDO && 将订购日期是2002年的所有的订单号放入临时表CurTable中 SELECT订单号FROM order_list WHERE YEAR(订购日期)=2002; INTO CURSOR curtable && 对所有订购日期是2002年的计算新的单价 DO WHILE NOT EOF() UPDATE order detail SET新单价=单价*1.1; WHERE 订单号=curtable.订单号 SKIP ENDDO CLOSE ALL USE order_detail COPY TO od_new SET TALK ON ****************************************** 保存设计结果,在命令窗口输入命令:DO prog1,执行程序文件。 在命令窗口输入命令:CREATE REPORT report1,打开报表设计器。选择菜单命令“报表”—“快速报表”,系统首先要求选择报表数据源。根据题意,选择考生文件夹下的order_detail表作为报表数据源。系统接着弹出“快速报表对话框”,单击对话框中的“字段”命令按钮,在弹出的“字段选择器”对话框中,依次选择订单号、器件号、器件名、新单价和数量5个字段添加到“选定字段”列表框中,如图3-62所示。单击“确定”按钮,返回报表设计器,保存报表设计。单击工具栏中的预览按钮,可查看设计效果。 解析:本大题考查的主要是SQL语句的应用,包括数据定义、数据修改和数据查询功能,设计过程中可利用临时表来存放查询结果,再利用DO循环语句对表中的记录逐条更新。

  • 第8题:

    第19~23使用如下关系:

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

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

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

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

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


    正确答案:B

  • 第9题:

    ( 33 )查询尚未最后确定订购单的有关信息的正确命令是

    A ) SELECT 名称 , 联系人 , 电话号码 , 订单号 FROM 客户 , 订购单

    WHERE 客户 . 客户号 = 订购单 . 客户号 AND 订购日期 IS NULL

    B ) SELECT 名称 , 联系人 , 电话号码 , 订单号 FROM 客户 , 订购单

    WHERE 客户 . 客户号 = 订购单 . 客户号 AND 订购日期 =NULL

    C ) SELECT 名称 , 联系人 , 电话号码 , 订单号 FROM 客户 , 订购单

    FOR 客户 . 客户号 = 订购单 . 客户号 AND 订购日期 IS NULL

    D ) SELECT 名称 , 联系人 , 电话号码 , 订单号 FROM 客户 , 订购单

    FOR 客户 . 客户号 = 订购 单 . 客户号 AND 订购日期 =NULL


    正确答案:A

  • 第10题:

    在订单管理系统中,客户一次购物(一张订单)可以订购多种商品。那么在关系模式:订单明细(订单号,日期,客户名称,商品编码,数量)中,主关键字是()。

    • A、订单号,商品编码
    • B、订单号
    • C、订单号,客户名称
    • D、商品编码

    正确答案:A

  • 第11题:

    单选题
    在订单管理系统中,客户一次购物(一张订单)可以订购多种商品。那么在关系模式:订单明细(订单号,日期,客户名称,商品编码,数量)中,主关键字是()。
    A

    订单号,商品编码

    B

    订单号

    C

    订单号,客户名称

    D

    商品编码


    正确答案: B
    解析: 暂无解析

  • 第12题:

    问答题
    以订购关系ORDER(订单号,书号,书名,单价,订购数量)为例,说明插入异常的含义。(注:一个订单可订购多种图书)

    正确答案: 订单号和书号是主键,均不能为空,当创建一个没有任何书号的新订单号时就会出现插入异常。
    解析: 暂无解析

  • 第13题:

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

    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

  • 第14题:

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

    [说明]

    某鲜花订购网站有鲜花、顾客、员工三个实体集,其之间的联系是订货。并要求能提供下述服务:

    (1)可查询现存鲜花的名称、代号、数量和每支花的单价。其中,所有鲜花的代号是唯一标识的。

    (2)可查询顾客订货情况,包括订单号、顾客名、所订鲜花代号、订购数量、包装方式、联系方式、送货地。所有订单号唯一。

    (3)可查询员工的送货情况,包括员工号、送货日期、接受订单号。一个订单只由一名员工送货。

    根据以上要求,完成如下任务:

    根据以上语义设计出E-R模型。


    正确答案:

  • 第15题:

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

    [说明]

    某网上书店后台数据库的部分关系模式如下:

    会员(会员编号,用户名,密码,姓名;地址,邮编,电话,消费额,积分)

    图书(图书编号,类型名称,图书名称,作者,出版社,出版日期,ISBN,价格)

    订单(订单编号,用户名,销售额,订购日期,出货日期)

    订单明细(订单明细编号,订单编号,图书编号,数量)

    下面是创建订单关系的SQL语句,订单编号唯一识别一个订单,用户名为订购图书的会员用户名,且不能为空。要求订购日期不能大于出货日期。请将空缺部分补充完整。

    CREATE TABLE 订单(

    订单编号 CHAR(6) (a)

    用户名VARCHAR(40)NOT NULL (b),

    销售额FLOAT,

    订购日期DATE NOT NULL,

    出货日期DATE (c));


    正确答案:(a) PRIMARY KEY 或 NOT NULL UNIQUE 或 UNIQUE NOT NULL (b) REFERENCES会员(用户名)或REFERENCES会员 (c) CHECK(订购日期=出货日期)或 CONSTRAINT chk date CHECK(订购日期=出货日期) (注:chk date可为其他名称)
    (a) PRIMARY KEY 或 NOT NULL UNIQUE 或 UNIQUE NOT NULL (b) REFERENCES会员(用户名)或REFERENCES会员 (c) CHECK(订购日期=出货日期)或 CONSTRAINT chk date CHECK(订购日期=出货日期) (注:chk date可为其他名称) 解析:本题考核SQL语言的应用。
    本题考查关系模型的完整性约束。完整性约束包括三类:实体完整性、参照完整性和用户定义的完整性。实体完整性约束规定关系的主属性不能取空值,关系模型中以主码作为唯一性标示。(a)考核的是实体完整性,订单编号是订单关系的主键,用PRIMARY KEY关键字,也可用NOT NULL UNIQUE 或UNIQUE NOT NULL来保证一个订单标号唯一识别一个订单:参照完整性约束规定若属性(或属性组)A是关系R上的主码,B是关系S上的外码,A与B相对应(来自相同的域),则B取值为空或者来自于R上的某个A的值。(b)考查参照完整性,用户名属性对应于会员关系的用户名属性,定义语法为REFERENCES会员(用户名),由于两个关系中的属性名一致,因此也可以用 REFERENCES会员定义;用户定义的完整性约束是针对具体的数据库应用而定义的,它反映该应用所涉及的数据必须满足用户定义的语义要求。(c)考查用户定义的完整性约束,要求出货日期必须大于等于订购日期,因此答案为CHECK(订购日期=出货日期) 或C0ONSTRAINT chk date CHECK(订购日期=出货日期),此处,chk date可以为其他的约束名。

  • 第16题:

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

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

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

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

    D.SELECT COUNT(订单号),AVG(数量*单)FROM产品,订购单名细ON产品.产品号=订购单名细产品号


    正确答案:A
    解析:本题要求查询订购单的数量及所有订购单的平均金额,考查的是SQL中实现两个表连接时的命令。在SQL中两表连接命令的格式为:SELECT…FROM表名>INNER JOIN表名>ON 连接表达式,由此可以看出,选项C与选项D为错误选项。需要注意的是,由于在“订购单明细”表中可能有很多重复的产品号,还可能有很多重复的订购单号,如果不加入DISTINCT短语限制重复订单号的话(选项B),该SQL语句执行完成后,计算的订购单数景会是在“订购单明细”表中所有记录的总和,所以该选项错误。正确选项为A。

  • 第17题:

    仓库管理数据库的订购计划关系模式为:订购计划(原材料编号,订购数量)。采用下面的触发器程序可以实现“当仓库中的任一原材料的数量小于其储备量时,向订购计划表中插入该原材料的订购记录,其订购数量为储备量的三倍”的功能。请将该程序的空缺部分补充完整。

    CREATE TRIGGER ins_order_trigger AFTER (1) ON 原材料

    REFERENCING NEW ROWAS nrow

    FOR EACHROW

    WHEN nrow.数量<arow.储备量

    INSERT INTO 订购计划VALUES

    ((m),(n));


    正确答案:(1) UPDATEINSERT (m) nrow编号 (n) nrow.存储量*3
    (1) UPDATE,INSERT (m) nrow,编号 (n) nrow.存储量*3 解析:本问题考查应试者对触发器程序编写的掌握。空(1)处要求填入的是触发操作 (INSERT、UPDATE或DELETE),空(m),(n)处填入的是欲插入的值。本题的关键是读懂程序。

  • 第18题:

    假设已在Access中建立了包含"书名"、"单价"和"数量"三个字段的"tOfg"表。以该表为数据源创建的窗体中,有一个计算订购总金额的文本框,其控件来源为

    A.[单位]*[数量]

    B.=[单位]*[数量]

    C.[图书订单表]![单价]*[图书订单表]![数量]

    D.=[图书订单表]![单价]*[图书订单表]![数量]


    正确答案:B
    解析:计算控件的控件源必须是以"="开头的计算表达式,表达式中的字段名前不用加表名,并且以"[]"括起来。

  • 第19题:

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

    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。

  • 第20题:

    ( 31 )~( 35 )使用如下关系:

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

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

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

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

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

    A ) SELECT * FROM 产品 WHERE 单价 >600 AND ( 名称 =' 主机板 ' AND 名称 =' 硬盘 ')

    B ) SELECT * FROM 产品 WHERE 单价 >600 AND ( 名称 =' 主机板 ' OR 名称 =' 硬盘 ')

    C ) SELECT * FROM 产品 FOR 单价 >600 AND ( 名称 =' 主机板 ' AND 名称 =' 硬盘 ')

    D ) SELECT * FROM 产品 FOR 单价 >600 AND ( 名称 =' 主机板 ' OR 名称 =' 硬盘 ' )


    正确答案:B

  • 第21题:

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

    A ) SELECT COUNT(DISTINCT 订单号 ),AVG( 数量 * 单价 )

    FROM 产品 JOIN 订购单名细 ON 产品 . 产品号 = 订购单名细 . 产品号

    B ) SELECT COUNT( 订单号 ),AVG( 数量 * 单价 )

    FROM 产品 JOIN 订购单名细 ON 产品 . 产品号 = 订购单名细 . 产品号

    C ) SELECT COUNT(DISTINCT 订单号 ),AVG( 数量 * 单价 )

    FROM 产品 , 订购单名 细 ON 产品 . 产品号 = 订购单名细 . 产品号

    D ) SELECT COUNT( 订单号 ),AVG( 数量 * 单价 )

    FROM 产品 , 订购单名细 ON 产品 . 产品号 = 订购单名细 . 产品号


    正确答案:A

  • 第22题:

    在客户订单录入过程中,对于客户订单的每个物料行必须输入哪些信息?()

    • A、只有物料代码和客户订单号
    • B、只有客户订单号,订购数量和客户要求的日期
    • C、只有物料代码,客户订单号,客户要求的日期和承诺日期
    • D、物料代码,客户订单号,订购数量,客户要求的日期,承诺日期

    正确答案:D

  • 第23题:

    单选题
    在客户订单录入过程中,对于客户订单的每个物料行必须输入哪些信息?()
    A

    只有物料代码和客户订单号

    B

    只有客户订单号,订购数量和客户要求的日期

    C

    只有物料代码,客户订单号,客户要求的日期和承诺日期

    D

    物料代码,客户订单号,订购数量,客户要求的日期,承诺日期


    正确答案: B
    解析: 暂无解析