5.某单位公用车辆后勤服务部门数据库的部分关系模式如下:   
驾驶员:EMP(Eno,Ename, Age, Sex, telephone),各属性分别表示驾驶员工号、姓名、年龄、性别和电话号码;    
车辆:CAR(Cno,Brand,Capacity),各属性分别表示汽车车牌号、品牌名和排量;
调度:SCHEDULE(Sno,Eno,Cno,StartTime, Endtime),各属性分别表示调度号、驾驶员工号、汽车车牌号、发车时间和收车时间。
奖金:BONUS(Eno,Year,Month,Amount),各属性分别表示驾驶员工号、年、月和当月的奖金数量。
有关车辆调度的相关说明如下:
公车的行驶时间只能在工作时间内,因此规定调度表中每天安排发车的时间在上午07:00:00至下午18:00:00范围内。(
【问题1】(4分)
请将下面创建调度关系的SQL语句的空缺部分补充完整,要求指定关系的主码、外码,以及调度表中每天安排发车的时间在上午07:00:00至下午18:00:00范围内的约束(由函数
Time Get_time(DATETIME StartTime)返回出车的时间)。
CREATE TABLE SCHEDULE(
Sno CHAR(10),
Eno CHAR(10)       (a)      ,
Cno CHAR(8)        (b)      ,
StartTime DATETIME        (c)     ,
EndTime DATETIME,
PRIMARY KEY          (d)       );
【问题2】(6分)
(1)创建所有'奥迪'品牌汽车的调度信息的视图AudiSCHEDULE,属性有Eno、Ename、Cno、Brand、StartTime和EndTime,请将下面SQL语句的空缺部分补充完整。
CREATE            (e)       
AS
SELECT  EMP,Eno,Ename, CAR,Cno,Brand, StartTime, EndTime
FROM EMP,CAR, SCHEDULE
WHERE            (f)         
(2)驾驶员的奖金在收车时间写入时,由出车时间段自动计算,并用触发器来实现奖金的自动维护,函数float Bonus_value(DATETIME StartTime, DATETIME EndTime)依据发车时间和收车时间来计算本次出车的奖金。系统在每月初自动增加一条该员工的当月奖金记录,初始金额为零。请将下面SQL语句的空缺部分补充完整。
CREATE    (g)     Bonus_TRG  AFTER      (h)        ON SCHEDULE
REFERENCING new row AS nrow
FOR EACH ROW
BEGIN
UPDATE BONUS
SET         (i)         
WHERE     (j)     AND   Year=Get_Year(nrow.StartTime)
AND Month= Get_Month(nrow.StartTime) ;
END
【问题3】(5分)
请将下面SQL语句的空缺郜分补充完整。
(1)查询调度次数最多的汽车车牌号及其品牌。
SELECT  CAR.Cno,Brand
FROM  CAR, SCHEDULE
WHERE  CAR.Cno =SCHEDULE.Cno
GROUP BY      (k)       
HAVING       (l)       (SELECT  COUNT(*)
FROM SCHEDULE
CROUP BY Cno);
(2)查询所有在调度表中没有安排过“大金龙”品牌车辆的驾驶员工号和姓名。
SELECT Eno,Ename
FROM EMP
WHERE Eno          (m)     (
SELECT Eno
FROM        (n)     
WHERE       (o)        
AND  brand= ‘大金龙');