反馈
问题:
<h3> 试题三</h3><p> 【说明】</p><p> 某订单管理系统的部分数据库关系模式如下 :</p><p> 客户: CUSTOMERS(Cno , Cnam e,Cag e,Csex), 各属性分别表示客户编号、客户姓名、年龄和性别;</p><p> 商品: GOODS ( Gno, Gnam e, Gprice , Gorigin) , 各属性分别表示商品编号、商品名称、单价和产地;</p><p> 订单: ORDERS( Ono, Cno, Gno , Oprice , Onum ber) , 各属性分别表示订单编号、客户编号、商品编号、顾客购买商品的单价和数 量。</p><p> 有关关系模式的说明如下:</p><p> ( 1) 下划线标出的属性是表的主键 。</p><p> ( 2 ) 商品表中的 Gprice 是商品的当前价格, 可能会发生变动 ; 订单表中的 Oprice 是订单成交是的商品单价。</p><p> ( 3 ) 一个订单只包含一位顾客购买的一种商品; 其商品数量至少 1 件, 最多 99 件。</p><p> </p><p> 根据以上描述, 回答下列问题, 将 SQL 语句的空缺部分补充完整。</p>
选项 :
<p> 【问题 1】( 3 分) </p><p> 请将下面创建订单表的 SQL 语句补充完整,要求定义实体完整性约束 ,参照完整性约束 , 以及其它完整性约束。</p><p> CREATE TABLE ORDERS (</p><p> Ono CHAR(20) PRIMARY KEY </p><p> Cno CHAR(10) ( a ),</p><p> Gno CHAR(15) ( b ), </p><p> Oprice NUMERIC(7,2),</p><p> Onumber SMALLINT ( c ) </p><p> ) ;</p><p><br/></p>
选项 :
<p> 【问题 2】( 5 分) </p><p> 查询所有订单的详细情况 , 要求输出订单号 ( Ono )、客户姓名 ( Cname)、商品名称( Gname)、单价 ( Oprice )、数量 ( Onumber ) 和金额 ( Oamount ) , 查询结果按照金额从大到小排列。此功能由下面的 SQL 语句实现, 请补全。</p><p><br /></p><p> SELECT Ono, Cname, Gname, Oprice , Onumber, (d) as Oamount</p><p> FROM CUSTOMERS, ORDERS, GOODS</p><p> WHERE (e)</p><p> AND (f)</p><p> (g) BY ( h )</p><p> </p><p><br/></p>
选项 :
<p> 【问题 3】( 5 分) </p><p> 创建已售商品信息视图,给出已售商品的编号 ( Gno ) 、名称( Gname)、订单个数( Onum )及平均每单的商品数量 ( GAnum ) 。此视图的创建语旬如下,请补全。</p><p> CREATE ( i ) GOODS SOLD AS</p><p> SELECT ORDERS.Gno AS Gno, MIN(GOODS.Gname) AS Gname,</p><p> ( j ) AS Onum , ( k ) AS GAnum </p><p> FROM ORDERS,GOODS</p><p> WHERE ORDERS.Gno = GOODS.Gno</p><p> ( I ) BY ( m ) </p><p><br/></p>
选项 :
<p> 【问题 4】( 2 分) </p><p> 查询未售出商品的编号和名称。此功能由下面的 SQL 语句实现, 请补全。</p><p> SELECT Gno, Gname </p><p> FROM ( n )</p><p> ( o )</p> <p> SELECT Gno,Gname FROM GOODS_SOLD;</p><p><br/></p>
答案:
解析:
<p> ( a ) REFERENCES CUSTOMERS(Cno) ( b ) REFERENCES GOODS(Gno)</p><p> ( c ) CHECK (Onumber BETWEEN 1 AND 99) 或 CHECK (Onumber>= 1 AND Onumber<=99)</p><p> ( d ) ORDERS.Oprice * ORDERS. Onum ber 或 Oprice * Onumber ( e) ORDERS .Cno = CUSTOM RS.Cno</p><p> ( f ) ORDERS.Gno=GOODS.Gno e 和 f 可互换</p><p> ( g ) ORDER</p><p> ( h ) Oamount DESC C i ) VIEW</p><p> ( j ) COUNT(*)</p><p> ( k ) AVG(ORDERS. Onum ber) ( I ) GROUP</p><p> ( m ) ORDERS.Gno ( n ) GOODS</p><p> ( o ) EXCEPT</p>