full join 为横向连接,保留两张表的全部信息。union all 为纵向连接,且不去除重复记录。
正确答案是:B: left join 和 C: full join
分析如下:
1. **inner join**:只返回两个表中匹配的记录。如果某表中有记录在另一个表中没有对应的记录,则该记录不会出现在结果集中。因此,inner join 不会保留被连接两表的全部信息。
2. **left join**:返回左表中的所有记录,即使右表中没有匹配的记录。如果右表中没有匹配的记录,则结果中包含左表的记录,并且右表的字段会显示为 NULL。因此,left join 能保留左表的全部信息,并且包含右表中匹配的记录。
3. **full join**:返回两个表中的所有记录,无论是否匹配。如果某表中的记录在另一个表中没有匹配的记录,则结果中包含该表的记录,并且另一个表的字段会显示为 NULL。因此,full join 能保留被连接两表的全部信息。
4. **union all**:用于合并两个查询的结果集,并且包括所有重复的记录。它不是连接操作,而是合并操作,因此不能直接用于保留被连接两表的全部信息。
综上所述,能保留被连接两表的全部信息的查询关键字是 left join 和 full join。