SQL语句的优化思路与技巧分享试题及答案
姓名:____________________
一、单项选择题(每题2分,共10题)
1.以下哪个SQL语句在查询优化中是不推荐的?
A.使用SELECT*FROM表名;
B.使用索引列进行查询;
C.使用LIKE%abc%进行模糊查询;
D.使用JOIN连接两个表。
2.在以下哪个情况下,应该使用索引?
A.查询返回大量数据;
B.查询返回少量数据;
C.查询返回数据包含重复值;
D.查询返回数据不包含重复值。
3.以下哪个SQL语句中,使用了子查询?
A.SELECT*FROM表名WHERE列名IN(SELECT列名FROM表名);
B.SELECT*FROM表名WHERE列名=(SELECT列名FROM表名);
C.SELECT*FROM表名,表名2WHERE表名.列名=表名2.列名;
D.SELECT*FROM表名,表名2WHERE表名.列名IN(SELECT列名FROM表名2);
4.以下哪个SQL语句中,使用了临时表?
A.SELECT*FROM表名,表名2WHERE表名.列名=表名2.列名;
B.SELECT*FROM(SELECT*FROM表名)AStemp;
C.SELECT*FROM表名,表名2WHERE表名.列名=表名2.列名AND表名.列名IN(SELECT列名FROM表名2);
D.SELECT*FROM表名,表名2WHERE表名.列名=表名2.列名OR表名.列名IN(SELECT列名FROM表名2);
5.在以下哪个情况下,应该使用UNIONALL而不是UNION?
A.查询结果包含重复值;
B.查询结果不包含重复值;
C.查询结果需要去重;
D.查询结果需要合并两个查询。
6.以下哪个SQL语句中,使用了JOIN连接两个表?
A.SELECT*FROM表名,表名2WHERE表名.列名=表名2.列名;
B.SELECT*FROM表名,表名2WHERE表名.列名=(SELECT列名FROM表名2);
C.SELECT*FROM表名,表名2WHERE表名.列名IN(SELECT列名FROM表名2);
D.SELECT*FROM表名,表名2WHERE表名.列名=(SELECT列名FROM表名2)OR表名.列名=(SELECT列名FROM表名2);
7.在以下哪个情况下,应该使用GROUPBY?
A.查询结果需要合并多个记录;
B.查询结果需要去重;
C.查询结果需要按照某个字段进行分组;
D.查询结果需要使用JOIN连接两个表。
8.以下哪个SQL语句中,使用了子查询?
A.SELECT*FROM表名WHERE列名=(SELECT列名FROM表名);
B.SELECT*FROM表名WHERE列名IN(SELECT列名FROM表名);
C.SELECT*FROM表名,表名2WHERE表名.列名=表名2.列名;
D.SELECT*FROM表名,表名2WHERE表名.列名=(SELECT列名FROM表名2);
9.在以下哪个情况下,应该使用索引?
A.查询返回大量数据;
B.查询返回少量数据;
C.查询返回数据包含重复值;
D.查询返回数据不包含重复值。
10.以下哪个SQL语句中,使用了JOIN连接两个表?
A.SELECT*FROM表名,表名2WHERE表名.列名=表名2.列名;
B.SELECT*FROM表名,表名2WHERE表名.列名=(SELECT列名FROM表名2);
C.SELECT*FROM表名,表名2WHERE表名.列名IN(SELECT列名FROM表名2);
D.SELECT*FROM表名,表名2WHERE表名.列名=(SELECT列名FROM表名2)OR表名.列名=(SELECT列名FROM表名2);
二、填空题(每空2分,共10空)
1.在SQL查询中,使用______可以优化查询速度。
2.在SQL查询中,使用______可以提高查询的效率。
3.在SQL查询中,使用______可以避免全表扫描。
4.在SQL查询中,使用______可以避免使用LIKE%abc%进行模糊查询。
5.在SQL