企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。
职工(职工号,姓名,年龄,月薪,部门号,电话,地址)
部门(部门号,部门名,电话,负责人代码,任职时间)
请将下面的SQL语句空缺部分补充完整。
CREATE TABLE部门(部门号CHAR(4)PRIMARY KEY,部门名CHAR(20),
电话CHAR(13),负责人代码CHAR(5),任职时间DATE,
FOREIGN KEY();
查询比软件部所有职工月薪都要少的职工姓名及月薪的SQL语句如下:
SELECT 姓名,月薪FROM 职工
WHERE月薪<(SELECT()FROM职工
WHERE部门号=();
WHERE部门号=()
A.职工.部门号AND部门名=’软件部’
B.职工.部门号AND部门.部门名=’软件部’
C.部门.部门号AND部门名=’软件部’
D.(SELECT部门号FROM部门WHERE部门名=’软件部’)
参考答案:D
解析:
[分析]:
本题考查的是应试者对SQL语言的掌握程度。
试题(37)考查的是关系的外键,对于部门关系中的部门负责人也是一个职工,因此,负责人代码是一个外键,为了保证数据的正确性,通过参照完整性加以约束。SQL语言中是通过使用保留字FOREIGN KEY定义外键,REFERENCES指明外码对应于哪个表的主码。参照完整性定义格式如下。
FOREIGN KEY(属性名)REFERENCES表名(属性名)
按照以上所述,将第一空空缺部分补充完整如下
CREATE TABLE部门(部门号CHAR(4) PRIMARY KEY,部门名CHAR(20),
电话CHAR(13),负责人代码CHAR(5),任职时间DATE,
FOREIGN KEY (负责人代码)REFERENCES职工(职工号));
查询比软件部所有职工月薪都要少的职工姓名及月薪的SQL语句的空缺部分补充如下。
SELECT 姓名,月薪FROM 职工
WHERE月薪<(SELECT MIN(月薪)FROM职工
WHERE部门号=
(SELECT部门号FROM部门WHERE部门名=’软件部’));