【金三银四】分享数据库笔试题及答案~~
你是否在面试中遇到过关于数据库的笔试题?如何高效地准备这些题目,提升自己的竞争力?本文将为你整理一些经典的数据库笔试题及其答案,助你备战面试。
金三银四马上来了,测试年限较短难免会碰到笔试题,最近就收到一些求职小伙伴反馈过来的数据库笔试题,说不太会做。特意做了下摘录及答案整理,给大家做个分享。如果不想笔试受挫的宝子,一定要牢牢码住!并多多练习!
在求职季节,尤其是金三银四期间,许多测试人员面临数据库相关的笔试题目。掌握常见的数据库笔试题及其解答,对于提升面试通过率至关重要。
在实际面试中,数据库相关的笔试题目常常考察候选人的SQL能力和逻辑思维。通过对经典题目的练习,能够帮助我们更好地理解数据库的应用场景和解决方案。
一、已建立二张学生基本信息表,表的结构如下:
est表
test1表
1)用SQL语句找出是计算机系并籍贯是北京的学生的所有记录
2)用SQL语句把计算机系的学生的department改为信息学院
3)用SQL连接查询找出成绩大于等于75分的学生的no,name, grade,course字段的记录
参考答案:
1)
select * from test where department='计算机系' and place='北京';
2)
UPDATE test SET department='信息学院' WHERE department='计算机系';
3)
select distinct test.no,test.name,test1.grade,test1.course from test,test1 where test.no=test1.no and test1.grade>=75;
二、请按照如下题目要求编写 SQL
部门表 departments(dept_id, dept_name)
员工表 employees(emp_id,emp_name, sex, dept_id, jobs)
薪水表 salary (salary_id, emp_id, money)
问题1、 列出总人数大于 4 的部门编号和该部门人数
问题2、 列出开发部和测试部的职工号,姓名
问题3、 显示工资最高的前 3 名职工的职工号和姓名
问题4、 列出工资在 1000-2000 之间的所有职工姓名
参考答案:
1、
select dept_id, count() as '部门人数' from employees e group by dept_id having count()>4;
2、
select e.emp_id,e.emp_name from employees e inner join departments d on e.dept_id = d.dept_id where d.dept_name in ('开发部','测试部');
3、
select e.emp_id, e.emp_name,s.money from salary s inner join employees e on s.emp_id = e.emp_id order by s.money desc limit 3;
4、
select e.emp_name,s.money from salary s inner join employees e on s.emp_id = e.emp_id where s.money between 1000 and 2000;
三、根据下面Student、StudentScore表编写对应的数据库语句
1、查询平均成绩大于60的学生
2、用多表语句查询ID为1的学生的各科成绩
参考答案:
1、
select Student.* from Student, StudentScore where Student.ID = StudentScore.ID group by StudentScore.ID having avg(StudentScore.Score) > 60;
2、
select Student.ID, Student.name, StudentScore.C#, StudentScore.Score from Student,StudentScore where Student.ID = StudentScore.ID and Student.ID = 1;
四、表OrderItems如下,按要求完成sql编写
参考答案:
SELECT prod_id, quantity FROM OrderItems WHERE quantity = 100 or prod_id LIKE 'BNBG%' ORDER BY prod_id ASC;
五、SQL基础:student(学生表)、class(班级表)
参考答案:
1、
select class.name as c_Name,student.name,sex,score from student left join class on student.c_id = class.id where score = (select max(score) from student);
2、
SELECT c.NAME AS C_Name,COUNT(s.Id) AS Rs,AVG(s.Score) AS Score FROM student s JOIN class c ON s.c_Id=c.Id WHERE c.NAME IN ('一班','二班') GROUP BY c.NAME ORDER BY Score DESC;
六、下图表a的信息,写sql得出图2的信息
从结果可以看出来题目是: 分别查出每年每月的amount值;
SELECT year,SUM(IF(month='1', amount, 0)) as 'm1',SUM(IF(month='2', amount, 0)) as 'm2',SUM(IF(month='3', amount, 0)) as 'm3',SUM(IF(month='4', amount, 0)) as 'm4'FROM aGROUP BY year;
七、企业表、用户表、专属司机表
企业表 t_orgnization: 企业id:org_id、企业名称:org_name,注册时间:created_time
用户表 t_user: 用户id:user_id,登录账号:login_name,密码:pwd,真实姓名:real_name,所属企业id:org_id,注册时间:created_time
专属司机表 t_my_driver: 手机号:mobile_no,司机姓名:name,车牌号:car_percel_no,归属用户id:user_id
表之间的关系: 一个企业下可以注册多个用户,每个用户可以为自己注册多个专属司机
问题1: 查询所属企业id=86639,有真实姓名的用户信息,列出:登录账号,真实姓名,所属企业名称。
问题2: 查询拥有自己专属司机的用户所对应的企业信息,列出企业id,企业名称,注意去重。
参考答案:
1、
SELECT t_user.login_name,t_user.real_name,t_orgnization.org_name FROM t_user LEFT JOIN t_orgnization ON t_orgnization.org_id=t_user.org_id WHERE t_user.org_id=86639 AND t_user.real_name IS NOT NULL;
2、
SELECT DISTINCT t_orgnization.org_id,t_orgnization.org_NameFROM t_orgnizationLEFT JOIN t_user on t_user.org_id = t_orgnization.org_idLEFT JOIN t_my_driver on t_my_driver.user_id = t_user.user_idWHERE t_my_driver.user_id is not null;
八、以下为学生表、课程表、成绩表、教师表
Student(Sid,Sname,Sage,Ssex)学生表
Sid:学号
Sname:学生姓名
Sage:学生年龄
Ssex:学生性别
Course(Cid,Cname,Tid)课程表
Cid:课程编号
Cname:课程名称
Tid:教师编号
Score(Sid,Cid,score)成绩表
Sid:学号
Cid:课程编号
score:成绩
Teacher(Tid,Tname)教师表
Tid:教师编号:
Tname:教师名字
试题1: 查询平均成绩大于60分的同学的学号和平均成绩,成绩保留两位小数
试题2: 查询姓‘章’的老师的个数
试题3: 查询所有同学的学号、姓名、选课数、总成绩
试题4: 查询没有学过“柠檬”老师课的同学的学号、姓名
试题5: 查询“C001”课程比“C002”课程成绩高的所有学生的学号、姓名
试题6: 查询学过“C001”并且也学过编号“C002”课程的同学的学号、姓名
试题7: 查询所有课程成绩小于60的同学的学号、姓名
试题8: 查询没有学全所有课的同学的学号、姓名
试题9: 查询学过“柠檬”老师所教的所有课的同学的学号、姓名
参考答案:
1、
select Sid,ROUND(AVG(score), 2) from Score group by Sid having avg(score)>60;
2、
select count(Tname) from Teacher where Tname like '章%';
3、
select Student.Sid,Student.Sname,count(Score.Cid),sum(Score.score) from Student left join Score on Student.Sid=Score.Sid group by Student.Sname,Student.Sid;
4、
select Sid,Sname from Student where Sid not in (Select Score.Sid from Teacher,Score,Course where Course.Cid = Score.Cid and Course.Tid = Teacher.Tid and Teacher.Tname = '杨幂');
5、
Select a.Sid,a.Sname from Student ainner join Score b on a.Sid = b.Sidinner join Score c on a.Sid = c.Sidwhere (b.Cid = 'C001'and c.Cid ='C002') and b.score > c.score;
6、
select a.Sid,a.Sname from Student a inner join Score b on a.Sid=b.Sid inner join Score c on a.Sid=c.Sid where (b.Cid='c001' and c.Cid='c002');
7、
select Student.Sid,Student.Sname from Student,Score where Student.Sid = Score.Sid group by Score.Sid having max(Score.score)<60;
8、
SELECT S.Sid ,S.Sname FROM Student S LEFT JOIN Score Sc ON S.Sid=Sc.Sid GROUP BY S.Sid,S.Sname HAVING COUNT(DISTINCT Sc.Cid)< ( SELECT COUNT(*) FROM Course);
9、
SELECT Sid, Sname FROM Student WHERE Sid IN (
SELECT Score.Sid
FROM Score
JOIN Course ON Course.Cid = Score.Cid
JOIN Teacher ON Course.Tid = Teacher.Tid
WHERE Teacher.Tname = '杨幂'
GROUP BY Score.Sid
HAVING COUNT(DISTINCT Course.Cid) = (
SELECT COUNT(*)
FROM Course join Teacher
On Course.Tid = Teacher.Tid where Teacher.Tname = '杨幂'
)
);
随着互联网行业的快速发展,数据库技术在软件测试中的重要性日益凸显。掌握扎实的数据库知识,已成为测试人员必备的技能之一。
通过对经典数据库笔试题的学习和练习,我们可以更好地掌握数据库的核心概念和应用技巧。持续的学习和实践,将为我们的职业发展奠定坚实的基础。
相关文章:

【金三银四】分享数据库笔试题及答案~~
你是否在面试中遇到过关于数据库的笔试题?如何高效地准备这些题目,提升自己的竞争力?本文将为你整理一些经典的数据库笔试题及其答案,助你备战面试。 金三银四马上来了,测试年限较短难免会碰到笔试题,最近…...
3.1 AI Agent产品管理革命:从愿景定义到用户价值交付的全链路方法论
AI Agent产品管理革命:从愿景定义到用户价值交付的全链路方法论 引言:AI时代产品经理的范式跃迁 Gartner预测,到2026年75%的AI项目失败将归因于产品管理缺失。本文揭示AI Agent产品经理的六大核心能力模型,通过GitHub Sentinel等案例,展示如何将大模型技术转化为可持续商…...
MySQL常见错误码及解决方法(1130、1461、2003、1040、2000、1049、1062、1129、2002、1690等)
目录 【问题1】、FATAL: error 1130: Unknown error 1130 【问题2】、FATAL: error: 1461 【问题3】、ERROR 2003 (HY000): Cant connect to MySQL server on "" (113) 【问题4】、FATAL: error 2003: Cant connect to MySQL server on 172.19.111.151 (111) 【问…...

Rhel Centos环境开关机自动脚本
Rhel Centos环境开关机自动脚本 1. 业务需求2. 解决方法2.1 rc.local2.2 rc.d2.3 systemd2.4 systemd附着的方法2.5 tuned 3. 测试 1. 业务需求 一台较老的服务器上面业务比较简单,提供一个简单的网站,但已经没有业务的运维人员. 想达到的效果: 由于是非标准的apache或者nginx…...

2D 游戏艺术、动画和光照
原文:https://unity.com/resources/2d-game-art-animation-lighting-for-artists-ebook 笔记 用Tilemap瓷砖大小为1单元,人物大小在0.5~2单元 PPU :单位像素 pixels per unit 2160 4K分辨率/ 正交相机size*2 完整屏幕显示像素点 有骨骼动…...

基于SSM+uniapp的鲜花销售小程序+LW示例参考
1.项目介绍 系统角色:管理员、商户功能模块:用户管理、商户管理、鲜花分类管理、鲜花管理、订单管理、收藏管理、购物车、充值、下单等技术选型:SSM,Vue(后端管理web),uniapp等测试环境&#x…...

【第3章:卷积神经网络(CNN)——3.1 CNN的基本结构与工作原理】
嘿,小伙伴们,今天咱们来聊聊深度学习里的一大明星——卷积神经网络(CNN)。这东西在图像识别、视频处理等领域简直不要太火,甚至人脸识别、物体检测这些高大上的应用,都离不开它的身影。废话不多说,咱们这就开聊! 一、CNN是什么东东? 在人工智能领域,卷积神经网络(…...

java原子操作类实现原理
文章目录 AtomicLong实现原理递增和递减操作代码总结 LongAdder实现原理实现原理LongAdder 代码分析构造方法sum方法reset方法sumThenReset方法longValue方法add 方法longAccumulate 方法 总结 JUC 包提供 了一系列的原子性操作类,这些类都是使用非阻塞算法 CAS 实现…...
网络安全-攻击流程-传输层
传输层攻击主要针对OSI模型的第四层,涉及TCP和UDP协议的安全漏洞。以下是常见攻击类型及其流程,以及防御措施: 1. SYN洪水攻击(TCP半连接攻击) 攻击流程: 目标选择:确定目标服务器的IP地址和开…...

【R语言】回归分析
一、线性回归分析 1、lm()函数 lm()函数是用于拟合线性模型(Linear Models)的主要函数。线性模型是一种统计方法,用于描述一个或多个自变量(预测变量、解释变量)与因变量(响应变量)之间的关系…...
在分布式场景下可以使用synchronized加锁么?
首先说结论,在分布式系统中,单纯使用 Java 中的 synchronized 关键字是无法满足需求的,下面从 synchronized 的作用原理、在分布式场景下的局限性以及替代方案等方面详细分析。 一、synchronized 的作用原理 在 Java 中,synchron…...
LeetCodehot 力扣热题100 从前序与中序遍历序列构造二叉树
初始版本 这段代码实现了根据前序遍历和中序遍历重建二叉树。下面我将详细解释每一行的作用,并逐步讲解算法的思路和运行步骤。 代码及注释 class Solution {public:// buildTree 函数用来根据前序遍历(pre)和中序遍历(in)重建二叉树TreeNode* buildTree(vector<…...

Day45(补)【软考】2022年下半年软考软件设计师综合知识真题-计算机软件知识1
文章目录 2022年下半年软考软件设计师综合知识真题第1章 计算机系统基础知识(12/38)计算机软件知识1-6/6哲学概念及收敛思维:是Python程序语言中,处理异常的结构集合,和这个集合之外的结构的区分,考Python集合之外的结构 哲学概念…...
luoguP8764 [蓝桥杯 2021 国 BC] 二进制问题
luogu题目传送门 题目描述 小蓝最近在学习二进制。他想知道 1 到 N 中有多少个数满足其二进制表示中恰好有 K 个 1。你能帮助他吗? 输入格式 输入一行包含两个整数 N 和 K。 输出格式 输出一个整数表示答案。 输入输出样例 输入 #1 7 2 输出 #1 3 说明/提示 对于…...
图形渲染(一)——Skia、OpenGL、Mesa 和 Vulkan简介
1.Skia —— 2D 图形库 Skia 是一个 2D 图形库,它的作用是为开发者提供一个高层次的绘图接口,方便他们进行 2D 图形渲染(比如绘制文本、形状、图像等)。Skia 本身不直接管理 GPU 或进行底层的渲染工作,而是通过 底层图…...

浏览器打开Axure RP模型
1,直接使用chrome打开,提示下载插件 2,需要做一些操作 打开原型文件,找到resources\chrome\axure-chrome-extension.crx文件,这就是我们需要的Chrome插件。 将axure-chrome-extension.crx文件后缀名改为axure-chrome…...
【计算机网络】数据链路层数据帧(Frame)格式
在计算机网络中,数据帧(Frame) 是数据链路层的协议数据单元(PDU),用于在物理介质上传输数据。数据帧的格式取决于具体的链路层协议(如以太网、PPP、HDLC 等)。以下是常见数据帧格式的…...

平面与平面相交算法杂谈
1.前言 空间平面方程: 空间两平面如果不平行,那么一定相交于一条空间直线, 空间平面求交有多种方法,本文进行相关讨论。 2.讨论 可以联立方程组求解,共有3个变量,2个方程,而所求直线有1个变量…...

web集群(LVS-DR)
LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项 目,它的官方站点是 www.linuxvirtualserver.org。现在LVS已经是 Linux标准内核的一部分,在 Linux2.4内核以前,使用LVS时必须要重新编…...

更高效实用 vscode 的常用设置
VSCode 可以说是文本编辑神器, 不止程序员使用, 普通人用其作为文本编辑工具, 更是效率翻倍. 这里分享博主对于 VSCode 的好用设置, 让 VSCode 如虎添翼 进入设置 首先进入设置界面, 后续都在这里进行配置修改 具体设置 每项配置通过搜索关键字, 来快速定位配置项 自动保存…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...