还剩4页未读,继续阅读
文本内容:
德勤数据库面试题和答案
一、单选题(基础概念)(本题型共15题,每题1分,共15分)
1.以下哪项是关系型数据库管理系统的代表?()A.MongoDB B.MySQL C.Redis D.Neo4j
2.在数据库设计中,主键(PrimaryKey)的主要作用是?()A.允许记录重复B.唯一标识一条记录C.提高表的查询速度D.自动为记录编号
3.外键(Foreign Key)的作用是?()A.唯一标识一个表的记录B.与另一个表的主键建立关联关系C.提高查询效率D.限制表中数据的输入格式
4.数据库系统中,DBMS指的是?()A.数据库管理员B.数据库系统C.数据库管理系统D.数据库应用程序
5.以下哪种不属于数据库的主要功能模块?()A.数据定义B.数据操作C.数据备份D.数据查询
6.关系模型中,一个“关系”通常对应数据库中的什么?()A.记录B.表C.字段D.索引
7.在SQL语言中,用于查询数据的语句是?()A.INSERT B.DELETE C.SELECT D.UPDATE
8.事务的ACID特性中,“原子性”(Atomicity)指的是?()A.事务中的所有操作要么全部完成,要么全部不执行B.事务执行前后,数据库状态保持一致C.多个事务并发执行时互不干扰D.事务完成后对数据的修改永久有效
9.索引的主要作用是?()A.增加数据存储量B.加快数据查询速度C.自动为数据编号D.保证数据唯一性
10.以下哪种数据完整性约束规定了字段必须有值?()A.主键约束B.外键约束C.非空约束D.唯一约束
11.ER图中,“矩形框”通常代表什么?()A.属性B.实体C.关系D.联系
12.SQL语句中,“GROUP BY”子句用于什么场景?()A.筛选符合条件的记录B.对查询结果进行排序C.将结果按指定字段分组D.限制查询结果的第1页共6页数量
13.在数据库中,“视图”(View)的本质是?()A.存储实际数据的表B.一条查询语句的结果集C.数据库的备份文件D.索引的另一种名称
14.以下哪种连接方式在SQL中不会筛选掉左表或右表中不匹配的记录?()A.INNER JOINB.LEFT JOINC.RIGHTJOIN D.FULL JOIN
15.数据模型中的“网状模型”和“层次模型”主要适用于什么类型的数据库?()A.关系型数据库B.非关系型数据库C.早期的层次和网状数据库D.分布式数据库
二、判断题(概念辨析)(本题型共15题,每题1分,共15分)
1.主键一定是唯一的,但不一定非空()
2.外键值必须在参照表的主键中存在()
3.事务的“隔离性”(Isolation)是指事务必须连续执行,不能被其他事务中断()
4.在SQL中,INSERT语句可以一次插入多条记录()
5.索引越多,数据库的查询速度一定越快()
6.关系型数据库中的每一行数据称为一个“元组”()
7.视图是虚拟表,不实际存储数据,查询视图时会从原表中实时获取数据()
8.非关系型数据库(NoSQL)无法处理复杂的关系型数据查询()
9.SQL中的“LIKE‘%关键词%’”用于模糊查询,匹配包含关键词的记录()
10.数据库中的“主键”和“唯一键”(Unique Key)功能完全相同()
11.事务回滚(Rollback)会撤销事务中已执行的所有操作,恢复到事务开始前的状态()
12.在ER图中,“菱形框”代表实体间的关系()
13.SQL中的“ORDERBY”子句默认按升序(ASC)排序()
14.数据库的“备份”操作是为了防止数据丢失,而“恢复”操作是为了将备份数据恢复到数据库中()
15.关系型数据库中,一个表可以有多个主键()
三、简答题(理论知识阐述)(本题型共15题,每题2分,共30分)
1.简述关系模型的三要素,并举例说明
2.说明数据库中“事第2页共6页务”(Transaction)的四个ACID特性及其具体含义
3.解释什么是“索引”,并说明索引的优缺点
4.数据库设计中为什么要遵循“范式”(Normalization)?请列举第一范式(1NF)的核心要求
5.SQL语言主要分为哪几类?请各举一个典型语句
6.什么是“ER图”?它在数据库设计中有什么作用?
7.简述主键(Primary Key)和外键(Foreign Key)的区别与联系
8.说明“内连接(INNERJOIN)”和“左连接(LEFT JOIN)”在SQL中的执行逻辑差异
9.数据库的“数据备份”通常有哪些方式?请至少列举2种
10.解释什么是“死锁”(Deadlock),并说明死锁产生的必要条件
11.SQL中的“聚合函数”(Aggregate Function)有哪些典型函数?请列举3个
12.数据库的“并发控制”主要解决什么问题?常用的并发控制技术有哪些?
13.什么是“视图”(View)?创建视图有哪些优势?
14.非关系型数据库(NoSQL)与关系型数据库(SQL)相比,有哪些主要特点?
15.简述“数据完整性”的概念,并列举3种常见的完整性约束类型
四、SQL基础操作题(写SQL语句)(本题型共15题,每题2分,共30分)
1.从名为“employees”的表中查询所有员工的姓名(name)和部门ID(dept_id),其中部门ID为
52.向“students”表中插入一条记录,学生ID(student_id)为2025001,姓名(name)为“李四”,年龄(age)为22,性别(gender)为“男”
3.将“products”表中ID为101的商品单价(price)下调10%
4.查询“orders”表中所有已支付(order_status为“已支付”)的订单,按下单时间(create_time)从新到旧排序
5.从“scores”表中删除所有成绩(score)为0的记录
6.查询“departments”表中部门名称(dept_name)包含“销售”二字的部门ID和名称(至少包含2第3页共6页个字段)
7.统计“students”表中每个性别的学生人数,结果按人数从多到少排序
8.查询“courses”表中课程学分(credit)大于3的课程名称和学分
9.计算“orders”表中所有订单的总金额(total_amount),并取整保留两位小数
10.从“employees”表中查询姓名以“张”开头的员工姓名和工资(salary)
11.向“scores”表中插入3条记录学生ID(s_id=101)、课程ID(c_id=201)、成绩(score=85);学生ID(s_id=101)、课程ID(c_id=202)、成绩(score=90);学生ID(s_id=102)、课程ID(c_id=201)、成绩(score=78)
12.查询“products”表中单价(price)在100到500元之间的商品名称和单价
13.从“orders”表中查询用户ID(user_id)为5的用户的所有订单数量和总消费金额
14.将“students”表中年龄(age)字段的值全部加1(假设年龄字段为整数)
15.查询“scores”表中至少有一门课程成绩大于90分的学生ID(s_id)和对应的最高分(score)
五、SQL进阶操作题(复杂查询)(本题型共15题,每题3分,共45分)
1.假设有表“employees”(字段e_id,e_name,dept_id,salary,hire_date)和“departments”(字段dept_id,dept_name),请查询每个部门的平均工资(保留两位小数)和部门名称,结果按平均工资从高到低排序
2.假设有表“students”(s_id,s_name,age,major)和“scores”(s_id,c_id,score),请查询所有计算机专业(major=“计算机科学”)且成绩大于85分的学生姓名和对应的课程ID(c_id)
3.假设有表“orders”(order_id,user_id,order_time,total_amount,status),请查询2025年10月1日至2025年10月31日期间,总消费金额超过1000元的用户ID(user_id)和总消费金额(保留两位小数),并按总消费金额降序排第4页共6页列
4.假设有表“courses”(c_id,c_name,teacher_id)和“teachers”(teacher_id,t_name,subject),请查询每个教师(t_name)教授的课程数量,其中教师姓名以“李”开头,且课程数量大于等于
35.假设有表“scores”(s_id,c_id,score),请查询每门课程(c_id)的最高分、最低分和平均分(保留一位小数),结果只保留平均分大于80分的课程
6.在“students”表中,查询年龄大于20岁且不是计算机专业(major≠“计算机科学”)的学生姓名和年龄,按年龄升序排列
7.假设有表“orders”(order_id,user_id,product_id,quantity,order_time)和“products”(product_id,p_name,p_price),请查询每个用户(user_id)购买总金额最高的商品名称(p_name)和对应的总金额(quantity*p_price,保留两位小数)
8.假设有表“scores”(s_id,c_id,score),请查询所有学生(s_id)的学号、姓名(假设s_id关联到“students”表的s_id和s_name)、以及每门课程的成绩,结果按s_id升序排列,同一学生的不同课程成绩按c_id升序排列
9.假设有表“employees”(e_id,e_name,dept_id,salary),请查询工资高于本部门平均工资的员工姓名(e_name)、部门ID(dept_id)和工资(salary),结果按部门ID分组后排序
10.假设有表“orders”(order_id,user_id,order_time,status),请查询每个月的订单数量(按月份分组),其中状态不是“已取消”,且月份在2025年1月至2025年12月之间,结果按月份升序排列
11.假设有表“students”(s_id,s_name,age)、“scores”(s_id,c_id,score)及“courses”(c_id,c_name),请查询所有课程(c_name)的名称、最高分学生姓名(s_name)和最高分成绩,结果按最高分降序排列(若最高分相同,第5页共6页取姓名首字母升序)
12.假设有表“A”(id,a,b)和表“B”(id,c,d),请查询两个表中id相同且ac的记录,返回id、a、c字段(使用JOIN方式)
13.假设有表“scores”(s_id,c_id,score)(s_id=学生ID,c_id=课程ID),请查询所有至少和两名学生(s_id不同)选修了同一门课程(c_id相同)的学生ID(s_id)和对应的课程ID(c_id),结果去重
14.假设有表“orders”(order_id,user_id,order_time,total_amount),请查询用户消费金额的“累计总和”(按时间顺序),即每个用户的每笔订单在其所有订单中的累计消费金额(例如用户1的第一笔订单累计100,第二笔累计100+200=300)(提示使用窗口函数SUMOVER PARTITIONBY user_id ORDERBY order_time)
15.假设有表“products”(p_id,p_name,p_price,stock),请查询库存(stock)大于等于100的商品中,单价(p_price)最低的3个商品名称(p_name)和单价(p_price),结果按单价升序排列六第6页共6页。
个人认证
优秀文档
获得点赞 0