阅读下列说明,回答问题。 【说明】 某大型集团公司的数据库的部分关系模式如下: 员工表:EMP(Eno,Ename,Age,Sex,Tit1e),各属性分别表示员工工号、姓名、年龄、性别和职称级别,其中性别取值为“男”“女”; 公司

admin2016-09-08  28

问题 阅读下列说明,回答问题。
【说明】
    某大型集团公司的数据库的部分关系模式如下:
    员工表:EMP(Eno,Ename,Age,Sex,Tit1e),各属性分别表示员工工号、姓名、年龄、性别和职称级别,其中性别取值为“男”“女”;
    公司表:COMPANY(Cno,Cname,City),各属性分别表示公司编号、名称和所在城市;
    工作表:WORKS(Eno,Cno,Salary),各属性分别表示职工工号、工作的公司编号和工资。
    有关关系模式的属性及相关说明如下:
(1)允许一个员工在多家公司工作,使用身份证号作为工号值。
(2)工资不能低于1500元。
    根据以上描述,回答下列问题:
(1)创建女员工信息的视图FemaleEMP,属性有Eno、Ename、Cno,Cname和Salary,请将下面SQL语句的空缺部分补充完整。
    CREATE
(e)
AS
    SELECT  EMP.Eno, Ename, COMPANY.Cno, Cname, Salary
    FROM  EMP, COMPANY, WORKS
    WHERE
(f);
(2)员工的工资由职称级别的修改自动调整,需要用触发器来实现员工工资的自动维护,函数float Salarr_value(char(10)Eno)依据员工号计算员工新的工资。请将下面SQL语句的空缺部分补充完整。
    CREATE
(g)Salary_TRG  AFTER(h)ON EMP
REFERENCING new row AS nrow
FOR EACH ROW
BEGIN
    UPDATE WORKS
    SET
(i)
   WHERE(j);
END

选项

答案(1)(e)VIEW FemaleEMP(Eno, Ename, Cno, Cname, Salary) (f)EMP.Eno=WORKS.Eno AND COMPANY.Cno=WORKS.Cno AND Sex=’女’ (2)(g)TRIGGER (h)UPDATE (i)Salary=Salary_value(nrow.Eno) (j)WORKS.Eno=nrow.Eno

解析 (1)创建视图需要通过CREATE VIEW语句来实现,由题目可知视图的属性有(Eno, Ename,Cno,Cname,Salary);通过公共属性列Eno和Cno对使用的三个基本表进行连接;由于只创建女员工的试图,所以还要在WHERE后加入“Sex=’女’”的条件。
从上分析可见,完整的SQL语句如下:
    CREATE  VIEW FemaleEMP(Eno, Ename, Cno, Cname, Salary)
    AS
    SELECT  EMP.Eno, Ename, COMPANY.Cno, Cname, Salary
    FROM  EMP, COMPANY, WORKS
    WHERE EMP.Eno = WORKS.Eno  AND  COMPANY.Cno=WORKS.Cno  AND  Sex=’女’;
(2)创建触发器可通过CREATE TRIGGER语句实现,要求考生掌握触发器的基本语法结构。按照问题要求,在工资关系中更新职工职称级别时触发器应自动执行,故需要创建基于UPDATE类型的触发器,其触发条件是更新职工职称级别;最后添加表连接条件。完整的触发器实现的方案如下:
    CREATE    TRIGGER  Salary_TRG  AFTER  UPDA”TE ON EMP
    REFERENCING new row AS nrow
    FOR EACH ROW
    BEGIN
    UPDATE WORKS
    SET  Salary = Salary value(nrow.Eno)
    WHERE  WORKS.Erio= nrow.Eno;
    END
转载请注明原文地址:https://jikaoti.com/ti/owN7FFFM
0

相关试题推荐
最新回复(0)