最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL的復合查詢功能實現(xiàn)

 更新時間:2026年05月04日 09:19:20   作者:Halvm?n  
orners查詢AssistantAssistant*從真實的工程項目中,我們經(jīng)常需要使用多表進行查詢,單表查詢實際上是開發(fā)中,數(shù)據(jù)來自多張表,因此需要進行多表查詢,本文通過實例代碼介紹MySQL的復合查詢功能實現(xiàn),感興趣的朋友一起看看吧

到這里,我們已經(jīng)學會了如何在一張表中進行各種查詢。但請大家思考一個問題:真實的工程項目中,我們面對的真的只是單張孤立的數(shù)據(jù)表嗎?顯然不是。訂單信息可能關(guān)聯(lián)用戶表,成績查詢需要聯(lián)立課程表……單表查詢固然基礎(chǔ),卻難以應對這些現(xiàn)實場景。因此,為了讓查詢真正“活”起來,我們將進入下一個核心篇章 —— MySQL 復合查詢

1.基本查詢回顧

1.查詢工資高于2000或崗位為MANAGER的雇員,同時還要滿足他們的姓名首字母為大寫的J

2.按照部門號升序而雇員的工資降序排

3.使用年薪進行降序排序

4.顯示工資最高的員工的名字和工作崗位

5.顯示工資高于平均工資的員工信息

6.顯示每個部門的平均工資和最高工資

7.顯示平均工資低于2000的部門號和它的平均工資

在 SQL 中看到的 HAVING 平均工資 <= 2000 其實是一種 MySQL 對標準 SQL 的擴展,它允許在 HAVING 子句中直接使用 SELECT 中定義的列別名(比如這里的 平均工資)。
不過,從 SQL 的邏輯執(zhí)行順序來看,這并不符合標準的運算順序,所以容易讓人困惑,所以最好不要這么寫,直接寫avg(sal)更好

8.顯示每種崗位的雇員總數(shù),平均工資

2.多表查詢

實際開發(fā)中往往數(shù)據(jù)來自不同的表,所以需要多表查詢。本節(jié)我們用一個簡單的公司管理系統(tǒng),有三張表EMP,DEPT,SALGRADE來演示如何進行多表查詢。
案例:
顯示雇員名、雇員工資以及所在部門的名字因為上面的數(shù)據(jù)來自EMP和DEPT表,因此要聯(lián)合查詢

1.顯示部門號為10的部門名,員工名和工資

2.顯示各個員工的姓名,工資,及工資級別

3.自連接

自連接是指在同一張表連接查詢
案例:
顯示員工FORD的上級領(lǐng)導的編號和姓名(mgr是員工領(lǐng)導的編號--empno)

1.使用的子查詢

2.使用多表查詢(自查詢)

-- 使用到表的別名
--from emp leader, emp worker,給自己的表起別名,因為要先做笛卡爾積,所以別名可以先識別

4.子查詢

子查詢是指嵌入在其他sql語句中的select語句,也叫嵌套查詢

1.單行子查詢

顯示SMITH同一部門的員工

2.多行子查詢

1.IN關(guān)鍵字

  • 作用:判斷某個值是否在子查詢返回的多行結(jié)果列表
  • 典型場景:查找與指定集合匹配的記錄
  • 示例:查詢和 10 號部門工作崗位相同的雇員,但排除 10 號部門自己

2.ALL關(guān)鍵字

  • 作用:與比較運算符(>、<= 等)配合,表示比子查詢返回的所有值大/小/相等**
  • 典型場景:查找超過某一組中所有記錄某個字段的值(例如比某部門所有人都高)
  • 示例:顯示工資比 部門 30 的所有員工 的工資都高的員工(即工資大于部門 30 的最高工資)

3.ANY關(guān)鍵字(有些數(shù)據(jù)庫也支持SOME)

  • 作用:與比較運算符配合,表示比子查詢返回的任意一個值大/小/相等(即至少滿足一個)
  • 典型場景:查找超過某一組中至少一個人的某個字段(例如比部門 30 中工資最低的人高)
  • 你的示例:顯示工資比部門 30 的任意一個員工的工資高的員工(即大于部門 30 的最低工資即可,包括自己部門的員工)

3.多列子查詢

單行子查詢是指子查詢只返回單列,單行數(shù)據(jù);多行子查詢是指返回單列多行數(shù)據(jù),都是針對單列而言的,而多列子查詢則是指查詢返回多個列數(shù)據(jù)的子查詢語句

案例:查詢和SMITH的部門和崗位完全相同的所有雇員,不含SMITH本人

4.在from子句中使用子查詢

子查詢語句出現(xiàn)在from子句中。這里要用到數(shù)據(jù)查詢的技巧,把一個子查詢當做一個臨時表使用

1.顯示每個高于自己部門平均工資的員工的姓名、部門、工資、平均工資

2.查找每個部門工資最高的人的姓名、工資、部門、最高工資

3.顯示每個部門的信息(部門名,編號,地址)和人員數(shù)量

5.合并查詢

在實際應用中,為了合并多個select的執(zhí)行結(jié)果,可以使用集合操作符 union,union all

1.union

該操作符用于取得兩個結(jié)果集的并集。當使用該操作符時,會自動去掉結(jié)果集中的重復行

案例:將工資大于2500或職位是MANAGER的人找出來

2.union all

該操作符用于取得兩個結(jié)果集的并集。當使用該操作符時,不會去掉結(jié)果集中的重復行

案例:將工資大于25000或職位是MANAGER的人找出來

好啦,這就是有關(guān)MySQL的復合查詢的內(nèi)容啦,我們下篇博客不見不散啦(五一快樂>W<)

到此這篇關(guān)于MySQL的復合查詢的文章就介紹到這了,更多相關(guān)mysql復合查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

田东县| 射阳县| 慈利县| 白朗县| 铜山县| 巴林右旗| 彰化市| 改则县| 阿坝| 区。| 且末县| 汉沽区| 楚雄市| 拉萨市| 新闻| 新乐市| 荔波县| 府谷县| 临沭县| 广饶县| 分宜县| 咸丰县| 尚义县| 曲周县| 绿春县| 永泰县| 清新县| 昌图县| 兴文县| 湘阴县| 肃南| 和田县| 盘山县| 辽宁省| 宿州市| 左权县| 安溪县| 军事| 永济市| 喀什市| 墨竹工卡县|