亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mysql中的復(fù)合查詢?cè)斀?/h1>
 更新時(shí)間:2025年04月09日 09:19:02   作者:貓咪-9527  
這篇文章主要介紹了Mysql中的復(fù)合查詢的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1. 基本查詢簡(jiǎn)單回顧

條件篩選

使用 AND、OR、LIKE 等條件操作符進(jìn)行多條件篩選。

排序

使用 ORDER BY 對(duì)查詢結(jié)果進(jìn)行排序,支持多個(gè)字段排序(如按部門號(hào)升序,工資降序)。

聚合函數(shù)與分組

使用 GROUP BY 對(duì)數(shù)據(jù)進(jìn)行分組,并使用聚合函數(shù)(如 AVG(), MAX(), COUNT())進(jìn)行匯總。

子查詢

用于動(dòng)態(tài)選擇數(shù)據(jù),如查詢工資高于平均工資的員工。

內(nèi)嵌查詢

查詢工資最高的員工、顯示員工的年薪等。

  • 查詢工資高于500或崗位為MANAGER的雇員,同時(shí)還要滿足他們的姓名首字母為大寫的
select *from emp where ename like 'j%' and (sal>500 or job='MANAGER');

使用年薪進(jìn)行降序排序

select ename ,job,sal*12+ifnull(comm,0) sarn  from emp order by sarn desc;

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

方案一:

select ename ,job ,sal from emp where sal in(select max(sal) from emp );

方案二:

select ename ,job ,sal from emp order by sal desc limit 1;

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

select ename ,job ,sal from emp where sal>(select avg(sal) from emp);

顯示每個(gè)部門的平均工資和最高工資

select deptno,format(avg(sal),2),max(sal) from emp group by deptno;

顯示平均工資低于2000的部門號(hào)和它的平均工資

select deptno ,avg(sal) avgsal from emp group by deptno having avgsal<2000;

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

select job ,count(*) from emp group by job;

2. 多表查詢

聯(lián)接查詢

通過(guò)表之間的關(guān)系字段(如 deptno)進(jìn)行聯(lián)合查詢,常用的連接方式包括內(nèi)連接(INNER JOIN)等。

跨表查詢

通過(guò)連接多個(gè)表(如 EMP 和 DEPT)來(lái)獲取聯(lián)合結(jié)果。

使用 GROUP BY 和聚合函數(shù)

計(jì)算每個(gè)部門的平均工資和最高工資等。

連接條件

可以通過(guò)多個(gè)條件進(jìn)行查詢,顯示特定條件下的數(shù)據(jù)。

將第一張表的每一條數(shù)據(jù)和第二章表的每一條數(shù)據(jù)相結(jié)合,不加過(guò)濾條件得到的結(jié)果被稱為笛卡爾積

笛卡爾積:

顯示部門為10的員工和部門的全部信息

select * from emp,dept where emp.deptno=dept.deptno and emp.deptno=10;

顯示部門為10的員工姓名,部門名和工資

select ename,sal,dname from emp,dept 
where emp.deptno=dept.deptno and emp.deptno=10;

顯示員工的姓名,工資,及工資級(jí)別

select ename ,sal,grade from emp,salgrade where sal between losal and hisal;

3. 自連接(Self-Join)

表的別名

自連接時(shí)需要使用別名來(lái)區(qū)分同一表的不同實(shí)例。

示例

查找員工的上級(jí)(使用 mgr 字段指向經(jīng)理的 empno)。

應(yīng)用場(chǎng)景

員工與其上級(jí)、領(lǐng)導(dǎo)層次的關(guān)系查詢。

將兩張相同的表做笛卡爾積

  • 顯示員工及員工領(lǐng)導(dǎo)的個(gè)人信息
select * from emp e1, emp e2 where e1.empno=e2.mgr;

4. 子查詢

單行子查詢

子查詢只返回一行結(jié)果,通常用于 =、< 等條件。

多行子查詢

子查詢返回多行結(jié)果,常配合 IN、ALL、ANY 等關(guān)鍵字使用。

多列子查詢

返回多個(gè)列的數(shù)據(jù),適用于多條件的篩選。

FROM 子查詢

將子查詢作為臨時(shí)表使用,來(lái)簡(jiǎn)化復(fù)雜查詢。

嵌套查詢

通過(guò)將查詢嵌套在其他查詢語(yǔ)句中,增加查詢靈活性。

4.1單行子查詢

  • 顯示SMITH同一部門的員工
select *from emp where 
deptno =(select deptno from emp where ename='SMITH');

4.2多行子查詢

返回多行記錄的子查詢

in關(guān)鍵字;查詢和10號(hào)部門的工作崗位相同的雇員的名字,崗位,工資,部門號(hào),但是不包含10自己的

select ename ,job,sal,deptno from emp where 
job in(select job from emp where deptno =10)and deptno<>10;

all關(guān)鍵字;顯示工資比部門30的所有員工的工資高的員工的姓名、工資和部門號(hào)

select ename,sal,deptno from emp 
where sal > all(select sal from emp where deptno =30);

any關(guān)鍵字;顯示工資比部門30的任意員工的工資高的員工的姓名、工資和部門號(hào)(包含自己部門的員工)

select ename,sal,deptno from emp 
where sal>any(select sal from emp where deptno=30);

4.3多列子查詢

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

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

select * from emp where 
(deptno,job)=(select deptno,job from emp where ename='SMITH') 
and ename<>'SMITH';

4.4在from中使用子查詢

在mysql中每一次的查詢結(jié)果都是一個(gè)子表。

顯示每個(gè)高于自己部門平均工資的員工的姓名、部門、工資、平均工資

select ename,deptno,sal,asal from emp t1,(select deptno dt,avg(sal) asal  
from emp group by dt)t2 where t1.sal>t2.asal and t1.deptno=t2.dt;

查找每個(gè)部門工資最高的人的姓名、工資、部門、最高工資

select ename,sal,emp.deptno,msal 
from emp ,(select deptno,max(sal)msal from emp group by deptno) 
emp2 where sal=msal and emp.deptno=emp2.deptno ;

顯示每個(gè)部門的信息(部門名,編號(hào),地址)和人員數(shù)量

select *from dept,
(select deptno,count(deptno) from emp group by deptno)dept2 
where dept.deptno=dept2.deptno;

5. 合并查詢

UNION

將多個(gè) SELECT 查詢結(jié)果合并,去除重復(fù)記錄。

UNION ALL

將多個(gè) SELECT 查詢結(jié)果合并,不去除重復(fù)記錄。

應(yīng)用場(chǎng)景

如查詢職位為 MANAGER 或工資高于某數(shù)值的員工。

5.1UNION

該操作符用于取得兩個(gè)結(jié)果集的并集。當(dāng)使用該操作符時(shí),會(huì)自動(dòng)去掉結(jié)果集中的重復(fù)行。

  • 將工資大于2500或職位是MANAGER的人找出來(lái)

5.2UNION ALL

該操作符用于取得兩個(gè)結(jié)果集的并集。當(dāng)使用該操作符時(shí),不會(huì)去掉結(jié)果集中的重復(fù)行。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL中三種關(guān)聯(lián)查詢方式的簡(jiǎn)單比較

    MySQL中三種關(guān)聯(lián)查詢方式的簡(jiǎn)單比較

    這篇文章主要介紹了MySQL中三種關(guān)聯(lián)查詢方式的簡(jiǎn)單比較,即ON和USING還有傳統(tǒng)的FROM...WHERE...,需要的朋友可以參考下
    2015-06-06
  • mysql數(shù)據(jù)庫(kù)優(yōu)化必會(huì)的幾個(gè)參數(shù)中文解釋

    mysql數(shù)據(jù)庫(kù)優(yōu)化必會(huì)的幾個(gè)參數(shù)中文解釋

    對(duì)于自己配置mysql數(shù)據(jù)庫(kù)的朋友,需要注意的幾點(diǎn),下面都是英文的解釋,比較易懂方便和我一樣需要優(yōu)化配置mysql的朋友
    2008-09-09
  • Centos 6.5 下安裝mysql 5.6.21的方法

    Centos 6.5 下安裝mysql 5.6.21的方法

    本文給大家?guī)?lái)Centos 6.5 下安裝mysql 5.6.21的方法,操作方法比較簡(jiǎn)單,介紹的非常詳細(xì),感興趣的朋友可以參考下操作步驟
    2016-09-09
  • 一文學(xué)習(xí)MySQL?意向共享鎖、意向排他鎖、死鎖

    一文學(xué)習(xí)MySQL?意向共享鎖、意向排他鎖、死鎖

    這篇文章主要介紹了MySQL?意向共享鎖、意向排他鎖、死鎖,包括InnoDB表級(jí)鎖,意向共享鎖和意向排他鎖及操作方法,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • Mysql從5.6.14安全升級(jí)至mysql5.6.25的方法

    Mysql從5.6.14安全升級(jí)至mysql5.6.25的方法

    這篇文章主要介紹了Mysql從5.6.14安全升級(jí)至mysql5.6.25的方法,本教程講的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2016-08-08
  • 解析MySQL binlog

    解析MySQL binlog

    我們都知道,binlog可以說(shuō)是MySQL中比較重要的日志了,在日常學(xué)習(xí)及運(yùn)維過(guò)程中,也經(jīng)常會(huì)遇到。不清楚你對(duì)binlog了解多少呢?本篇文章將從binlog作用、binlog相關(guān)參數(shù)、解析binlog內(nèi)容三個(gè)方面帶你了解binlog
    2021-06-06
  • 解決Navicat遠(yuǎn)程連接MySQL出現(xiàn) 10060 unknow error的方法

    解決Navicat遠(yuǎn)程連接MySQL出現(xiàn) 10060 unknow error的方法

    這篇文章主要介紹了解決Navicat遠(yuǎn)程連接MySQL出現(xiàn) 10060 unknow error的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Mysql中的數(shù)據(jù)類型用法及解讀

    Mysql中的數(shù)據(jù)類型用法及解讀

    這篇文章主要介紹了Mysql中的數(shù)據(jù)類型用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • mysql查詢鎖表方式

    mysql查詢鎖表方式

    在MySQL中,查詢鎖表可以通過(guò)多個(gè)命令實(shí)現(xiàn),如show?engine?innodb?status、show?processlist等,用以檢測(cè)和解決表鎖問(wèn)題,首先通過(guò)show?engine?innodb?status查看鎖表情況,接著利用show?processlist找出長(zhǎng)時(shí)間占用的SQL語(yǔ)句
    2024-09-09
  • MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)概念及多表查詢和事物操作

    MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)概念及多表查詢和事物操作

    數(shù)據(jù)庫(kù)設(shè)計(jì)就是根據(jù)業(yè)務(wù)系統(tǒng)具體需求,結(jié)合我們所選用的DBMS,為這個(gè)業(yè)務(wù)系統(tǒng)構(gòu)造出最優(yōu)的數(shù)據(jù)存儲(chǔ)模型,本文給大家介紹MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)概念及多表查詢和事物操作,感興趣的朋友一起看看吧
    2022-05-05

最新評(píng)論