数据库笔试题解析:连接、UNION与查询优化

版权申诉
0 下载量 71 浏览量 更新于2024-07-07 收藏 40KB DOCX 举报
"数据库笔试题库,包含关于多表查询、UNION操作、SQL聚合函数、索引应用、条件查询以及数据库启动步骤等知识点" 在这些数据库笔试题中,涉及了多个关键的数据库管理和SQL语言概念: 1. 笛卡尔积:在执行SQL查询时,如果没有明确的连接条件,多表查询会产生笛卡尔积,即每张表的每一行与另一张表的所有行组合。例如,T1表有2行,T2表有3行,不指定连接条件的联接会产生6行(2 * 3 = 6)的记录。 2. UNION操作:UNION用于合并两个或更多SELECT语句的结果集,它会去除重复的行。如果T1和T2各有5条不同的数据,T1有2条数据也在T2中,使用UNION将返回8行(5条T1中独有的数据 + 3条T2中独有的数据)。 3. SQL聚合函数SUM:在问题中,对ID和Score求和,正确的格式应是`SELECT ID, SUM(Score) FROM ...`。注意,SUM函数会计算指定列的总和,而不会按行显示原始数据。 4. 索引应用:B选项指出,LIKE通配符在"XXX%"情况下可以利用索引,而在"%xxx%"情况下则不能。这是因为前缀匹配("XXX%")可以使用索引来加速查询,但后缀或通配符匹配("%xxx")通常无法有效利用索引。 5. 条件查询:在WHERE子句中,用OR连接多个条件时,如果需要分别处理每个条件,应使用括号来明确逻辑分组。示例中的查询相当于 `(cust_id=180 OR cust_id=560) OR land_id>750`,可以分解为独立的查询并使用UNION连接。 6. 查询空值:在Staff表中,通过`WHERE Email is null`选择Email为空的员工,而`WHERE Email is not null`则是选择Email非空的员工。 7. Oracle数据库启动步骤:正确的顺序是3(启动实例),1(挂载数据库),2(打开数据库)。因此,正确答案是A。 8. 数据导入:将T1表的所有数据导入到T2表,应使用INSERT INTO SELECT语句,但给出的选项中没有完全正确的表达。正确格式应该是 `INSERT INTO T2 (col1, col2, col3) SELECT col1, col2, col3 FROM T1`。 这些题目覆盖了数据库操作的基础和进阶知识,对于理解SQL语言和数据库管理具有重要意义。学习者可以通过解答这些题目来巩固他们的理论知识和实践经验。