问题 单项选择题

以下病人(PATIENT)和理疗师(PHYSICIAN)表的结构:

PATIENT
PATIENT_ID NUMBER NOT NULL, Primary Key
LAST_NAME VARCHAR2(30) NOT NULL
FIRST_NAME VARCHAR2(25) NOT NULL
DOB DATE  
INS_CODE NUMBER  

PHYSICIAN
PHYSICIAN_ID NUMBER NOT NULL, Primary Key
LAST_NAME VARCHAR2(30) NOT NULL
FIRST_NAME VARCHAR2(25) NOT NULL
LICENSE_NO NUMBER(7) NOT NULL
HIRE_DATE DATE  
要产生一个所有指派了一名理疗师的病人的报表,而且报表要包括病人的名字和理疗师的名字,请问应该使用以下的哪种类型的连接

A.相等连接
B.交叉连接(Cross Join)
C.自然连接
D.没法完成这一要求,因为两个表中没有相同的列

答案

参考答案:D

解析: 这一题是测试对表之间的连接概念的理解。根据外键和引用完整性的介绍,可知关系数据库工作的机制是控制冗余,控制冗余就是数据库中的表通过共享相同的键属性的介绍(列)把它们链接在了一起。仔细检查PATIENT和PHYSICIAN表中的每一列,可以发现在这两个表中没有能够产生控制冗余的相同列(common column),所以选项D是正确的。
这里需要指出的是PATIENT表中的last_name和first_name与PHYSICIAN表中的last_name和first_name并不相同,因为它们分别代表病人和理疗师的名字。

判断题
单项选择题