閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某大型集團(tuán)公司的數(shù)據(jù)庫(kù)的部分關(guān)系模式如下:
員工表:EMP(Eno,Ename,Age,Sex,Title),各屬性分別表示員工工號(hào)、姓名、年齡、性別和職稱級(jí)別,其中性別取值為“男”“女”;
公司表:COMPANY(Cno,Cname,City),各屬性分別表示公司編號(hào)、名稱和所在城市;
工作表:WORKS(Eno,Cno,Salary),各屬性分別表示職工工號(hào)、工作的公司編號(hào)和工資。
有關(guān)關(guān)系模式的屬性及相關(guān)說(shuō)明如下:
(1)允許一個(gè)員工在多家公司工作,使用身份證號(hào)作為工號(hào)值。
(2)工資不能低于1500元。
根據(jù)以上描述,回答下列問(wèn)題:
【問(wèn)題1】(4分)
請(qǐng)將下面創(chuàng)建工作關(guān)系的SQL語(yǔ)句的空缺部分補(bǔ)充完整,要求指定關(guān)系的主碼、外碼,以及工資不能低于1500元的約束。
CREATE TABLE WORKS(
Eno CHAR(10) (a) ,
Cno CHAR(4) (b) ,
Salary int (c) ,
PRIMARY KEY (d) ,
);
【問(wèn)題2】(6分)
(1)創(chuàng)建女員工信息的視圖FemaleEMP,屬性有Eno、Ename、Cno、Cname和Salary,請(qǐng)將下面SQL語(yǔ)句的空缺部分補(bǔ)充完整。
CREATE (e)
AS
SELECT EMP.Eno,Ename,COMPANY.Cno,Cname,Salary
FROM EMP, COMPANY, WORKS
WHERE (f) ;
(2)員工的工資由職稱級(jí)別的修改自動(dòng)調(diào)整,需要用觸發(fā)器來(lái)實(shí)現(xiàn)員工工資的自動(dòng)維護(hù),函數(shù)float Salary_value(char(10) Eno)依據(jù)員工號(hào)計(jì)算員工新的工資。請(qǐng)將下面SQL語(yǔ)句的空缺部分補(bǔ)充完整。
CREATE (g) Salary_TRG AFTER (h) ON EMP
REFERENCING new row AS nrow
FOR EACH ROW
BEGIN
UPDATE WORKS
SET (i)
WHERE (j) ;
END
【問(wèn)題3】(5分)
請(qǐng)將下面SQL語(yǔ)句的空缺部分補(bǔ)充完整。
(1)查詢員工最多的公司編號(hào)和公司名稱。
SELECT j COMPANY.Cno,Cname
FROM COMPANY,WORKS
WHERE COMPANY.Cno= WORKS.Cno
GROUP BY (k)
HAVING (l) ( SELECT COUNT(*)
FROM WORKS
GROUP BY Cno
);
(2)查詢所有不在“中國(guó)銀行北京分行”工作的員工工號(hào)和姓名。
SELECT Eno,Ename
FROM EMP
WHERE Eno (m) (
SELECT Eno
FROM (n)
WHERE (o)
AND Cname=‘中國(guó)銀行北京分行’
);