2026年50 sql笔试题及答案_第1页
2026年50 sql笔试题及答案_第2页
2026年50 sql笔试题及答案_第3页
2026年50 sql笔试题及答案_第4页
2026年50 sql笔试题及答案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

2026年50sql笔试题及答案

一、单项选择题(总共10题,每题2分)1.以下哪个SQL语句用于从表中删除所有数据且不记录操作日志?A.DELETEB.TRUNCATEC.UPDATED.INSERT2.聚合函数COUNT()与COUNT(列名)的核心区别是?A.COUNT()统计所有行(含NULL),COUNT(列名)排除NULL值行B.COUNT()排除NULL值行,COUNT(列名)统计所有行(含NULL)C.两者统计结果完全相同D.COUNT()仅统计数值型列的非NULL值3.以下哪个关键字用于定义外键约束?A.PRIMARYKEYB.FOREIGNKEYC.UNIQUED.NOTNULL4.多表连接中,仅返回两个表匹配行的连接类型是?A.INNERJOINB.LEFTJOINC.RIGHTJOIND.FULLJOIN5.子查询中,用于判断“是否存在满足条件的记录”的关键字是?A.INB.EXISTSC.ANYD.ALL6.事务中,用于确认所有修改操作永久生效的语句是?A.COMMITB.ROLLBACKC.BEGINTRANSACTIOND.SAVEPOINT7.MySQL中,用于获取当前日期和时间的函数是?A.CURDATE()B.CURTIME()C.NOW()D.DATE()8.数据库索引的主要作用是?A.提高数据插入/更新速度B.提高数据查询速度C.减少磁盘存储空间D.确保数据完整性9.以下关于视图的描述,正确的是?A.视图是物理存储的数据集B.视图仅支持查询操作,不支持修改C.视图可以基于多个表或其他视图创建D.视图删除后,源表数据会被删除10.以下哪个语句用于修改表的结构(如添加列、修改列类型)?A.ALTERTABLEB.CREATETABLEC.DROPTABLED.UPDATETABLE二、填空题(总共10题,每题2分)11.SQL中,从表中查询所有列的关键字是______。12.聚合函数中,用于计算指定列平均值的是______。13.约束中,确保列值唯一且非空的关键字是______。14.左连接的完整关键字是______JOIN。15.当子查询返回多行结果时,不能使用的比较运算符是______(如=、IN等)。16.事务中,用于撤销所有未提交修改的语句是______。17.MySQL中,用于拼接两个字符串的函数是______。18.定义唯一索引的关键字是______INDEX。19.创建视图的SQL语句是______VIEW。20.用于删除整个表(含结构和数据)的语句是______TABLE。三、判断题(总共10题,每题2分)21.DELETE语句删除数据后,表的结构会被删除。()22.COUNT(列名)会统计包含NULL值的行。()23.外键约束必须引用另一个表的主键或唯一键。()24.INNERJOIN与JOIN在SQL中是完全等价的。()25.当子查询返回大量数据时,EXISTS子查询比IN子查询效率更高。()26.COMMIT语句只能在事务内部执行。()27.CURDATE()函数返回当前的日期和时间。()28.索引越多,数据库的查询性能一定越好。()29.视图可以基于多个表的连接查询创建。()30.UPDATE语句必须包含WHERE子句,否则会更新所有行。()四、简答题(总共4题,每题5分)31.请简述TRUNCATE、DELETE、DROP三者的核心区别。32.请解释GROUPBY和HAVING的作用,并说明它们与WHERE子句的区别。33.请说明事务的定义,并列举事务的ACID四大特性。34.请简述视图的作用,以及视图的主要优缺点。五、讨论题(总共4题,每题5分)35.现有员工表(emp)包含字段:emp_id(员工ID)、dept_id(部门ID)、salary(工资);部门表(dept)包含字段:dept_id(部门ID)、dept_name(部门名称)。请写出SQL语句:查询每个部门的名称及该部门的平均工资,且仅保留平均工资超过5000的部门。并解释各部分语法的作用。36.请说明LEFTJOIN和RIGHTJOIN的区别,并举例说明在什么场景下更适合使用LEFTJOIN。37.请阐述数据库索引的作用,并分析在哪些情况下应该创建索引,哪些情况下不应该创建索引。38.请对比子查询和连接查询的优缺点,并说明在实际开发中如何选择使用这两种方式。一、单项选择题答案及解析1.B解析:TRUNCATE是DDL语句,删除所有数据且不记录日志;DELETE是DML语句,记录日志;UPDATE是修改,INSERT是插入。2.A解析:COUNT()统计所有行(含NULL),COUNT(列名)仅统计列非NULL的行。3.B解析:FOREIGNKEY用于定义外键约束,引用其他表的主键/唯一键。4.A解析:INNERJOIN仅返回两表匹配的行;LEFT/RIGHTJOIN返回左/右表所有行及匹配行;FULLJOIN返回所有行。5.B解析:EXISTS用于判断子查询是否有结果,返回布尔值;IN用于判断是否在子查询结果集中。6.A解析:COMMIT确认事务修改生效;ROLLBACK撤销;BEGIN启动事务;SAVEPOINT设置保存点。7.C解析:NOW()返回当前日期时间;CURDATE()返回日期;CURTIME()返回时间;DATE()提取日期部分。8.B解析:索引通过快速定位数据提高查询速度,但会降低插入/更新速度。9.C解析:视图是虚拟表,不物理存储;支持部分修改(如单表视图);基于多表/视图创建;删除视图不影响源表。10.A解析:ALTERTABLE修改表结构;CREATE创建;DROP删除;UPDATE修改数据。二、填空题答案11.12.AVG()13.PRIMARYKEY14.LEFT15.=16.ROLLBACK17.CONCAT()18.UNIQUE19.CREATE20.DROP三、判断题答案及解析21.×解析:DELETE仅删除数据,表结构保留;DROP才会删除表结构。22.×解析:COUNT(列名)排除列值为NULL的行。23.√解析:外键必须引用目标表的主键或唯一键,确保引用完整性。24.√解析:SQL中INNERJOIN可简写为JOIN,功能完全相同。25.√解析:EXISTS仅判断是否存在,无需遍历子查询所有结果;IN需遍历,大数据量时效率低。26.√解析:COMMIT必须在事务内部(BEGIN后)执行,否则无意义。27.×解析:CURDATE()仅返回当前日期,无时间部分。28.×解析:索引过多会增加插入/更新/删除的开销,需平衡。29.√解析:视图可基于多表连接、子查询等创建,简化复杂查询。30.×解析:UPDATE语法上允许无WHERE子句(会更新所有行),但实际开发中需谨慎使用。四、简答题答案31.答:三者区别如下:-TRUNCATE:DDL语句,删除所有数据,不记录日志,速度快,表结构保留,无法回滚(部分数据库支持)。-DELETE:DML语句,可按条件删除数据,记录日志,速度慢,表结构保留,可回滚。-DROP:DDL语句,删除整个表(含结构和数据),不记录数据删除日志,无法恢复(需备份)。32.答:-GROUPBY:按指定列分组,将相同列值的行归为一组,配合聚合函数(如AVG、SUM)计算每组统计值。-HAVING:对分组后的结果进行过滤,仅保留满足条件的组(需配合GROUPBY使用)。-与WHERE区别:WHERE过滤原始行(分组前),HAVING过滤分组后的组;WHERE可使用普通列,HAVING需使用聚合函数或分组列。33.答:-事务定义:一组不可分割的数据库操作序列,要么全部执行成功,要么全部失败回滚,确保数据一致性。-ACID特性:1.原子性(Atomicity):事务操作要么全做,要么全不做。2.一致性(Consistency):事务执行前后数据满足完整性约束。3.隔离性(Isolation):多个事务并发执行时,互不干扰。4.持久性(Durability):事务提交后,修改永久生效,不受系统故障影响。34.答:-视图作用:简化复杂查询(如多表连接)、隐藏敏感数据(如员工工资)、提供数据抽象(用户无需关心表结构)。-优点:简化操作、数据安全、逻辑独立(源表结构变化不影响视图)。-缺点:部分数据库视图不支持修改(如复杂视图)、查询性能可能低于直接查询表(需计算)。五、讨论题答案35.答:SQL语句:SELECTd.dept_name,AVG(e.salary)ASavg_salaryFROMdeptdLEFTJOINempeONd.dept_id=e.dept_idGROUPBYd.dept_id,d.dept_nameHAVINGAVG(e.salary)>5000;解析:-SELECT:指定查询部门名称和平均工资(别名avg_salary)。-FROM:主表为部门表dept(别名d)。-LEFTJOIN:连接员工表emp(别名e),确保部门表所有行都被保留(即使无员工)。-ON:连接条件为部门ID相等。-GROUPBY:按部门ID和名称分组(需包含非聚合列)。-HAVING:过滤平均工资超过5000的部门(分组后过滤)。36.答:-区别:1.LEFTJOIN:返回左表(主表)的所有行,右表匹配行;右表无匹配则返回NULL。2.RIGHTJOIN:返回右表的所有行,左表匹配行;左表无匹配则返回NULL。-场景举例:查询所有部门及部门下的员工(包括无员工的部门),此时用LEFTJOIN(左表为部门表,右表为员工表)更合适,可确保所有部门都被列出。37.答:-索引作用:通过B树等结构快速定位数据,大幅提高查询速度(尤其是大表)。-应创建索引的情况:1.经常作为查询条件的列(如WHERE子句中的列)。2.经常作为连接条件的列(如JOINON中的列)。3.经常排序/分组的列(如ORDERBY/GROUPBY中的列)。-不应创建索引的情况:1.数据量极小的表(索引开销大于收益)。2.频繁插入/更新/删除的列(索引会增加维护开销)。3.列值重复度极高的列(如性别列,索引效果差)。38.答:-子查询优缺点:

温馨提示

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

评论

0/150

提交评论