网易首页 > 网易号 > 正文 申请入驻

测试高薪必备:3步教测试人员破解子查询

0
分享至

测试人员由于工作原因要经常检查数据库的数据是否正确,这个时候就需要频繁使用多表查询。


在多表查询中,应用最多的就是内连接,其次就是子查询。


为什么子查询是在工作中应用也有这么广泛的应用呢?原因在于子查询非常方便灵活,所以在测试工作中会经常使用。


但尴尬的是,正式因为子查询太灵活,很多测试新手使用并不能很好掌握导致放弃,所以特撰写本文来分享子查询的应用规律。本文主要分为以下几个步骤:

  1. 1. 第一步, 准备建表语句

  2. 2. 第二步,将建表语句输入到navicat中建立三个表(实际中只用了2个表)

  3. 3. 第三步,了解查询题做题3步骤

  4. 4. 第四步,做题验证步骤

  5. 5. 第五步,总结

一. 第一步 —— 准备建表语句

1.准备sql数据

-- 员工表 employees
-- 工资表 salary
-- 部门表 departments
create table departments (
deptid int(10) primary key,
deptname varchar(20) not null -- 部门名称
);
insert into departments values ('1001', '市场部');
insert into departments values ('1002', '测试部');
insert into departments values ('1003', '开发部');
create table employees (
empid int(10) primary key,
empname varchar(20) not null, -- 姓名
sex varchar(4) default null, -- 性别
deptid int(20) default null, -- 部门编号
jobs varchar(20) default null, -- 岗位
politicalstatus varchar(20) default null, -- 政治面貌
leader int(10) default null
);
insert into employees values ('1', '王昭君', '女', '1003', '开发', '群众', '9');
insert into employees values ('2', '诸葛亮', '男', '1003', '开发经理', '群众', null);
insert into employees values ('3', '张飞', '男', '1002', '测试', '团员', '4');
insert into employees values ('4', '白起', '男', '1002', '测试经理', '党员', null);
insert into employees values ('5', '大乔', '女', '1002', '测试', '党员', '4');
insert into employees values ('6', '孙尚香', '女', '1001', '市场', '党员', '12');
insert into employees values ('7', '百里玄策', '男', '1001', '市场', '团员', '12');
insert into employees values ('8', '小乔', '女', '1002', '测试', '群众', '4');
insert into employees values ('9', '百里守约', '男', '1003', '开发', '党员', '9');
insert into employees values ('10', '妲己', '女', '1003', '开发', '团员', '9');
insert into employees values ('11', '李白', '男', '1002', '测试', '团员', '4');
insert into employees values ('12', '孙膑', '男', '1001', '市场经理', '党员', null);
create table salary (
sid int(10) primary key,
empid int(10) not null,
salary int(10) not null -- 工资
);
insert into salary values ('1', '7', '2100');
insert into salary values ('2', '6', '2000');
insert into salary values ('3', '12', '5000');
insert into salary values ('4', '9', '1999');
insert into salary values ('5', '10', '1900');
insert into salary values ('6', '1', '3000');
insert into salary values ('7', '2', '5500');
insert into salary values ('8', '5', '2000');
insert into salary values ('9', '3', '1500');
insert into salary values ('10', '8', '4000');
insert into salary values ('11', '11', '2600');
insert into salary values ('12', '4', '5300');

二.第二步——将建表语句输入到navicat中建立三个表

1)新建数据库test

2)将sql语句输入到查询编辑器中,运行

3)创建数据表并黏贴到excel中

三. 第三步 —— 了解子查询题做题3步骤

1.明确题目要求:

要查询“王昭君的工资”

2.明确什么是子查询概念

典型的子查询语句是sql语句中带有()的,如下面sql语句所示:
select * from scores where studentNo in (select studentNo from students where age=18)
在括号里面的查询叫子查询,在括号里面的表叫做子表
在括号外面的查询叫主查询,在括号外面的表叫做主表

3.子查询做题示意图(这里只介绍更为复杂的多表子查询,重要)

4.文字分析示意图(重要)

举例我们现在已建好的表中,现在要求的就是“王昭君的工资”,按照示意图用子查询应该怎么做呢?
1.判断哪个表为主表(确保所求字段所在的表为主表),哪个表为子表。
分析:题意要求“王昭君的工资”,所求的字段是工资,所以工资字段所在的工资表salary就是主表,要放在括号外面。相应的,王昭君所在的员工表employees就是子表,要放在括号里面。
2.(关键点1)判断两表的连接字段,[也是找两表中意义相同的字段]
分析:两个表要发生关系,也是要去找意义相同的字段,为雇员字段,也叫empid字段 这是关键点1
3.写出主表语句 “select * from 主表 where 连接字段 in ()”
分析:因为子查询一般都是做条件用的,而where又是条件查询的关键词,所以一般子查询都是放在where后面。where做条件查询时,前面一定是表,后面一定是字段。为什么连接字段后面不用“=”而用“in”,原因是子查询可能返回结果为多个,所以用in更合适。()是子查询占位符
4.写出子表语句 “select 连接字段 from 子表 where ...”
分析:看示意图有一块文字非常重要“子查询语句所求的目标(关键点)2,往往是题目中所求字段,替换成连接字段即可”,比如我们的题目是求“王昭君的工资”,那么子查询求的是“王昭君的两表连接字段”,为“王昭君的empid”,所以就是“select 连接字段 from 子表 where ...”
5.结合,就是将子查询放在处查询内部

5.从文字分析示意图,可将子查询5步骤优化为3步骤

1.分清主表和子表+两表的连接字段(第1,2步优化为1步,在大脑中过)
2.写出主查询语句select * from 主表 where 连接字段 in ()
3.结合主查询写出子查询语句(子查询目标:将题目所求字段改为连接字段)

四. 第四步 ——做题验证步骤

得到“王昭君的薪资”的sql语句就为

select * from salary where empid in (select empid from employees where empname='王昭君')
补充:为什么子查询方便,因为主查询缺什么(empid),子查询就去查什么

五、总结

子查询的做题步骤就分为以下三步:

1.分清主表和子表+两表的连接字段(在大脑中过) 2.写出主查询语句select * from 主表 where 连接字段 in () 3.结合主查询写出子查询语句(子查询目标:将题目所求字段改为连接字段)补充:为什么子查询方便,因为主查询缺什么,子查询就去查什么

相比inner join内连接的方法去求“王昭君的薪资”,你就知道子查询是多么简单了。

不信,你用内连接的方法求一下。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
1949年傅作义任水利部长遭闲置,主席当面质问,周恩来听闻当即发火

1949年傅作义任水利部长遭闲置,主席当面质问,周恩来听闻当即发火

磊子讲史
2026-01-14 10:12:21
4枚导弹砸向美航母,美军这次竟然“认怂”了?

4枚导弹砸向美航母,美军这次竟然“认怂”了?

梦亦沐歌
2026-03-02 08:17:19
汪小菲和张兰矛盾升级!张兰哭完不敢对镜头,大S当年真没说错他

汪小菲和张兰矛盾升级!张兰哭完不敢对镜头,大S当年真没说错他

夏末moent
2026-03-02 08:43:40
抵债的方式能有多离谱?网友:赔了我八个车位

抵债的方式能有多离谱?网友:赔了我八个车位

另子维爱读史
2026-02-28 20:39:11
亲人去世,先打120还是殡仪馆?记住这个顺序,少跑90%弯路

亲人去世,先打120还是殡仪馆?记住这个顺序,少跑90%弯路

白浅娱乐聊
2026-02-25 19:00:57
连续4年双杀?凌晨4点皇马出战:熊皇冲击6连斩 首发曝光

连续4年双杀?凌晨4点皇马出战:熊皇冲击6连斩 首发曝光

叶青足球世界
2026-03-02 08:19:04
东体:武磊做的是膝盖微骨折手术,主刀是欧洲豪门信任的医生

东体:武磊做的是膝盖微骨折手术,主刀是欧洲豪门信任的医生

懂球帝
2026-03-02 11:54:50
重要赛事!3月2日晚19:30!中央5套CCTV5、CCTV5+直播节目表

重要赛事!3月2日晚19:30!中央5套CCTV5、CCTV5+直播节目表

皮皮观天下
2026-03-02 11:54:31
破天的富贵接不住!两句话毁了自己的那尔那茜,口碑又迎反转

破天的富贵接不住!两句话毁了自己的那尔那茜,口碑又迎反转

倔强的毛驴
2026-03-01 21:56:42
乱世之秋谁会成为波斯新掌门?为何说伊朗之变对乌克兰是大利好?

乱世之秋谁会成为波斯新掌门?为何说伊朗之变对乌克兰是大利好?

史政先锋
2026-03-01 20:02:01
哈梅内伊以身入局,美以噩梦开始!特朗普没料到他死前安排这么狠

哈梅内伊以身入局,美以噩梦开始!特朗普没料到他死前安排这么狠

野史日记
2026-03-01 18:26:04
太惨烈,天津老牌设计院裁员超千人!

太惨烈,天津老牌设计院裁员超千人!

黯泉
2026-03-01 21:28:38
方言的消失是中华文明的悲哀

方言的消失是中华文明的悲哀

虔青
2026-03-02 07:24:07
梅西主导大逆转!两射一传造红牌,轰任意球世界波,连刷N纪录

梅西主导大逆转!两射一传造红牌,轰任意球世界波,连刷N纪录

奥拜尔
2026-03-02 10:11:38
杨瀚森仅打5分钟!普帅:提升两点可增加时间,拓媒:有点无语

杨瀚森仅打5分钟!普帅:提升两点可增加时间,拓媒:有点无语

你的篮球频道
2026-03-02 11:27:37
大满贯不和谐一幕:王曼昱2-4孙颖莎 比输球可怕是观众一边倒支持

大满贯不和谐一幕:王曼昱2-4孙颖莎 比输球可怕是观众一边倒支持

侃球熊弟
2026-03-01 20:27:26
父亲之谜!谷爱凌出生证明生父一栏空白 最新传闻曝光:长得真像

父亲之谜!谷爱凌出生证明生父一栏空白 最新传闻曝光:长得真像

念洲
2026-03-01 21:29:29
性行为后男人洗把脸就睡了,女人却要扛起整个身体系统重装的十年

性行为后男人洗把脸就睡了,女人却要扛起整个身体系统重装的十年

阿凯销售场
2026-03-01 14:27:18
伊朗强硬派被赶尽杀绝,亲美派总统安然无恙,顺利接掌大权

伊朗强硬派被赶尽杀绝,亲美派总统安然无恙,顺利接掌大权

石江月
2026-03-02 13:13:41
101岁余宝珠:相貌普通击败正房,独占百亿资产,抽烟喝酒霸气足

101岁余宝珠:相貌普通击败正房,独占百亿资产,抽烟喝酒霸气足

照见古今
2026-01-09 19:08:21
2026-03-02 13:52:49
黑马程序员上海中心
黑马程序员上海中心
传智播客-黑马程序员上海校区
493文章数 79关注度
往期回顾 全部

科技要闻

荣耀发布机器人手机、折叠屏、人形机器人

头条要闻

牛弹琴:伊朗之战比俄乌之战更生猛 给世界5个深刻教训

头条要闻

牛弹琴:伊朗之战比俄乌之战更生猛 给世界5个深刻教训

体育要闻

卡里克主场5连胜!队史第2人通过最大考验

娱乐要闻

美伊以冲突爆发,多位明星被困中东

财经要闻

中东局势影响如何?十大券商策略来了

汽车要闻

预售11.28万起 狐全新阿尔法S5标配宁德时代

态度原创

游戏
艺术
家居
亲子
军事航空

曝战神新作风格将大变!比起战神可能更像鬼泣

艺术要闻

2025北京青年美术作品展 | 油画作品选刊

家居要闻

万物互联 享科技福祉

亲子要闻

新型家庭“诈骗”案例,专门针对人类幼崽的红包

军事要闻

美军动用新型武器:山寨伊朗的

无障碍浏览 进入关怀版