数据库常用面试题(软件测试SQL面试题)

2025-12-24 03:45:01 0

数据库常用面试题(软件测试SQL面试题)

这篇文章给大家聊聊关于数据库常用面试题,以及软件测试SQL面试题对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

软件测试SQL面试题

数据库,无外乎增删改查:
增:

insert into A表 values (value1,value2,value3......)向A表中新增数据

删:

delete from A表 ( where id=1) 删除A表(删除A表id=1的数据)如果删除某个测试数据,记得加where条件,否则整张表的数据都被删除,防止误操作!不过,数据可以回滚找回。

truncate A表:清除表数据,数据无法回滚。

drop A表:整表结构删除,即,这张表不存在了。

改:

update A表 set name=’test’ where id=1 修改id为1的name值为test
查:

1:左关联和右关联的区别?

答:左关联( left join )左表为主,左表数据全部显示,右表显示关联数据,无关联显示null,右关联( right join )相反。
2:模糊查询?

select * from A表 where name like ’ %a% ’ (name包含a字母)

查询结果: a , a bc,b a c,bc a

select * from A表 where name like ’ a% ’ (name值以a字母开头)

查询结果: a , a bc

select * from A表 where name like ’ %a ’ (name值以a字母结尾)

查询结果: a ,bc a
3:统计:count和sum

count统计表的 记录数 ,sum统计某列数值 总和 。
select count(*) from A表

select count(1) from A表

select count(列名) from A表

区别:

count( * ): 所有记录,包括null值

count( 1 ):所有记录,包括null值

count( 列名 ):列名有值得记录, 不包括null值

执行效率:

以前是count(1)比count(*)快,但现在count(*)底层算法优化,查询更快,所以推荐count(*)

统计有效数据的记录,count(列名)
select sum(列名) from A表 计算列名数值总和。
举例:

查询A表中,姓王的用户量

select count(*) from A where name like ’王%’

Plus版

1:去重distinct,查询不重复记录的数据

必须放开头

select distinct 列名 from 表名(查询所有列名数据,去掉重复数据)
举例:

表A,查询考核等级grade,有哪些值

select distinct grade from A
2:分组group by,根据某个字段分组

select 列名 from 表名 group by 列名,一般会配合聚合函数一起使用
举例:

表A中,查询考核等级grade字段,不同值各多少人

select grade,count(*) from A group by grade
3:limit,查询结果返回的数量,多用于分页查询

select * from 表名 limit i,n i代表查询结果的索引值,默认从0开始,n返回查询的结果数。
举例:

订单表A,查询第21条到30条数据

select * from A limit 20,10

可能会问为什么不能直接用id查询?因为id不准确,可能存在id不连续的情况。如果某条数据被物理删除了呢?
何为物理删除和逻辑删除?

物理 删除 ,直接将某条数据,从表中删除。

逻辑 删除,仅通过某个字段标记删除,实际表中还存在。(比如:is_delete=1代表已删除,is_delete=0未删除)
4:排序order by 列名 asc(列名值升序排列)和order by 列名 desc(列名值降序排列)

举例:

用户表A,按照用户id升序(select查询默认根据主键升序,所以升序,不加order by也可以)

select * from A order by id asc同select *from A
用户表A,按照新建时间倒序

select * from A order by create_time desc
5:in和between查询某个范围的数值

举例:

in:查询指定数值的数据

between:查询某个范围内的数据
举例:

查询表A中,id=1和id=10的数据

select * from A where id in(1,10)
查询表A中,1月份新增的数据

select * from A where create_time between ’2022-01-01’ and ’2022-01-31 23:59:59’

已知有如下4张表:

学生表:student(学号,学生姓名,出生年月,性别)

成绩表:score(学号,课程号,成绩)

课程表:course(课程号,课程名称,教师号)

教师表:teacher(教师号,教师姓名)

准备练习数据

1)创建学生表(student)
2)创建成绩表(score)
3)创建课程表(course)
4)教师表(teacher)
1)学生表添加数据
2)成绩表添加数据
3)课程表添加数据
4)教师表添加数据
简单查询

查询姓“猴”的学生名单

查询姓名中最后一个字是“猴”字的学生名单

查询姓名中带“猴”字的学生名单

查询姓“孟”老师的个数
汇总分析

1.汇总分析

查询课程编号为“0002”的总成绩
查询选了课程的学生人数
2.分组

查询各科成绩的最高分和最低分, 以如下的形式显示:课程号,最高分,最低分
查询每门课程选修的学生数
3.分组结果的条件
查询至少选修两门课程的学生学号
查询同名同姓学生名单并统计同名人数

分析:条件:怎么算姓名相同?按姓名分组后人数大于等于2,因为同名的人数大于等于2,分析出这一点很重要
查询不及格的课程并按课程号从大到小排列
查询每门课程的平均成绩,结果按平均成绩升序排序,平均成绩相同时,按课程号降序排列
检索课程编号为“0004”且分数小于60的学生学号,结果按按分数降序排列
统计每门课程的学生选修人数(超过2人的课程才统计),要求输出课程号和选修人数,查询结果按人数降序排序,若人数相同,按课程号升序排序
查询两门以上不及格课程的同学的学号及其平均成绩

第2步:再加上限制条件:

1)不及格课程

2)两门以上
4.查询结构排序,分组的指定条件

查询学生的总成绩并进行排名
查询平均成绩大于60分的学生的学号和平均成绩
复杂查询

查询课程成绩小于60分学生的学号、姓名

【知识点】子查询

1.翻译成大白话

1)查询结果:学生学号,姓名

2)查询条件:所有课程成绩 《 60 的学生,需要从成绩表里查找,用到子查询

第1步,写子查询(所有课程成绩 《 60 的学生)
第2步,查询结果:学生学号,姓名,条件是前面1步查到的学号

查询没有学全所有课的学生的学号、姓名
查询出只选修了两门课程的全部学生的学号和姓名
查找1990年出生的学生名单
查询本月过生日的学生
工作中会经常遇到这样的业务问题:

如何找到每个类别下用户最喜欢的产品是哪个?

如果找到每个类别下用户点击最多的5个商品是什么?

这类问题其实就是常见的:分组取每组最大值、最小值,每组最大的N条(top N)记录。

分组取每组最大值,按课程号分组取成绩最大值所在行的数据
分组取每组最小值,按课程号分组取成绩最小值所在行的数据
每组最大的N条记录,查询各科成绩前两名的记录

第1步,查出有哪些组

我们可以按课程号分组,查询出有哪些组,对应这个问题里就是有哪些课程号
第2步:先使用order by子句按成绩降序排序(desc),然后使用limt子句返回topN(对应这个问题返回的成绩前两名)
第3步,使用union all 将每组选出的数据合并到一起
多表查询

查询所有学生的学号、姓名、选课数、总成绩
查询平均成绩大于85的所有学生的学号、姓名和平均成绩
查询学生的选课情况:学号,姓名,课程号,课程名称

mysql数据库面试题(学生表_课程表_成绩表_教师表)

Student(Sid,Sname,Sage,Ssex)学生表
Sid:学号
Sname:学生姓名
Sage:学生年龄
Ssex:学生性别
Course(Cid,Cname,Tid)课程表
Cid:课程编号
Cname:课程名称
Tid:教师编号
SC(Sid,Cid,score)成绩表
Sid:学号
Cid:课程编号
score:成绩
Teacher(Tid,Tname)教师表
Tid:教师编号:
Tname:教师名字

1、插入数据

2、删除课程表所有数据

3、将学生表中的姓名 张三修改为张大山

或者

4、查询姓’李’的老师的个数:

5、查询所有课程成绩小于60的同学的学号、姓名:

6、查询没有学全所有课的同学的学号、姓名

7、查询平均成绩大于60分的同学的学号和平均成绩

8、查询学过“100”并且也学过编号“101”课程的同学的学号、姓名

9、查询“100”课程比“101”课程成绩高的所有学生的学号

10、查询课程编号“100”的成绩比课程编号“101”课程高的所有同学的学号、姓名

11、查询学过“鲁迅”老师所教的所有课的同学的学号、姓名

12、查询所有同学的学号、姓名、选课数、总成绩

13、查询至少有一门课与学号为“1”同学所学相同的同学的学号和姓名

14、把“SC”表中“鲁迅”老师教的课的成绩都更改为此课程的平均成绩,
错误

15、查询和“2”学号的同学学习的课程完全相同的其他同学学号和姓名

16、删除学习“鲁迅”老师课的SC表记录

17、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、002号课的平均成绩

18、查询各科成绩最高和最低的分:以如下的形式显示:课程ID,最高分,最低分

19、按各科平均成绩从低到高和及格率的百分数从高到低顺序

20、查询如下课程平均成绩和及格率的百分数(用”1行”显示): 数学(100),语文(101),英语(102)

22、查询不同老师所教不同课程平均分从高到低显示

23、查询如下课程成绩第3名到第6名的学生成绩单:数学(100),语文(101),英语(102)

23、统计下列各科成绩,各分数段人数:课程ID,课程名称,

24、查询学生平均成绩及其名次

25、查询各科成绩前三名的记录(不考虑成绩并列情况)

26、查询每门课程被选修的学生数

27、查询出只选修一门课程的全部学生的学号和姓名

28、查询男生、女生人数

29、查询姓“张”的学生名单

30、查询同名同姓的学生名单,并统计同名人数

31、1981年出生的学生名单(注:student表中sage列的类型是datetime)

32、查询平均成绩大于85的所有学生的学号、姓名和平均成绩

33、查询每门课程的平均成绩,结果按平均成绩升序排序,平均成绩相同时,按课程号降序排列

34、查询课程名称为“英语”,且分数低于60的学生名字和分数

35、查询所有学生的选课情况

36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数

37、查询不及格的课程,并按课程号从大到小的排列

38、查询课程编号为“101”且课程成绩在80分以上的学生的学号和姓名

39、求选了课程的学生人数:

40、查询选修“鲁迅”老师所授课程的学生中,成绩最高的学生姓名及其成绩

41、检索至少选修两门课程的学生学号

42、查询全部学生都选修的课程的课程号和课程名(1.一个课程被全部的学生选修,2.所有的学生选择的所有课程)

43、查询没学过“鲁迅”老师讲授的任一门课程的学生姓名

44、查询两门以上不及格课程的同学的学号及其平均成绩

45、检索“101”课程分数小于60,按分数降序排列的同学学号

46、删除“2”同学的“101”课程的成绩

关于数据库常用面试题,软件测试SQL面试题的介绍到此结束,希望对大家有所帮助。

数据库常用面试题(软件测试SQL面试题)

本文编辑:admin

更多文章:


js代码炫酷特效模板(鼠标悬停特效代码怎么写,鼠标放在小图片上旁边显示一张大图片)

js代码炫酷特效模板(鼠标悬停特效代码怎么写,鼠标放在小图片上旁边显示一张大图片)

其实js代码炫酷特效模板的问题并不复杂,但是又很多的朋友都不太了解鼠标悬停特效代码怎么写,鼠标放在小图片上旁边显示一张大图片,因此呢,今天小编就来为大家分享js代码炫酷特效模板的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析

2026年5月14日 04:00

strutsprepareandexecutefilter(struts2原理)

strutsprepareandexecutefilter(struts2原理)

本篇文章给大家谈谈strutsprepareandexecutefilter,以及struts2原理对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录struts2原理java.lang.ClassCastException:

2026年4月13日 00:30

vb代码编写(VB编写个代码)

vb代码编写(VB编写个代码)

其实vb代码编写的问题并不复杂,但是又很多的朋友都不太了解VB编写个代码,因此呢,今天小编就来为大家分享vb代码编写的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录VB编写个代码怎样vb代码编写一个用星号组成的五

2025年6月27日 14:00

物流管理系统数据库设计文档(求基于C#的库存管理系统的设计与实现毕业设计论文)

物流管理系统数据库设计文档(求基于C#的库存管理系统的设计与实现毕业设计论文)

大家好,如果您还对物流管理系统数据库设计文档不太了解,没有关系,今天就由本站为大家分享物流管理系统数据库设计文档的知识,包括求基于C#的库存管理系统的设计与实现毕业设计论文的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本

2025年12月2日 13:30

linux的c语言程序设计(在Linux下用C语言编程)

linux的c语言程序设计(在Linux下用C语言编程)

大家好,关于linux的c语言程序设计很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于在Linux下用C语言编程的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2025年11月13日 06:45

停止内耗是什么意思(拒绝内耗是什么意思)

停止内耗是什么意思(拒绝内耗是什么意思)

各位老铁们好,相信很多人对停止内耗是什么意思都不是特别的了解,因此呢,今天就来为大家分享下关于停止内耗是什么意思以及拒绝内耗是什么意思的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录拒绝内耗是什么意思停止内耗停止

2026年4月30日 02:45

down什么意思(down什么意思)

down什么意思(down什么意思)

本篇文章给大家谈谈down什么意思,以及down什么意思对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录down什么意思down什么意思do

2025年8月28日 17:00

executed alternatively(各位帅哥 靓妹 英文好的 江湖救急了  谢谢!!)

executed alternatively(各位帅哥 靓妹 英文好的 江湖救急了 谢谢!!)

这篇文章给大家聊聊关于executed alternatively,以及各位帅哥 靓妹 英文好的 江湖救急了 谢谢!!对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录各位帅哥 靓妹 英文好的 江湖救急了 谢谢!!怎么获取E

2026年4月4日 05:15

媒体查询响应式布局模板(7、响应式布局(媒体查询))

媒体查询响应式布局模板(7、响应式布局(媒体查询))

本篇文章给大家谈谈媒体查询响应式布局模板,以及7、响应式布局(媒体查询)对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录7、响应式布局(媒体

2026年1月3日 20:00

arraylist和array区别(ArraryList,Array string[]的差别是什么)

arraylist和array区别(ArraryList,Array string[]的差别是什么)

“arraylist和array区别”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看arraylist和array区别(ArraryList,Array string[]的差别是什么)!本文目录ArraryList,Arra

2026年1月4日 01:00

img文件用什么手机软件打开(手机image图片怎么打开)

img文件用什么手机软件打开(手机image图片怎么打开)

这篇文章给大家聊聊关于img文件用什么手机软件打开,以及手机image图片怎么打开对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录手机image图片怎么打开微信怎么打开img格式的图片.img文件怎么打开,,,用安卓手机img

2025年10月2日 01:00

reset sw不分方向(微星H55M-P32主板开启,重启,指示灯接口,应该如何插)

reset sw不分方向(微星H55M-P32主板开启,重启,指示灯接口,应该如何插)

各位老铁们好,相信很多人对reset sw不分方向都不是特别的了解,因此呢,今天就来为大家分享下关于reset sw不分方向以及微星H55M-P32主板开启,重启,指示灯接口,应该如何插的问题知识,还望可以帮助大家,解决大家的一些困惑,下面

2026年1月27日 04:45

黑莓开发者模式(黑莓KEY2 Lite 开发者选项怎么打开)

黑莓开发者模式(黑莓KEY2 Lite 开发者选项怎么打开)

大家好,如果您还对黑莓开发者模式不太了解,没有关系,今天就由本站为大家分享黑莓开发者模式的知识,包括黑莓KEY2 Lite 开发者选项怎么打开的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录黑莓KEY2 Lite

2025年6月23日 08:15

initialized翻译(帮我翻译英文)

initialized翻译(帮我翻译英文)

大家好,initialized翻译相信很多的网友都不是很明白,包括帮我翻译英文也是一样,不过没有关系,接下来就来为大家分享关于initialized翻译和帮我翻译英文的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目

2025年6月7日 00:45

公司门户网站首页(网站建设中首页到底起到什么作用)

公司门户网站首页(网站建设中首页到底起到什么作用)

本篇文章给大家谈谈公司门户网站首页,以及网站建设中首页到底起到什么作用对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录网站建设中首页到底起到

2026年3月23日 17:30

网站有源码和没有源码的区别(网站的源码和源代码有区别吗)

网站有源码和没有源码的区别(网站的源码和源代码有区别吗)

“网站有源码和没有源码的区别”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看网站有源码和没有源码的区别(网站的源码和源代码有区别吗)!本文目录网站的源码和源代码有区别吗怎样查看网页代码,它与源代码的区别希望能看到你们精彩的回

2025年12月26日 19:00

profile 简历(002-理解什么是profile)

profile 简历(002-理解什么是profile)

本篇文章给大家谈谈profile 简历,以及002-理解什么是profile对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录002-理解什么是profile英语个人简历模板3篇linkedin profile是什么意思如何写一

2025年8月4日 21:15

in length的用法(新概念英语第2册Lesson90~92重点句型及语法)

in length的用法(新概念英语第2册Lesson90~92重点句型及语法)

“in length的用法”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看in length的用法(新概念英语第2册Lesson90~92重点句型及语法)!本文目录新概念英语第2册Lesson90~92重点句型及语法边长的英

2026年4月9日 10:45

webpack缺点(如何理解webpack文档中对AMD缺点的描述)

webpack缺点(如何理解webpack文档中对AMD缺点的描述)

大家好,如果您还对webpack缺点不太了解,没有关系,今天就由本站为大家分享webpack缺点的知识,包括如何理解webpack文档中对AMD缺点的描述的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录如何理解we

2026年9月10日 12:30

corresponding author和第一作者(corresponding author必须是第一作者吗)

corresponding author和第一作者(corresponding author必须是第一作者吗)

“corresponding author和第一作者”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看corresponding author和第一作者(corresponding author必须是第一作者吗)!本文目录co

2026年5月12日 05:30

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索