【正确答案】(a)REFERENCES Emp(Eno)
(b)REFERENCES Car(Cno)
(c)CHECK(Get_time(StartTime)>=”07:00:00” AND Get_time(StartTime)<=”18:00:00”)
(d)(Sno)
【答案解析】
问答题
(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
【正确答案】(e)View AduiSCHEDULE
(f)Emp.Eno=SCHEDULE.Eno AND SCHEDULE.Cno=Car.Cno AND Car.Brand=’奥迪’
(g)TRIGGER
(h)UPDATE OF EndTime
(i)Amount=Amount+Bonus_Value(nrow.StartTime,nrow.EndTime)
(j)Eno=nrow.Eno
【答案解析】
问答题
【问题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=‘大金龙');
【正确答案】(k)Car.Cno,Brand
(l)COUNT(*)>=ALL
(m)NOT IN
(n)SCHEDULE,CAR
(o)SCHEDULE.Cno=CAR.Cno