SQL联合查询的高级技巧试题及答案.docx
SQL联合查询的高级技巧试题及答案
姓名:____________________
一、单项选择题(每题2分,共10题)
1.在SQL中,以下哪个关键字用于将两个或多个表的数据合并在一起?
A.JOIN
B.UNION
C.INNER
D.OUTER
2.在执行联合查询时,以下哪种操作会返回所有表中的记录,即使某些列没有匹配项?
A.INNERJOIN
B.LEFTJOIN
C.RIGHTJOIN
D.FULLOUTERJOIN
3.以下哪个SQL语句可以实现将“students”表和“grades”表通过学生ID进行连接,并显示所有学生的姓名和对应的成绩?
A.SELECTstudents.name,grades.scoreFROMstudents,gradesWHEREstudents.id=grades.student_id
B.SELECTstudents.name,grades.scoreFROMstudentsJOINgradesONstudents.id=grades.student_id
C.SELECTstudents.name,grades.scoreFROMstudentsCROSSJOINgradesWHEREstudents.id=grades.student_id
D.SELECTstudents.name,grades.scoreFROMstudents,gradesWHEREstudents.idIN(grades.student_id)
4.在使用SQL的联合查询时,以下哪个关键字用于指定查询结果的排序?
A.ORDERBY
B.GROUPBY
C.HAVING
D.WHERE
5.在以下哪个SQL语句中,使用了子查询来获取“students”表中所有成绩高于平均分的学生的姓名?
A.SELECTnameFROMstudentsWHEREscore(SELECTAVG(score)FROMstudents)
B.SELECTnameFROMstudentsWHEREscore(SELECTAVG(score)FROMgrades)
C.SELECTnameFROMstudents,gradesWHEREstudents.scoregrades.AVG(score)
D.SELECTnameFROMstudentsWHEREscore(SELECTAVG(score)FROMstudents,grades)
6.在以下哪个SQL语句中,使用了联合查询来显示“students”表中所有学生的姓名和“departments”表中对应部门的名称?
A.SELECTstudents.name,departments.department_nameFROMstudents,departmentsWHEREstudents.department_id=departments.id
B.SELECTstudents.name,departments.department_nameFROMstudentsINNERJOINdepartmentsONstudents.department_id=departments.id
C.SELECTstudents.name,departments.department_nameFROMstudents,departmentsWHEREstudents.department_id=departments.idORstudents.department_idISNULL
D.SELECTstudents.name,departments.department_nameFROMstudentsCROSSJOINdepartmentsWHEREstudents.department_id=departments.id
7.以下哪个SQL语句使用了NOTEXISTS子查询来获取没有课程的学生姓名?
A.SELECTnameFROMstudentsWHERENOTEXISTS(SELECT*FROMcoursesWHEREcourses.student_id=students.id)
B.SELECTnameFROMstudentsWHEREEXISTS(SELECT*FROMcoursesWHEREcourse