首页
登录
从业资格
某大型集团公司的数据库的部分关系模式如下: 员工表:EMP(Eno,Ename
某大型集团公司的数据库的部分关系模式如下: 员工表:EMP(Eno,Ename
练习题库
2022-08-02
73
问题
某大型集团公司的数据库的部分关系模式如下:员工表:EMP(Eno,Ename,Age,Sex,Title),各属性分别表示员工工号、姓名、年龄、性别和职称级别,其中性别取值为“男”“女”;公司表:COMPANY(Cno,Cname,City),各属性分别表示公司编号、名称和所在城市;工作表:WORKS(Eno,Cno,Salary),各属性分别表示职工工号、工作的公司编号和工资。有关关系模式的属性及相关说明如下:(1)允许一个员工在多家公司工作,使用身份证号作为工号值。(2)工资不能低于1500元。根据以上描述,回答下列问题:【问题1】(4分)请将下面创建工作关系的SQL语句的空缺部分补充完整,要求指定关系的主码、外码,以及工资不能低于1500元的约束。CREATE TABLE WORKS( Eno CHAR(10) (a) , Cno CHAR(4) (b) , Salary int (c) , PRIMARY KEY (d) , ); 【问题2】(6分)(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 Salary_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【问题3】(5分)请将下面SQL语句的空缺部分补充完整。(1)查询员工最多的公司编号和公司名称。 SELECT COMPANY.Cno,Cname FROM COMPANY,WORKS WHERE COMPANY.Cno= WORKS.Cno GROUP BY (k) HAVING (l) ( SELECT COUNT(*) FROM WORKS GROUP BY Cno );(2)查询所有不在“中国银行北京分行”工作的员工工号和姓名。 SELECT Eno,Ename FROM EMP WHERE Eno (m) ( SELECT Eno FROM (n) WHERE (o) AND Cname=‘中国银行北京分行’ );
选项
答案
解析
本题考查 SQL 语句的应用。
此类题目要求考生掌握 SQL 语句的基本语法和结构,认真阅读题目给出的关系模式,针对题目的要求具体分析并解答。本试题已经给出了 3 个关系模式,需要分析每个实体的属性特征及实体之间的联系,补充完整 SQL 语句。
【问题1】
由题目说明可知, Eno 和 Cno 两个属性组合是 WORKS 关系表的主键,所以在 PRIMARY KEY 后填的应该是 (Eno,Cno) 组合; Eno 和 Cno 分别作为外键引用到 EMP 和 COMPANY 关系表的主键,因此需要用 REFERENCES 对这两个属性进行外键约束:
由"工资不能低于 1500 元"的要求,可知需要限制账户余额属性值的范围,通过CHECK约束来实现。从上述分析可知,完整的SQL 语句如下:
CREATE TABLE WORKS (
Eno CHAR (10) REFERENCES EMP(Eno) ,
Cno CHAR(4) REFERENCES COMPANY(Cno) ,
Salary int CHECK(Salary >=1500),
PRIMARY KEY (Eno,Cno) ,
);
【问题 2 】
(1)创建视图需要通过 CREATE VIEW 语句来实现,由题目可知视图的属性有 (Eno, Ename,Cno,Cname,Salary); 通过公共属性列 Eno 和 Cno 对使用的三个基本表进行连接: 由于只创建女员工的视图,所以还要在 WHERE 后加入 "Sex='女'"的条件。从上分析可 见,完整的 SQL 语句如下:
CREATE VIEW FemaleEMP(Eno ,Ename ,Cno ,Cname ,Sa1ary)
AS
SELECT EMP.Eno ,Ename ,COMPANY.Cno ,Cname,Sa1ary
FROM EMP ,COMPANY ,WORKS
WHERE EMP.Eno = WORKS.Eno AND COMPANY.Cno = WORKS.Cno AND Sex=‘女’;
(2)创建触发器可通过 CREATE TRIGGER 语句实现,要求考生掌握触发器的基本 语法结构。按照问题要求,在工资关系中更新职工职称级别时触发器应自动执行,故需要创建基于四DATE 类型的触发器,其触发条件是更新职工职称级别:最后添加表连接条件。完整的触发器实现的方案如下:
CREATE TRIGGER Salary_TRG AFTER UPDATE OF Title ON EMP
REFERENCING new row AS nrow
FOR EACH ROW
BEGIN
UPDATE WORKS
SET Salary = Salary value(nrow.Eno)
WHERE WORKS. Eno= nrow. Eno;
END
【问题 3】
SQL 查询通过 SELECT 语句实现。
(1)根据问题要求,可通过子查询实现"查询员工最多的公司编号和公司名称"的查询:对COUNT 函数计算的结果应通过 HAVING 条件语句进行约束:通过 Cno 和 Cname的组合来进行分组查询。完整的 SQL 语句如下:
SELECT COMPANY.Cno , Cname FROM COMPANY ,WORKS
WHERE COMPANY.Cno = WORKS. Cno
GROUP BY COMPANY.Cno ,Cname
HAVING COUNT(*) >= ALL (SELECT COUNT(*)
FROM WORKS
GROUP BY Cno
);
(2)根据问题要求,需要使用嵌套查询。先将 WORKS 和 COMPANY 表进行连接, 查找出所有在"中国银行北京分行"工作的员工:然后在雇员表中使用 "NOTIN" 或者 "<>ANY" 查询不在前述结果里面的员工即可。完整的 SQL 语句如下:
SELECT Eno ,Ename FROM EMP
WHERE Eno NOT IN 或 <>ANY (
SELECT Eno
FROM WORKS ,COMPANY
WHERE WORKS.Cno = COMPANY. Cno
AND Cname =‘中国银行北京分行'
);
转载请注明原文地址:https://tihaiku.com/congyezige/2419929.html
本试题收录于:
中级 数据库系统工程师题库软件水平考试初中高级分类
中级 数据库系统工程师
软件水平考试初中高级
相关试题推荐
设有一个关系emp-sales(部门号,部门名,商品编号,销售数),查询各部门至
设有一个关系emp-sales(部门号,部门名,商品编号,销售数),查询各部门至
设有一个关系emp-sales(部门号,部门名,商品编号,销售数),查询各部门至
要在HTML页面中设计如下所示的表单,应将下拉框type属性设置为()
(请作答此空)是指CPU一次可以处理的二进制的位数,它直接关系到计算机的计算精度
某网络拓扑结构如下: 在路由器R2上采用showiproute命令得到如下
某网络拓扑结构如下: 在路由器R2上采用showiprout命令得到如
某管理系统采用ASP+SQLServer开发,数据库名db,打开该网站主页,如
管理员在网络中部署了一台DHCP服务器之后,发现部分主机获取到非该DHCP服务器
SNMP管理模型由4部分组成,它们是管理站、()、网络管理协议和管理信息库。
随机试题
Therearesomestepsyoucantakeyourselftoavoidcatchingacold.Contrar
TheSupremeCourt’srecentdecisionallowingregionalinterstatebankshasd
设立对照组的目的是A.排除与研究无关的干扰因素的影响 B.人为施加干预措施
TCP协议使用(此空作答)次握手过程建立连接,这种方法可以防止()。A.一
X线平片判断心脏增大的方法时,心脏横径是:()A.左、右心缘至体中线的最
( )是根据基金招募说明书中投资目标和投资策略来确定基金的投资风格。A.事前分
具有皮质激素样作用的药物是A.鹿茸 B.党参 C.甘草 D.当归
固定资产建造项目投资的现金流量不包括的内容有:A、固定资产购入和建造成本 B、
患者男59岁,约有10年高血压病史,经强心、利尿治疗好转,但近日病情加重,出现心
下列进度计划中,属于建设单位计划系统的是()。A.设计准备工作进度计划
最新回复
(
0
)