SQL基础考核试题及详细答案_第1页
SQL基础考核试题及详细答案_第2页
SQL基础考核试题及详细答案_第3页
SQL基础考核试题及详细答案_第4页
SQL基础考核试题及详细答案_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL基础考核试题及详细答案考试说明:满分100分,考试时长90分钟,题型包含选择题、填空题、简答题、实操编程题,覆盖SQL基础语法、查询、聚合、联表、子查询、数据增删改核心知识点,适配入门及职场基础考核。预备测试表结构(所有题目基于以下两张表)1.员工表emp(员工信息)字段:emp_id(员工编号,主键)、emp_name(员工姓名)、gender(性别)、dept_id(部门编号)、salary(薪资)、hire_date(入职日期)2.部门表dept(部门信息)字段:dept_id(部门编号,主键)、dept_name(部门名称)、address(部门地址)一、单项选择题(共10题,每题3分,共30分)1.在SQL中,用于从数据表中查询数据的核心关键字是()A.INSERTB.SELECTC.UPDATED.DELETE2.想要去除查询结果中的重复数据,需要使用的关键字是()A.TOPB.DISTINCTC.LIMITD.UNIQUE3.以下关于WHERE和HAVING的说法正确的是()A.WHERE可以过滤分组后的数据B.HAVING可以单独使用,无需分组C.WHERE在分组前过滤数据,HAVING在分组后过滤数据D.两者功能完全一致,可随意替换4.模糊查询中,匹配任意长度任意字符的通配符是()A._B.%C.*D.?5.对查询结果进行降序排序的关键字是()A.ASCB.DESCC.ORDERD.SORT6.以下不属于聚合函数的是()A.SUM()B.COUNT()C.IF()D.AVG()7.内连接查询的关键字是()A.LEFTJOINB.RIGHTJOINC.INNERJOIND.FULLJOIN8.想要查询薪资在5000-10000之间的员工数据,正确的条件写法是()A.salary>5000ANDsalary<10000B.salaryBETWEEN5000AND10000C.salaryIN(5000,10000)D.salary>=5000ORsalary<=100009.SQL中用于分组统计的关键字是()A.GROUPBYB.ORDERBYC.SORTBYD.DISTINCT10.以下语句中,能够实现新增一条数据的是()A.ALTERB.CREATEC.INSERTD.ADD二、填空题(共5题,每题4分,共20分)1.SQL中,________关键字用于限制查询结果的返回行数。2.统计数据表中记录总条数的聚合函数是________。3.左连接查询会保留________表的所有数据,匹配右表对应数据。4.修改数据表中已有数据的SQL关键字是________。5.子查询中,________关键字用于判断子查询结果中是否存在数据。三、简答题(共3题,每题5分,共15分)1.简述左连接、右连接、内连接的核心区别。2.说明DELETE和TRUNCATE删除数据的主要差异。3.GROUPBY分组查询中,SELECT后的字段有什么使用规则?四、实操编程题(共5题,每题7分,共35分)基于前文emp员工表、dept部门表,编写对应SQL语句:1.查询所有员工的姓名、薪资、入职日期,按薪资从高到低排序。2.查询部门编号为10、20的所有员工信息,去除重复数据。3.统计每个部门的员工人数、平均薪资、最高薪资、最低薪资。4.通过联表查询,获取所有员工的姓名、薪资、所属部门名称。5.查询平均薪资高于8000的部门编号和部门平均薪资。参考答案及详细解析一、单项选择题答案及解析1.B解析:SELECT为查询核心关键字,INSERT新增、UPDATE修改、DELETE删除。2.B解析:DISTINCT用于去重,TOP/LIMIT用于限制行数,无UNIQUE查询关键字。3.C解析:WHERE分组前过滤原始数据,不支持聚合函数;HAVING分组后过滤分组结果,支持聚合函数,必须配合GROUPBY使用。4.B解析:%匹配任意长度字符,_匹配单个任意字符。5.B解析:ASC升序(默认),DESC降序。6.C解析:SUM求和、COUNT计数、AVG求平均,均为聚合函数;IF为条件判断函数。7.C解析:INNERJOIN为内连接,LEFTJOIN左连接,RIGHTJOIN右连接,FULLJOIN全连接。8.B解析:BETWEEN最小值AND最大值包含边界值,精准匹配5000-10000区间;A选项不包含边界,D语法逻辑错误。9.A解析:GROUPBY分组,ORDERBY排序。10.C解析:INSERT用于新增数据,CREATE创建表/库,ALTER修改表结构。二、填空题答案及解析1.LIMIT解析:LIMITn限制返回n条数据,常用于分页、取前N条数据。2.COUNT()解析:COUNT(*)统计总记录数,COUNT(字段)统计字段非空记录数。3.左解析:左连接以左表为基准,保留左表全部数据,右表无匹配数据显示NULL。4.UPDATE解析:UPDATE表名SET字段=值WHERE条件,用于更新表中已有数据。5.EXISTS解析:EXISTS判断子查询是否有返回结果,有则为真,无则为假。三、简答题详细答案1.左连接、右连接、内连接核心区别(1)内连接(INNERJOIN):只返回两张表中匹配条件一致的数据,无匹配的数据不展示;(2)左连接(LEFTJOIN):以左表为基准,展示左表所有数据,右表匹配到数据则展示,未匹配到则显示空值;(3)右连接(RIGHTJOIN):以右表为基准,展示右表所有数据,左表匹配到数据则展示,未匹配到则显示空值。2.DELETE和TRUNCATE的主要差异(1)删除范围:DELETE可带WHERE条件删除指定数据,不带条件删除全表数据;TRUNCATE直接清空整张表所有数据,无法条件删除;(2)日志记录:DELETE属于DML操作,会记录日志,支持事务回滚;TRUNCATE属于DDL操作,不记录详细日志,无法回滚;(3)自增主键:DELETE删除数据后,自增主键会延续原有数值;TRUNCATE清空表后,自增主键重置为初始值;(4)执行效率:TRUNCATE清空数据效率远高于DELETE。3.GROUPBY分组查询的SELECT字段规则SELECT后查询的字段,只能是分组字段(GROUPBY后的字段)或聚合函数字段。非分组字段、非聚合字段禁止直接查询,因为分组后每组对应多条原始数据,普通字段无法确定展示哪一条数据,会导致语法报错。四、实操编程题标准答案(可直接执行)1.查询所有员工的姓名、薪资、入职日期,按薪资从高到低排序sql

SELECTemp_name,salary,hire_date

FROMemp

ORDERBYsalaryDESC;2.查询部门编号为10、20的所有员工信息,去除重复数据sql

SELECTDISTINCT*

FROMemp

WHEREdept_idIN(10,20);3.统计每个部门的员工人数、平均薪资、最高薪资、最低薪资sql

SELECT

dept_id,

COUNT(emp_id)AS员工人数,

AVG(salary)AS平均薪资,

MAX(salary)AS最高薪资,

MIN(salary)AS最低薪资

FROMemp

GROUPBYdept_id;4.联表查询员工姓名、薪资、所属部门名称sql

SELECTe.emp_name,e.salary,d.dept_name

FROMempe

INNERJOINdeptdONe.dept_id=d.dept_id;备注:可使用左连接LEFTJOIN,可查询无对应部门的员工数据,根据业务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论