某公司的部门(部门号,部门名,负责人,电话)、商品(商品号,商品名称,单价,库存量)和职工(职工号,姓名,住址)3个实体之间的关系如表1、表2和表3所示。假设每个部门有一位负责人和一部电话,但有若干名员工;每种商品只能由一个部门负责销售。
a.若部门名是唯一的,请将下述部门SQL语句的空缺部分补充完整。
CREATE TABLE部门(部门号CHAR(3) PRIMARY KEY,
部门名CHAR(10) (16) ,
负责人CHAR(4),
电话CHAR(20))
(17) );
b.查询各部门负责人的姓名及住址的SQL语句如下:
SELECT 部门名,姓名,住址 FROM部门,职工 (18) ;
(18)处填()。
A.WHERE职工号=负责人
B.WHERE职工号=’负责人’
C.WHERE姓名=负责人
D.WHERE姓名=’负责人’
参考答案:A
解析:
试题(16)~(18)
[分析]:
试题(16)正确的答案是B,因为试题要求部门名是唯一的,根据表1可以看出负责人来自职工且等于职工号属性;
试题(17)正确的答案是D,因为职工关系的主键是职工号,所以部门关系的外键负责人需要用FOREIGN KEY(负责人)REFERENCES职工(职工号)来约束。这样部门关系的SQL语句如下:
CREATE TABLE部门(部门号CHAR(3)PRIMARY KEY,
部门名CHAR(10)UNIQUE,
负责人CHAR(4),
电话 CHAR(20)
FOREIGN KEY(负责人)REFERENCES职工(职工号));
试题(18)正确的答案是A,将查询各部门负责人的姓名及住址的SQL语句的空缺部分补充完整如下:
SELZCT 部门名,姓名,住址
FROM部门,职工 WHERE职工号=负责人;