版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(2025年)SQL语句自考试题及参考答案一、单项选择题(每小题2分,共20分)1.以下哪类SQL语句用于定义数据库对象结构?A.DML(数据操作语言)B.DDL(数据定义语言)C.DCL(数据控制语言)D.TCL(事务控制语言)2.若要查询学生表中“年龄”大于20且“性别”为“女”的记录,正确的WHERE子句是?A.WHERE年龄>20OR性别='女'B.WHERE年龄>20AND性别=女C.WHERE年龄>20AND性别='女'D.WHERE年龄>20&性别='女'3.以下关于JOIN操作的描述,错误的是?A.INNERJOIN返回两表匹配的行B.LEFTJOIN返回左表所有行,右表不匹配时补NULLC.FULLOUTERJOIN在MySQL中可通过LEFTJOIN和RIGHTJOIN联合实现D.CROSSJOIN会提供两表行数的笛卡尔积,实际应用中无需限制条件4.子查询中使用“IN”关键字时,子查询的返回结果可以是?A.单行单列B.多行单列C.单行多列D.任意行列5.以下哪种索引类型无法提升查询性能?A.主键索引B.唯一索引C.全文索引(FULLTEXT)D.哈希索引(适用于等值查询)6.事务的“原子性”指的是?A.事务一旦提交,对数据库的修改是永久的B.事务执行过程中,未提交的变更对其他事务不可见C.事务包含的操作要么全部成功,要么全部失败D.多个事务并发执行时,结果与串行执行结果一致7.若要限制“用户表”中“邮箱”字段的唯一性,应使用?A.CHECK约束B.UNIQUE约束C.FOREIGNKEY约束D.DEFAULT约束8.窗口函数OVER()的作用是?A.对查询结果进行分组统计B.为每行数据定义一个计算窗口,不减少行数C.过滤分组后的结果D.对结果集进行排序但不影响行记录9.以下关于视图的描述,正确的是?A.视图可以直接存储数据B.视图的定义会占用物理存储空间C.对视图的修改一定会同步到基表D.视图可以简化复杂查询的重复使用10.执行“SELECTCOUNT()FROM订单表WHERE金额>1000GROUPBY用户ID”时,COUNT()统计的是?A.所有金额大于1000的订单总数B.每个用户金额大于1000的订单数量C.所有用户的订单数量(无论金额)D.每个用户的订单总金额大于1000的次数二、填空题(每空2分,共20分)1.创建表时定义字段的关键字是__________(如:CREATETABLE表名(字段1类型,...))。2.若要为“学生表”的“学号”字段添加主键约束,语法为:ALTERTABLE学生表ADDCONSTRAINTPK_学号__________(学号)。3.使用JOIN时未指定类型,默认是__________(填“INNERJOIN”或“LEFTJOIN”)。4.提交事务的SQL命令是__________。5.子查询按返回结果行数可分为单行子查询和__________子查询。6.索引的主要作用是__________(填“提高查询效率”或“减少存储空间”)。7.窗口函数中用于定义排序规则的关键字是__________(如:OVER(ORDERBY字段))。8.视图是一个虚拟表,其数据来源于__________(填“基表”或“其他视图”)。9.统计每个班级的学生人数,应使用__________函数(填“COUNT”或“SUM”)配合GROUPBY。10.查询当前系统时间的函数是__________(如MySQL中的NOW())。三、简答题(每小题5分,共30分)1.简述DML(数据操作语言)与DDL(数据定义语言)的核心区别。2.说明INNERJOIN与LEFTJOIN的执行结果差异,并举例说明适用场景。3.索引的优点和潜在缺点分别是什么?4.事务的ACID特性具体指什么?5.子查询在什么场景下比JOIN更适用?6.窗口函数与传统聚合函数(如SUM、AVG)的主要区别是什么?四、应用题(每小题6分,共30分)(以下题目基于以下表结构)学生表(Student):Sno(学号,主键),Sname(姓名),Sage(年龄),Ssex(性别)课程表(Course):Cno(课程号,主键),Cname(课程名),Ccredit(学分)成绩表(SC):Sno(学号,外键),Cno(课程号,外键),Score(成绩)1.查询所有年龄在18-22岁(含)之间的女生姓名和年龄,按年龄降序排列。2.统计每门课程的平均分(保留2位小数),结果包含课程名和平均分。3.查询至少选修了3门课程的学生学号及选修课程数量。4.找出“高等数学”课程中成绩高于该课程平均分的学生姓名和成绩。5.将“学生表”中所有年龄小于18岁的学生的年龄统一增加1岁。6.删除“成绩表”中成绩为0分且课程号为“C001”的记录。7.查询每个学生的总成绩(总分),并显示学号、姓名和总分(总分=各课程成绩之和)。8.为“成绩表”的Score字段创建普通索引,索引名为idx_score。9.使用窗口函数查询每个学生的成绩排名(按课程分组,成绩从高到低排名)。10.向“学生表”插入一条新记录:学号“S010”,姓名“张力”,年龄20,性别“男”(要求处理可能的主键冲突)。五、综合题(每小题10分,共20分)(以下题目基于某电商数据库,表结构如下)用户表(User):Uid(用户ID,主键),Uname(用户名),RegTime(注册时间)商品表(Goods):Gid(商品ID,主键),Gname(商品名),Price(单价),Stock(库存)订单表(Order):Oid(订单ID,主键),Uid(用户ID,外键),OrderTime(下单时间),Status(状态,0=未支付,1=已支付)订单详情表(OrderDetail):Oid(订单ID,外键),Gid(商品ID,外键),Quantity(购买数量)1.统计2024年1月期间,每个用户的订单总金额(已支付订单),结果包含用户名、总金额(总金额=Σ(单价×数量))。2.找出2023年注册的用户中,购买过至少2种不同商品且总消费金额超过5000元的用户ID和用户名。3.查询库存数量低于10件的商品信息,并按库存升序、单价降序排列。4.使用窗口函数计算每个商品的月销量排名(按2024年各月统计,销量=Σ(Quantity))。5.设计一个存储过程,用于清理超过30天未支付的订单(Status=0且OrderTime<当前时间-30天),并返回被删除的订单数量。参考答案一、单项选择题1.B2.C3.D4.B5.C6.C7.B8.B9.D10.B二、填空题1.CREATETABLE2.PRIMARYKEY3.INNERJOIN4.COMMIT5.多行6.提高查询效率7.ORDERBY8.基表9.COUNT10.NOW()(或SYSDATE()等,依数据库类型而定)三、简答题1.DML用于操作数据(如INSERT/UPDATE/DELETE/SELECT),DDL用于定义数据库对象(如CREATE/ALTER/DROP)。核心区别是DML处理数据内容,DDL处理结构定义。2.INNERJOIN仅返回两表匹配的行;LEFTJOIN返回左表所有行,右表无匹配时字段为NULL。例如,查询所有学生及其成绩(包括无成绩的学生)需用LEFTJOIN。3.优点:加速查询;缺点:增加存储开销、影响写操作性能(INSERT/UPDATE/DELETE需维护索引)。4.ACID指原子性(Atomicity,操作全或无)、一致性(Consistency,状态合法)、隔离性(Isolation,并发不干扰)、持久性(Durability,提交后永久保存)。5.子查询适用于逻辑上依赖外层查询结果(如“查询比平均年龄大的学生”)、或需要分层计算(如多级嵌套条件)的场景。6.聚合函数会将多行合并为一行(减少行数),窗口函数为每行计算但保留所有行(不减少行数)。四、应用题1.SELECTSname,SageFROMStudentWHERESageBETWEEN18AND22ANDSsex='女'ORDERBYSageDESC;2.SELECTC.Cname,ROUND(AVG(SC.Score),2)AS平均分FROMCourseCINNERJOINSCONC.Cno=SC.CnoGROUPBYC.Cno,C.Cname;3.SELECTSno,COUNT()AS课程数FROMSCGROUPBYSnoHAVINGCOUNT()>=3;4.SELECTS.Sname,SC.ScoreFROMStudentSINNERJOINSCONS.Sno=SC.SnoINNERJOINCourseCONSC.Cno=C.CnoWHEREC.Cname='高等数学'ANDSC.Score>(SELECTAVG(Score)FROMSCWHERECno=(SELECTCnoFROMCourseWHERECname='高等数学'));5.UPDATEStudentSETSage=Sage+1WHERESage<18;6.DELETEFROMSCWHEREScore=0ANDCno='C001';7.SELECTS.Sno,S.Sname,SUM(SC.Score)AS总分FROMStudentSLEFTJOINSCONS.Sno=SC.SnoGROUPBYS.Sno,S.Sname;8.CREATEINDEXidx_scoreONSC(Score);9.SELECTSno,Cno,Score,RANK()OVER(PARTITIONBYCnoORDERBYScoreDESC)AS排名FROMSC;10.INSERTIGNOREINTOStudent(Sno,Sname,Sage,Ssex)VALUES('S010','张力',20,'男');(或使用ONDUPLICATEKEYUPDATE,依数据库支持而定)五、综合题1.SELECTU.Uname,SUM(G.PriceOD.Quantity)AS总金额FROMUserUINNERJOINOrderOONU.Uid=O.UidINNERJOINOrderDetailODONO.Oid=OD.OidINNERJOINGoodsGONOD.Gid=G.GidWHEREO.Status=1ANDO.OrderTimeBETWEEN'2024-01-01'AND'2024-01-31'GROUPBYU.Uid,U.Uname;2.SELECTU.Uid,U.UnameFROMUserUINNERJOIN(SELECTO.Uid,COUNT(DISTINCTOD.Gid)AS商品种类,SUM(G.PriceOD.Quantity)AS总金额FROMOrderOINNERJOINOrderDetailODONO.Oid=OD.OidINNERJOINGoodsGONOD.Gid=G.GidWHEREO.Status=1GROUPBYO.UidHAVING商品种类>=2AND总金额>5000)TONU.Uid=T.UidWHEREYEAR(U.RegTime)=2023;3.SELECTG.FROMGoodsGWHEREG.Stock<10ORDERBYG.StockASC,G.PriceDESC;4.SELECTG.Gid,G.Gname,DATE_FORMAT(O.OrderTime,'%Y-%m')AS月份,SUM(OD.Quantity)AS月销量,RANK()OVER(PARTITIONBYDATE_FORMAT(O.OrderTime,'%Y-%m')ORDERBYSUM(OD.Quantity)DESC)AS销量排名FROMGoodsGLEFTJOINOrderDetailODONG.Gid=OD.GidLEFTJOINOrderOONOD.Oid=O.OidWHEREYEAR(O.OrderTime)=2024GROUPBYG.Gid,G.Gnam
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学生吃饭纪律奖惩制度
- 教练员竞赛输送奖惩制度
- 商场楼层主管奖惩制度
- 个人奖惩制度
- 死因检测工作奖惩制度
- 培训机构安全奖惩制度
- 质量记录管理奖惩制度
- 装修工程考勤奖惩制度
- 体检科管理办法奖惩制度
- 班组内部培训奖惩制度
- 临床预防呼吸机相关肺炎(VAP)的集束化管理策略
- 2026届新高考语文背诵篇目60篇(注音版)
- 2025陕西事业单位考试e类试题及答案
- 2025年甘肃省天水市甘谷县选聘大学生村文书55人考试参考试题及答案解析
- 岭美版(2024)美术一年级下册1.2校园的春天 课件
- 三聚磷酸钠讲解
- 学前教育实习动员课件
- 安置帮教普法培训
- 化工仪表检修与维护课件
- 2025年护理资格知识谵妄理论考试试题及答案
- 市场营销现代广告案例分析报告
评论
0/150
提交评论