题库 题库

【简答题】

试题二(15分)
    阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某商场客户-商品数据库中各关系模式如下:
 
    其中:
    1)一种品牌的同一名称商品可以有多个型号,商品的库存有大于等于0约束;
    2)销售表记录每一笔销售,每销售一件商品,其库存都要做相应的修改。
    现假定已经建立了该数据库及上述四个基本表。
【问题1】(5分)
    (1) 客户关系中的年龄取值在15岁到60岁之间(包含15岁和60岁),增加该约束的SQL语句如下,请将空缺部分补充完整。
    ALTER TABLE 客户 ADD CONSTRAINT
    CONSTRAINT con_age CHECK ( _____(a)_____)
    (2) 如下用SQL 语句创建的畅销商品视图包含商品号、商品名称、型号、品牌和销售量,该视图中商品的销售量大于等于1000件。请将空缺部分补充完整。
    CREATE VIEW 畅销商品  _____(b)_____
    AS
    SELECT 商品.商品号, 名称, 型号, 品牌, 销售量
    FROM 商品, ( SELECT 商品号, _____(c)_____  AS 销售量
    FROM  销售
    GROUP BY 商品号
    HAVING SUM(数量) > = 1000 ) AS 商品销售量
    WHERE _____(d)_____ ;
    (3) 将视图畅销商品的查询权限赋予销售经理李华,请将空缺部分补充完整。
    GRANT  _____(e)_____  ON TABLE 畅销商品TO 李华;
【问题2】(3分)
    查询购买“新飞”品牌的任一型号“冰箱”的客户姓名及购买日期。实现该查询的SQL语句如下,请将空缺部分补充完整。
    SELECT 姓名, 日期
    FROM  _____(f)_____
    WHERE  _____(g)_____    AND 商品号  _____(h)_____(
    SELECT 商品号 FROM 商品
    WHERE 品牌 = ‘新飞’  AND 名称 = ‘冰箱’ )
【问题3】(3分)
    实现销售业务的嵌入式SQL代码段(嵌入C语言)如下,假设销售表的流水号由系统自动生成。请将空缺部分补充完整。
    ……
    EXEC SQL BEGIN DECLARE SECTION;
    /* 销售:商品号,客户号,数量,日期 */
    char pno[6];    char cno[6];
    int quantity;    char date[10];
    EXEC SQL END DECLARE SECTION;
    ……
    EXEC SQL CONNECT TO DEFAULT;
    EXEC SQL SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
    EXEC SQL INSERT INTO 销售(商品号,客户号,数量,日期)
    VALUES(  _____(i)_____ );
    EXEC SQL UPDATE 商品 SET 库存 = _____(j)_____ WHERE 商品号 = :pno;
    if(SQLCA.SQLCODE != 0){
    printf(“商品%s库存不满足本次购买数量,交易失败!”, pno);
    EXEC SQL ROLLBACK WORK;
    } else{
    EXEC SQL  _____(k)_____  ;
    }
    EXEC SQL DISCONNECT CURRENT;
    ……
【问题4】(4分)
    对商品表增加最小库存属性;若修改某商品的库存时,使得库存值小于或等于其最小库存值,则向采购表插入一条记录,要求采购的数量是该商品最小库存值的两倍再加上10。下面是完成该功能的SQL语句,请将空缺部分补充完整。
    ALTER TABLE 商品  _____(l)_____ ;
    CREATE TRIGGER 采购-trigger AFTER _____(m)_____
    REFERENCING NEW ROW AS nrow
    FOR EACH ROW
    WHEN  _____(n)_____
    BEGIN
    INSERT INTO 采购
    VALUES( _____(o)_____ )
    END

参考答案

相关试题