测试高薪必备:3步教测试人员破解子查询
測試人員由于工作原因要經常檢查數據庫的數據是否正確,這個時候就需要頻繁使用多表查詢。
在多表查詢中,應用最多的就是內連接,其次就是子查詢。
為什么子查詢是在工作中應用也有這么廣泛的應用呢?原因在于子查詢非常方便靈活,所以在測試工作中會經常使用。
但尷尬的是,正式因為子查詢太靈活,很多測試新手使用并不能很好掌握導致放棄,所以特撰寫本文來分享子查詢的應用規律。本文主要分為以下幾個步驟:
一. 第一步 —— 準備建表語句
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字段 這是關鍵點13.寫出主表語句 “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內連接的方法去求“王昭君的薪資”,你就知道子查詢是多么簡單了。
不信,你用內連接的方法求一下。
想要入行軟件測試的小伙伴們,此時正是好時機~
軟件測試學習路線圖詳細介紹
第一階段 功能測試
學前導讀:學習本階段內容,可全流程功能測試解決方案、Web自動化測試解決方案、數據分離解決方案、自動化測試報告解決方案、日志收集解決方案。
1.2022全網首發、最適合新手的軟件測入門到實戰教程上線啦!
真正的從入門到精通,包含了基礎+項目實戰,所有案例實戰操作均圖文并茂,真正實現一套全通關!
軟件測試2022最新視頻教程,軟件測試基礎入門到項目實戰(涵蓋軟件測試基礎+黑馬頭條項目實戰)
2.軟件測試入門到精通
軟件測試是一種實際輸出與預期輸出之間的審核或者比較過程。軟件測試的經典定義是:在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。本課程共5天,針對零基礎小白錄制。零基礎入門的必學課。
軟件測試從入門到精通_軟件測試基礎教程
3. Linux系統2天快速入門
本視頻包含Linux操作系統介紹、Linux的常用命令、vi編輯器。學習掌握本階段內容,可具備Linux項目搭建能力。
Linux系統操作教程2天快速入門linux項目搭建
4. 軟件測試MySQL數據庫知識精講+項目實戰
本視頻包含數據安裝,數據表操作、數據操作-增刪改查、條件查詢、排序、聚合函數、分組、分頁、連接查詢、自關聯、子查詢、子查詢演練。學習本課程內容,可具備數據庫校驗能力;還可以快速、規范的掌握數據庫增刪改查操作。
軟件測試工程師必備MySQL數據庫,mysql系統精講+課后練習
第二階段 Python編程
學前導讀:學習本階段內容,可掌握Python語法, 具備編程能力; 能建立編程思維以及面向對象程序設計思想; 能掌握UnitTest框架管理測試用例。
10天玩轉Python軟件測試
學習本階段內容,可掌握Python語法, 具備編程能力; 能建立編程思維以及面向對象程序設計思想; 能掌握UnitTest框架管理測試用例。
Python自動測試教程,python從基礎到UnitTest框架管理測試用例
第三階段 UI自動化
學前導讀:ui自動化大體分為web自動化和App自動化,在自動化測試領域中占比很大,經常使用。
1. 軟件測試web自動化測試精講與實戰
本課程將教會大家搭建Web自動化和移動自動化測試環境;掌握Web自動化測試流程和腳本編寫;掌握移動自動化測試中元素的定位方法、元素操作和手勢操作;熟練掌握ADB工具的使用; 掌握PO模式的設計思想,并能夠對頁面進行封裝;掌握數據驅動的實現方式; 能夠在實際項目靈活運用自動化的相關技術。
軟件測試web自動化測試,Web自動化流程精講和移動自動化測試環境
2.零基礎入門移動自動化——Appium框架
本課程會詳細講解Appium框架,Appium是一個開源的、跨平臺的自動化測試框架,該框架適用于Native Application、Mobile Web Application或Hybrid Application的自動化測試。
零基礎入門移動自動化測試——Appium框架
3. 輕松教你使用Appium進行IOS真機自動化測試
本套課程,將環境安裝的步驟和注意事項呈現給學員,模擬器到真機實操,都進行演示講解。內容豐富,生動形象,學完即可完成IOS端環境安裝及實操。
輕松教你使用Appium進行IOS真機自動化測試
第四階段 接口自動化
學前導讀:接口測試是所有自動化測試應用頻率最高部分。此階段共分成14個部分進行詳講。
接口測試精講+傳智健康實戰教程
本教程會涉及HTTP,Postman,Pymysql,requests庫,集成UnitTes,Dubbo等諸多工具,最后用傳智健康項目進行本階段項目實戰。
4天玩轉接口測試,接口重點全解析+傳智健康項目實戰(包含requests庫,集成UnitTes,Dubbo等諸多工具)
第五階段 性能測試
學前導讀:性能測試屬于高級測試范疇,對于薪資的提升幫助很大,本階段視頻講解性能測試環境搭建,JMeter工具的使用,性能測試監控、分析和調優方法。
4天快速入門性能測試
本視頻通過性能測試基礎理論及JMeter工具的學習;通過輕商城項目實戰,帶學員掌握性能測試需求分析、性能測試計劃、測試用例設計、測試腳本開發、性能監控、性能分析和調優、性能測試報告總結。
性能測試全套教程,4天快速入門性能測試+項目商城實戰(含JMeter工具等)
第六階段 綜合項目強化
學前導讀:通過微信小程序、金融項目兩個實戰項目綜合強化功能測試、接口測試、性能測試。
1. 微信小程序自動化測試實戰
本視頻涵蓋:微信小程序基礎介紹、Ego微商項目介紹、Ego微商項目部署、Ego微商小程序計劃篇、Ego微商小程序設計篇、Ego微商小程序執行總結篇、Ego微商小程序接口測試篇、持續集成。
軟件測試微信小程序自動化測試實戰
2. 軟件測試4天搞定金融項目
本視頻講解金融項目功能測試解決方案、真實項目測試體驗解決方案、復雜業務接口測試解決方案 接口加解密測試解決方案、數據分離解決方案 持續集成解決方案、自動化測試報告解決方案、高并發測試解決方案。
軟件測試4天快速搞定金融項目功能測試實戰教程
總結
以上是生活随笔為你收集整理的测试高薪必备:3步教测试人员破解子查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习项目,使用python进行表情识
- 下一篇: 转载文章-【工具】10分钟快速搭建属于自