4.某健身俱乐部要开发一个信息管理系统,该信息系统的部分关系模式如下:
员工(员工身份证号,姓名,工种,电话,住址)
会员(会员手机号,姓名,折扣)
项目(项目名称,项目经理,价格)
预约单(会员手机号,预约日期,项目名称,使用时长)(外键:会员手机号)
消费(流水号,会员手机号,项目名称,消费金额,消费日期)(外键:会员手机号,项目名称)
有关关系模式的属性及相关说明如下:
(1)俱乐部有多种健身项目,不同的项目每小时的价格不同。俱乐部实行会员制,且需要电话或在线提前预约。
(2)每个项目都有一个项目经理,一个经理只能负责一个项目。
(3)俱乐部对会员进行积分,达到一定积分可以进行升级,不同的等级具有不同的折扣。
根据以上描述,回答下列问题:
【问题1】(4分)
请将下面创建消费关系的SQL语句的空缺部分补充完整,要求指定关系的主码、 外码,以及消费金额大于零的约束。
CREATE TABLE 消费(
流水号 CHAR(12) (a) ,
会员手机号CHAR(11),
项目名称CHAR (8),
消费金额NUMBER (b) ,
消费日期DATE,
(c) ,
(d) ,
);
【问题2】(6分)
(1)手机号为18812345678的客户预约了 2014年3月18日两个小时的羽毛球场地,消费流水号由系统自动生成。请将下面SQL语句的空缺部分补充完整。
INSERT INTO 消费(流水号,会员手机号,项目名称,消费金额,消费日期)
SELECT '201403180001','18812345678','羽毛球', (e) ,'2014/3/18'
FROM会员, 项目, 预约单
WHERE预约单.项目名称=项目.项目名称AND (f)
AND项目.项目名称='羽毛球'
AND会员.会员手机号='18812345678';
(2)需要用触发器来实现会员等级折扣的自动维护,函数float vip_value(char(11) 会员手机号)依据输入的手机号计算会员的折扣。请将下面SQL语句的空缺部分补充完整。
CREATE TRIGGER VIP_TRG AFTER (g) ON (h)
REFERENCING new row AS nrow
FOR EACH ROW
BEGIN
UPDATE 会员
SET (i)
WHERE (j) ;
END
【问题3】(5分)
请将下面SQL语句的空缺部分补充完整。
(1)俱乐部年底对各种项目进行绩效考核,需要统计出所负责项目的消费总金额 大于等于十万元的项目和项目经理,并按消费金额总和降序输出。
SELECT项目.项目名称,项目经理,SUM(消费金额)
FROM项目,消费
WHERE (k)
GROUP BY (l)
ORDER BY (m) ;
(2)查询所有手机号码以“888”结尾,姓“王”的员工姓名和电话。
SELECT姓名,电话
FROM 员工
WHERE 姓名 (n) AND 电话 (o)